[Checkins] SVN: zope.html/trunk/s upgrade to FCKEditor 2.6.4.1 (a security release)
Benji York
benji at zope.com
Mon Jul 6 11:24:42 EDT 2009
Log message for revision 101620:
upgrade to FCKEditor 2.6.4.1 (a security release)
Changed:
U zope.html/trunk/setup.py
U zope.html/trunk/src/zope/html/configure.zcml
D zope.html/trunk/src/zope/html/fckeditor/2.6/
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_documentation.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/find.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/en.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/fr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/it.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/replace.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/samples/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/application.xml
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/package.bat
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/run.bat
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/sample01.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/fck.afpa.code
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample01.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample02.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample03.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample04.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sampleposteddata.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample01.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample02.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample03.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample04.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sampleposteddata.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01_mx.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02_mx.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03_mx.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04_mx.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sampleposteddata.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/default.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample06.config.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample11_frame.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.config.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.styles.css
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample15.config.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.config.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.fla
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.swf
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/swfobject.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample01.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample02.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample03.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample04.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample05.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample06.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample07.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample08.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample09.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample10.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample11.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample12.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample13.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample14.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample15.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample16.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample01.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample02.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample03.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample04.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sampleposteddata.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample01.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample02.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample03.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample04.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sampleposteddata.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample01.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample02.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample03.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample04.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sampleposteddata.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sample01.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sampleposteddata.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sample.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sampleslist.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_upgrade.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew_history.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckcontextmenu.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdataprocessor.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrangeiterator.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckeditingarea.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckelementpath.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckenterkey.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckevents.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckhtmliterator.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckicon.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckiecleanup.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckimagepreloader.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckkeystrokehandler.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublock.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublockpanel.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenuitem.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckpanel.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckspecialcombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckstyle.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbar.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbutton.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckw3crange.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fck_othercommands.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckfitwindow.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckindentcommands.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckjustifycommands.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcklistcommands.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcknamedcommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckshowblocks.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckstylecommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktablecommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckconstants.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckeditorapi.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckjscoreextensions.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckscriptloader.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_contextmenu.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckbrowserinfo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcodeformatter.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcommands.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckconfig.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug_empty.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdialog.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdocumentprocessor.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdomtools.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklanguagemanager.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklisthandler.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklistslib.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckplugins.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckregexlib.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckstyles.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbaritems.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbarset.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckundo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckurlparams.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtmlentities.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_editorarea.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_internal.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_showtableborders_gecko.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_about.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_anchor.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_button.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_checkbox.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_colorselector.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_div.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_form.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_hiddenfield.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image_preview.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link/fck_link.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_listprop.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_paste.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_radiobutton.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_replace.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select/fck_select.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_smiley.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_source.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_specialchar.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_table.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_tablecell.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_template.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textarea.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textfield.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10strict.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10transitional.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdebug.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdialog.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.original.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmfolders.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmupload.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/common.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/fckxml.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/basexml.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/class_upload.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/commands.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/config.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/connector.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/io.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/upload.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/util.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/config.ascx
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/connector.aspx
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/upload.aspx
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/config.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/connector.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/upload.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/config.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/connector.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/upload.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/basexml.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/commands.pl
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/config.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/connector.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/io.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload.cgi
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/util.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/basexml.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/commands.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/config.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/connector.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/io.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/upload.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/util.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/config.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/connector.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckcommands.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckconnector.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckoutput.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckutil.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/upload.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/wsgi.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/zope.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/test.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/uploadtest.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckadobeair.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_gecko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_ie.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/_translationstatus.txt
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/af.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ar.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bg.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bn.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bs.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ca.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/cs.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/da.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/de.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/el.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-au.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-ca.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-uk.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/es.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/et.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eu.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fa.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fi.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fo.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr-ca.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gl.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gu.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/he.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hi.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hu.js
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/is.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/it.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ja.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/km.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ko.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lt.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lv.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/mn.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ms.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nb.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nl.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/no.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pl.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt-br.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ro.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ru.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sk.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sl.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr-latn.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sv.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/th.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/tr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/uk.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/vi.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh-cn.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/autogrow/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.config.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/dragresizetable/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fck_placeholder.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/de.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/en.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/es.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/fr.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/it.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/pl.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/simplecommands/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/tablecommands/fckplugin.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/_fckviewstrips.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog_ie6.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_editor.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_strip.gif
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog_ie6.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_editor.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_strip.gif
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog_ie6.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_editor.css
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_strip.gif
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/ciframe.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/tmpFrameset.html
A zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/w.html
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckconfig.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.afp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.asp
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfc
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.js
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.lasso
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.pl
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.py
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php4.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php5.php
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckpackager.xml
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckstyles.xml
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fcktemplates.xml
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckutils.cfm
U zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/license.txt
U zope.html/trunk/src/zope/html/widget.py
-=-
Modified: zope.html/trunk/setup.py
===================================================================
--- zope.html/trunk/setup.py 2009-07-06 15:20:48 UTC (rev 101619)
+++ zope.html/trunk/setup.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -22,7 +22,7 @@
return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
setup(name='zope.html',
- version = '1.1.1',
+ version = '0',
author='Zope Corporation and Contributors',
author_email='zope3-dev at zope.org',
description='HTML and XHTML Editing Support',
Modified: zope.html/trunk/src/zope/html/configure.zcml
===================================================================
--- zope.html/trunk/src/zope/html/configure.zcml 2009-07-06 15:20:48 UTC (rev 101619)
+++ zope.html/trunk/src/zope/html/configure.zcml 2009-07-06 15:24:41 UTC (rev 101620)
@@ -62,7 +62,7 @@
<resourceLibrary name="fckeditor">
<directory
source="fckeditor"
- include="2.6/fckeditor/fckeditor.js"
+ include="2.6.4.1/fckeditor/fckeditor.js"
/>
</resourceLibrary>
Property changes on: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_documentation.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_documentation.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_documentation.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/find.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/find.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/find.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/lang/en.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/en.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/lang/fr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/fr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/lang/it.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/lang/it.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/replace.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/findreplace/replace.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/findreplace/replace.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/samples/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/_plugins/samples/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/_plugins/samples/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/application.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/adobeair/application.xml 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/application.xml 2009-07-06 15:24:41 UTC (rev 101620)
@@ -5,7 +5,7 @@
<version>1.0</version>
<filename>FCKeditor AIR Sample</filename>
<description>This is a sample AIR application including FCKeditor.</description>
- <copyright>Copyright (C) 2003-2008 Frederico Caldeira Knabben</copyright>
+ <copyright>Copyright (C) 2003-2009 Frederico Caldeira Knabben</copyright>
<initialWindow>
<content>_samples/adobeair/sample01.html</content>
<title>FCKeditor AIR Sample</title>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/package.bat
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/adobeair/package.bat 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/package.bat 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
::
:: FCKeditor - The text editor for Internet - http://www.fckeditor.net
-:: Copyright (C) 2003-2008 Frederico Caldeira Knabben
+:: Copyright (C) 2003-2009 Frederico Caldeira Knabben
::
:: == BEGIN LICENSE ==
::
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/run.bat
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/adobeair/run.bat 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/run.bat 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
::
:: FCKeditor - The text editor for Internet - http://www.fckeditor.net
-:: Copyright (C) 2003-2008 Frederico Caldeira Knabben
+:: Copyright (C) 2003-2009 Frederico Caldeira Knabben
::
:: == BEGIN LICENSE ==
::
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/sample01.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/adobeair/sample01.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/adobeair/sample01.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/fck.afpa.code
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/fck.afpa.code 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/fck.afpa.code 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,5 +1,5 @@
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample01.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/sample01.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample01.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample02.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/sample02.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample02.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample03.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/sample03.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample03.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample04.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/sample04.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sample04.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sampleposteddata.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/afp/sampleposteddata.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/afp/sampleposteddata.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -27,17 +27,20 @@
<title>FCKeditor - AFP - Samples - Posted Data</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <link href="../sample.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td nowrap>Field Name </td>
- <td>Value</td>
- </tr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
<%
lcForm=REQUEST.Form()
lcForm=STRTRAN(lcForm,"&",CHR(13)+CHR(10))
@@ -51,7 +54,7 @@
lcWert=STRTRAN(lcWert,"<","<")
lcWert=STRTRAN(lcWert,">",">") && ... if wanted remove/translate HTML Chars ...
- ? [<tr><td>]+lcVariable+[ =</td><td>]+lcWert+[</td></tr>]
+ ? [<tr><th>]+lcVariable+[ =</th><td><pre>]+lcWert+[</pre></td></tr>]
ENDIF
NEXT
%>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample01.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/asp/sample01.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample01.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<% Option Explicit %>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample02.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/asp/sample02.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample02.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<% Option Explicit %>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -86,6 +86,12 @@
sBasePath = Request.ServerVariables("PATH_INFO")
sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) )
+'This RegExp is used to sanitize recived lang parameter
+Dim oRegex
+Set oRegex = New RegExp
+oRegex.Global = True
+oRegex.Pattern = "[^a-z\-]"
+
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = sBasePath
@@ -95,7 +101,7 @@
oFCKeditor.Config("DefaultLanguage") = "en"
Else
oFCKeditor.Config("AutoDetectLanguage") = False
- oFCKeditor.Config("DefaultLanguage") = Request.QueryString("Lang")
+ oFCKeditor.Config("DefaultLanguage") = oRegex.Replace( Request.QueryString("Lang"), "")
End If
oFCKeditor.Value = "<p>This is some <strong>sample text</strong>. You are using <a href=""http://www.fckeditor.net/"">FCKeditor</a>."
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample03.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/asp/sample03.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample03.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<% Option Explicit %>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -74,12 +74,18 @@
sBasePath = Request.ServerVariables("PATH_INFO")
sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) )
+'This RegExp is used to sanitize recived toolbar parameter
+Dim oRegex
+Set oRegex = New RegExp
+oRegex.Global = True
+oRegex.Pattern = "[^a-zA-Z]"
+
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = sBasePath
If Request.QueryString("Toolbar") <> "" Then
- oFCKeditor.ToolbarSet = Server.HTMLEncode( Request.QueryString("Toolbar") )
+ oFCKeditor.ToolbarSet = oRegex.Replace( Request.QueryString("Toolbar"), "" )
End If
oFCKeditor.Value = "<p>This is some <strong>sample text</strong>. You are using <a href=""http://www.fckeditor.net/"">FCKeditor</a>."
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample04.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/asp/sample04.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sample04.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<% Option Explicit %>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -80,12 +80,18 @@
sBasePath = Request.ServerVariables("PATH_INFO")
sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) )
+'This RegExp is used to sanitize recived skin parameter
+Dim oRegex
+Set oRegex = New RegExp
+oRegex.Global = True
+oRegex.Pattern = "[^a-zA-Z0-9]"
+
Dim oFCKeditor
Set oFCKeditor = New FCKeditor
oFCKeditor.BasePath = sBasePath
If Request.QueryString("Skin") <> "" Then
- oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/" & Server.HTMLEncode( Request.QueryString("Skin") ) + "/"
+ oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/" & oRegex.Replace( Request.QueryString("Skin"), "" ) + "/"
End If
oFCKeditor.Value = "<p>This is some <strong>sample text</strong>. You are using <a href=""http://www.fckeditor.net/"">FCKeditor</a>."
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sampleposteddata.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/asp/sampleposteddata.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/asp/sampleposteddata.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<% Option Explicit %>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,24 +28,27 @@
<title>FCKeditor - Samples - Posted Data</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <link href="../sample.css" rel="stylesheet" type="text/css" >
</head>
<body>
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td noWrap>Field Name </td>
- <td>Value</td>
- </tr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
<%
Dim sForm
For Each sForm in Request.Form
%>
<tr>
- <td valign="top" nowrap><b><%=sForm%></b></td>
- <td width="100%" style="white-space:pre"><%=Server.HTMLEncode( Request.Form(sForm) )%></td>
+ <th><%=Server.HTMLEncode( sForm )%></th>
+ <td><pre><%=Server.HTMLEncode( Request.Form(sForm) )%></pre></td>
</tr>
<% Next %>
</table>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample01.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01_mx.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample01_mx.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample01_mx.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample02.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -82,7 +82,7 @@
<cfset config = structNew()>
<cfif isDefined( "URL.Lang" )>
<cfset config["AutoDetectLanguage"] = false>
- <cfset config["DefaultLanguage"] = HTMLEditFormat( URL.Lang )>
+ <cfset config["DefaultLanguage"] = REReplaceNoCase( URL.Lang, "[^a-z\-]", "", "all" )>
<cfelse>
<cfset config["AutoDetectLanguage"] = true>
<cfset config["DefaultLanguage"] = 'en'>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02_mx.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample02_mx.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample02_mx.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -95,7 +95,7 @@
if ( isDefined( "URL.Lang" ) )
{
fckEditor.config["AutoDetectLanguage"] = false ;
- fckEditor.config["DefaultLanguage"] = HTMLEditFormat( URL.Lang ) ;
+ fckEditor.config["DefaultLanguage"] = REReplaceNoCase( URL.Lang, "[^a-z\-]", "", "all" ) ;
}
else
{
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample03.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -67,7 +67,7 @@
</cfoutput>
<cfif isDefined( "URL.Toolbar" )>
- <cfset toolbarSet = HTMLEditFormat( URL.Toolbar )>
+ <cfset toolbarSet = REReplaceNoCase( URL.Toolbar, "[^a-z]", "", "all" )>
<cfelse>
<cfset toolbarSet = "Default">
</cfif>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03_mx.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample03_mx.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample03_mx.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -81,7 +81,7 @@
fckEditor.basePath = basePath ;
if ( isDefined( "URL.Toolbar" ) )
{
- fckEditor.ToolbarSet = HTMLEditFormat( URL.Toolbar ) ;
+ fckEditor.ToolbarSet = REReplaceNoCase( URL.Toolbar, "[^a-z]", "", "all" ) ;
}
fckEditor.create() ; // create the editor.
</cfscript>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample04.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -77,7 +77,7 @@
<cfset config = structNew()>
<cfif isDefined( "URL.Skin" )>
- <cfset config["SkinPath"] = basePath & 'editor/skins/' & HTMLEditFormat( URL.Skin ) & '/'>
+ <cfset config["SkinPath"] = basePath & 'editor/skins/' & REReplaceNoCase( URL.Skin, "[^a-z0-9]", "", "all" ) & '/'>
</cfif>
<cfmodule
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04_mx.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sample04_mx.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sample04_mx.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="true">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -87,7 +87,7 @@
fckEditor.basePath = basePath ;
if ( isDefined( "URL.Skin" ) )
{
- fckEditor.config['SkinPath'] = basePath & 'editor/skins/' & HTMLEditFormat( URL.Skin ) & '/' ;
+ fckEditor.config['SkinPath'] = basePath & 'editor/skins/' & REReplaceNoCase( URL.Skin, "[^a-z0-9]", "", "all" ) & '/' ;
}
fckEditor.create() ; // create the editor.
</cfscript>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sampleposteddata.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/cfm/sampleposteddata.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/cfm/sampleposteddata.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!---
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -34,36 +34,37 @@
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
-<cfif listFirst( server.coldFusion.productVersion ) LT 6>
<cfif isDefined( 'FORM.fieldnames' )>
<cfoutput>
<hr />
- <style>
- <!--
- td, th { font: 11px Verdana, Arial, Helv, Helvetica, sans-serif; }
- -->
- </style>
- <table border="1" cellspacing="0" cellpadding="2" bordercolor="darkblue" bordercolordark="darkblue" bordercolorlight="darkblue">
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
<tr>
- <th colspan="2" bgcolor="darkblue"><font color="white"><strong>Dump of FORM Variables</strong></font></th>
+ <th>FieldNames</th>
+ <td>#HTMLEditFormat( FORM.fieldNames )#</td>
</tr>
- <tr>
- <td bgcolor="lightskyblue">FieldNames</td>
- <td>#FORM.fieldNames#</td>
- </tr>
<cfloop list="#FORM.fieldnames#" index="key">
- <tr>
- <td valign="top" bgcolor="lightskyblue">#key#</td>
- <td style="white-space:pre">#HTMLEditFormat( evaluate( "FORM.#key#" ) )#</td>
- </tr>
+ <tr>
+ <th>#HTMLEditFormat( key )#</th>
+ <td><pre>
+ <cftry>
+ <cfif isDefined( 'FORM.' & #key# ) and REFindNoCase("^[a-z0-9]+$", key)>
+ #HTMLEditFormat( evaluate( "FORM.#key#" ) )#
+ </cfif>
+ <cfcatch type="any">
+ </cfcatch>
+ </cftry>
+ </pre></td>
+ </tr>
</cfloop>
</table>
</cfoutput>
</cfif>
-<cfelse>
- <cfdump var="#FORM#" label="Dump of FORM Variables">
-</cfif>
-
-
</body>
</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/default.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/default.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/default.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"http://www.w3.org/TR/html4/frameset.dtd">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample06.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample06.config.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample06.config.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,49 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/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 in the plugin sample page (sample06).
+ */
+
+// Set our sample toolbar.
+FCKConfig.ToolbarSets['PluginTest'] = [
+ ['SourceSimple'],
+ ['My_Find','My_Replace','-','Placeholder'],
+ ['StyleSimple','FontFormatSimple','FontNameSimple','FontSizeSimple'],
+ ['Table','-','TableInsertRowAfter','TableDeleteRows','TableInsertColumnAfter','TableDeleteColumns','TableInsertCellAfter','TableDeleteCells','TableMergeCells','TableHorizontalSplitCell','TableCellProp'],
+ ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink'],
+ '/',
+ ['My_BigStyle','-','Smiley','-','About']
+] ;
+
+// Change the default plugin path.
+FCKConfig.PluginsPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + '_samples/_plugins/' ;
+
+// Add our plugin to the plugins list.
+// FCKConfig.Plugins.Add( pluginName, availableLanguages )
+// pluginName: The plugin name. The plugin directory must match this name.
+// availableLanguages: a list of available language files for the plugin (separated by a comma).
+FCKConfig.Plugins.Add( 'findreplace', 'en,fr,it' ) ;
+FCKConfig.Plugins.Add( 'samples' ) ;
+
+// If you want to use plugins found on other directories, just use the third parameter.
+var sOtherPluginPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + 'editor/plugins/' ;
+FCKConfig.Plugins.Add( 'placeholder', 'de,en,es,fr,it,pl', sOtherPluginPath ) ;
+FCKConfig.Plugins.Add( 'tablecommands', null, sOtherPluginPath ) ;
+FCKConfig.Plugins.Add( 'simplecommands', null, sOtherPluginPath ) ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample11_frame.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample11_frame.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample11_frame.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,69 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/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 - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow" />
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../../../fckeditor.js"></script>
+</head>
+<body>
+ <form action="../../php/sampleposteddata.php" method="post" target="_blank">
+ Normal text field:<br />
+ <input name="NormaText" value="Plain Text" />
+ <br />
+ <br />
+ FCKeditor 1:
+ <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.href.substring(0,document.location.href.lastIndexOf('_samples')) ;
+
+var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;
+oFCKeditor.BasePath = sBasePath ;
+oFCKeditor.Height = 100 ;
+oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
+oFCKeditor.Value = '<p>This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.<\/p>' ;
+oFCKeditor.Create() ;
+//-->
+ </script>
+ <br />
+ FCKeditor 2:
+ <script type="text/javascript">
+<!--
+oFCKeditor = new FCKeditor( 'FCKeditor_2' ) ;
+oFCKeditor.BasePath = sBasePath ;
+oFCKeditor.Height = 100 ;
+oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
+oFCKeditor.Value = '<p>This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.<\/p>' ;
+oFCKeditor.Create() ;
+//-->
+ </script>
+ <br />
+ <input type="submit" value="Submit" />
+ </form>
+</body>
+</html>
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.config.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.config.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,121 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Configuration settings used by the XHTML 1.1 sample page (sample14.html).
+ */
+
+// Our intention is force all formatting features to use CSS classes or
+// semantic aware elements.
+
+// Load our custom CSS files for this sample.
+// We are using "BasePath" just for this sample convenience. In normal
+// situations it would be just pointed to the file directly,
+// like "/css/myfile.css".
+FCKConfig.EditorAreaCSS = FCKConfig.BasePath + '../_samples/html/assets/sample14.styles.css' ;
+
+/**
+ * Core styles.
+ */
+FCKConfig.CoreStyles.Bold = { Element : 'span', Attributes : { 'class' : 'Bold' } } ;
+FCKConfig.CoreStyles.Italic = { Element : 'span', Attributes : { 'class' : 'Italic' } } ;
+FCKConfig.CoreStyles.Underline = { Element : 'span', Attributes : { 'class' : 'Underline' } } ;
+FCKConfig.CoreStyles.StrikeThrough = { Element : 'span', Attributes : { 'class' : 'StrikeThrough' } } ;
+
+/**
+ * Font face
+ */
+// List of fonts available in the toolbar combo. Each font definition is
+// separated by a semi-colon (;). We are using class names here, so each font
+// is defined by {Class Name}/{Combo Label}.
+FCKConfig.FontNames = 'FontComic/Comic Sans MS;FontCourier/Courier New;FontTimes/Times New Roman' ;
+
+// Define the way font elements will be applied to the document. The "span"
+// element will be used. When a font is selected, the font name defined in the
+// above list is passed to this definition with the name "Font", being it
+// injected in the "class" attribute.
+// We must also instruct the editor to replace span elements that are used to
+// set the font (Overrides).
+FCKConfig.CoreStyles.FontFace =
+ {
+ Element : 'span',
+ Attributes : { 'class' : '#("Font")' },
+ Overrides : [ { Element : 'span', Attributes : { 'class' : /^Font(?:Comic|Courier|Times)$/ } } ]
+ } ;
+
+/**
+ * Font sizes.
+ */
+FCKConfig.FontSizes = 'FontSmaller/Smaller;FontLarger/Larger;FontSmall/8pt;FontBig/14pt;FontDouble/Double Size' ;
+FCKConfig.CoreStyles.Size =
+ {
+ Element : 'span',
+ Attributes : { 'class' : '#("Size")' },
+ Overrides : [ { Element : 'span', Attributes : { 'class' : /^Font(?:Smaller|Larger|Small|Big|Double)$/ } } ]
+ } ;
+
+/**
+ * Font colors.
+ */
+FCKConfig.EnableMoreFontColors = false ;
+FCKConfig.FontColors = 'ff9900/FontColor1,0066cc/FontColor2,ff0000/FontColor3' ;
+FCKConfig.CoreStyles.Color =
+ {
+ Element : 'span',
+ Attributes : { 'class' : '#("Color")' },
+ Overrides : [ { Element : 'span', Attributes : { 'class' : /^FontColor(?:1|2|3)$/ } } ]
+ } ;
+
+FCKConfig.CoreStyles.BackColor =
+ {
+ Element : 'span',
+ Attributes : { 'class' : '#("Color")BG' },
+ Overrides : [ { Element : 'span', Attributes : { 'class' : /^FontColor(?:1|2|3)BG$/ } } ]
+ } ;
+
+/**
+ * Indentation.
+ */
+FCKConfig.IndentClasses = [ 'Indent1', 'Indent2', 'Indent3' ] ;
+
+/**
+ * Paragraph justification.
+ */
+FCKConfig.JustifyClasses = [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull' ] ;
+
+/**
+ * Styles combo.
+ */
+FCKConfig.StylesXmlPath = '' ;
+FCKConfig.CustomStyles =
+ {
+ 'Strong Emphasis' : { Element : 'strong' },
+ 'Emphasis' : { Element : 'em' },
+
+ 'Computer Code' : { Element : 'code' },
+ 'Keyboard Phrase' : { Element : 'kbd' },
+ 'Sample Text' : { Element : 'samp' },
+ 'Variable' : { Element : 'var' },
+
+ 'Deleted Text' : { Element : 'del' },
+ 'Inserted Text' : { Element : 'ins' },
+
+ 'Cited Work' : { Element : 'cite' },
+ 'Inline Quotation' : { Element : 'q' }
+ } ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.styles.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.styles.css (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample14.styles.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,228 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/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 XHTML 1.1 sample page (sample14.html).
+ */
+
+/**
+ * Basic definitions for the editing area.
+ */
+body
+{
+ background-color: #ffffff;
+ padding: 5px 5px 5px 5px;
+ margin: 0px;
+}
+
+body, td
+{
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+}
+
+a[href]
+{
+ color: #0000FF !important; /* For Firefox... mark as important, otherwise it becomes black */
+}
+
+/**
+ * Core styles.
+ */
+
+.Bold
+{
+ font-weight: bold;
+}
+
+.Italic
+{
+ font-style: italic;
+}
+
+.Underline
+{
+ text-decoration: underline;
+}
+
+.StrikeThrough
+{
+ text-decoration: line-through;
+}
+
+.Subscript
+{
+ vertical-align: sub;
+ font-size: smaller;
+}
+
+.Superscript
+{
+ vertical-align: super;
+ font-size: smaller;
+}
+
+/**
+ * Font faces.
+ */
+
+.FontComic
+{
+ font-family: 'Comic Sans MS';
+}
+
+.FontCourier
+{
+ font-family: 'Courier New';
+}
+
+.FontTimes
+{
+ font-family: 'Times New Roman';
+}
+
+/**
+ * Font sizes.
+ */
+
+.FontSmaller
+{
+ font-size: smaller;
+}
+
+.FontLarger
+{
+ font-size: larger;
+}
+
+.FontSmall
+{
+ font-size: 8pt;
+}
+
+.FontBig
+{
+ font-size: 14pt;
+}
+
+.FontDouble
+{
+ font-size: 200%;
+}
+
+/**
+ * Font colors.
+ */
+.FontColor1
+{
+ color: #ff9900;
+}
+
+.FontColor2
+{
+ color: #0066cc;
+}
+
+.FontColor3
+{
+ color: #ff0000;
+}
+
+.FontColor1BG
+{
+ background-color: #ff9900;
+}
+
+.FontColor2BG
+{
+ background-color: #0066cc;
+}
+
+.FontColor3BG
+{
+ background-color: #ff0000;
+}
+
+/**
+ * Indentation.
+ */
+
+.Indent1
+{
+ margin-left: 40px;
+}
+
+.Indent2
+{
+ margin-left: 80px;
+}
+
+.Indent3
+{
+ margin-left: 120px;
+}
+
+/**
+ * Alignment.
+ */
+
+.JustifyLeft
+{
+ text-align: left;
+}
+
+.JustifyRight
+{
+ text-align: right;
+}
+
+.JustifyCenter
+{
+ text-align: center;
+}
+
+.JustifyFull
+{
+ text-align: justify;
+}
+
+/**
+ * Other.
+ */
+
+code
+{
+ font-family: courier, monospace;
+ background-color: #eeeeee;
+ padding-left: 1px;
+ padding-right: 1px;
+ border: #c0c0c0 1px solid;
+}
+
+kbd
+{
+ padding: 0px 1px 0px 1px;
+ border-width: 1px 2px 2px 1px;
+ border-style: solid;
+}
+
+blockquote
+{
+ color: #808080;
+}
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample15.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample15.config.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample15.config.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Configuration settings used by the XHTML 1.1 sample page (sample14.html).
+ */
+
+// Our intention is force all formatting features to use CSS classes or
+// semantic aware elements.
+
+/**
+ * Core styles.
+ */
+FCKConfig.CoreStyles.Bold = { Element : 'b' } ;
+FCKConfig.CoreStyles.Italic = { Element : 'i' } ;
+FCKConfig.CoreStyles.Underline = { Element : 'u' } ;
+FCKConfig.CoreStyles.StrikeThrough = { Element : 'strike' } ;
+
+/**
+ * Font face
+ */
+// Define the way font elements will be applied to the document. The "span"
+// element will be used. When a font is selected, the font name defined in the
+// above list is passed to this definition with the name "Font", being it
+// injected in the "class" attribute.
+// We must also instruct the editor to replace span elements that are used to
+// set the font (Overrides).
+FCKConfig.CoreStyles.FontFace =
+ {
+ Element : 'font',
+ Attributes : { 'face' : '#("Font")' }
+ } ;
+
+/**
+ * Font sizes.
+ */
+FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
+FCKConfig.CoreStyles.Size =
+ {
+ Element : 'font',
+ Attributes : { 'size' : '#("Size")' }
+ } ;
+
+/**
+ * Font colors.
+ */
+FCKConfig.EnableMoreFontColors = true ;
+FCKConfig.CoreStyles.Color =
+ {
+ Element : 'font',
+ Attributes : { 'color' : '#("Color")' }
+ } ;
+
+FCKConfig.CoreStyles.BackColor =
+ {
+ Element : 'font',
+ Styles : { 'background-color' : '#("Color","color")' }
+ } ;
+
+/**
+ * Styles combo.
+ */
+FCKConfig.StylesXmlPath = '' ;
+FCKConfig.CustomStyles =
+ {
+ 'Computer Code' : { Element : 'code' },
+ 'Keyboard Phrase' : { Element : 'kbd' },
+ 'Sample Text' : { Element : 'samp' },
+ 'Variable' : { Element : 'var' },
+
+ 'Deleted Text' : { Element : 'del' },
+ 'Inserted Text' : { Element : 'ins' },
+
+ 'Cited Work' : { Element : 'cite' },
+ 'Inline Quotation' : { Element : 'q' }
+ } ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.config.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.config.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Configuration settings used by the XHTML 1.1 sample page (sample14.html).
+ */
+
+// Our intention is force all formatting features to use CSS classes or
+// semantic aware elements.
+
+/**
+ * Core styles.
+ */
+FCKConfig.CoreStyles.Bold = { Element : 'b' } ;
+FCKConfig.CoreStyles.Italic = { Element : 'i' } ;
+FCKConfig.CoreStyles.Underline = { Element : 'u' } ;
+
+/**
+ * Font face
+ */
+// Define the way font elements will be applied to the document. The "span"
+// element will be used. When a font is selected, the font name defined in the
+// above list is passed to this definition with the name "Font", being it
+// injected in the "class" attribute.
+// We must also instruct the editor to replace span elements that are used to
+// set the font (Overrides).
+FCKConfig.CoreStyles.FontFace =
+ {
+ Element : 'font',
+ Attributes : { 'face' : '#("Font")' }
+ } ;
+
+/**
+ * Font sizes.
+ * The CSS part of the font sizes isn't used by Flash, it is there to get the
+ * font rendered correctly in FCKeditor.
+ */
+FCKConfig.FontSizes = '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px' ;
+FCKConfig.CoreStyles.Size =
+ {
+ Element : 'font',
+ Attributes : { 'size' : '#("Size")' },
+ Styles : { 'font-size' : '#("Size","fontSize")' }
+ } ;
+
+/**
+ * Font colors.
+ */
+FCKConfig.EnableMoreFontColors = true ;
+FCKConfig.CoreStyles.Color =
+ {
+ Element : 'font',
+ Attributes : { 'color' : '#("Color")' }
+ } ;
+/**
+ * Styles combo.
+ */
+FCKConfig.StylesXmlPath = '' ;
+FCKConfig.CustomStyles =
+ {
+ } ;
+
+/**
+ * Toolbar set for Flash HTML editing.
+ */
+FCKConfig.ToolbarSets['Flash'] = [
+ ['Source','-','Bold','Italic','Underline','-','UnorderedList','-','Link','Unlink'],
+ ['FontName','FontSize','-','About']
+] ;
+
+/**
+ * Flash specific formatting settings.
+ */
+FCKConfig.EditorAreaStyles = 'p, ol, ul {margin-top: 0px; margin-bottom: 0px;}' ;
+FCKConfig.FormatSource = false ;
+FCKConfig.FormatOutput = false ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.fla
===================================================================
(Binary files differ)
Property changes on: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.fla
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.swf
===================================================================
(Binary files differ)
Property changes on: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/sample16.swf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/swfobject.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/swfobject.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/assets/swfobject.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,18 @@
+/**
+ * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
+ *
+ * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+/*
+Copyright (c) 2007 Geoff Stearns
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+/*jsl:ignoreall*/
+if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("u
seExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(th
is.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\
""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttr
ibute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFl
ash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length
-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample01.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample01.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample01.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -37,7 +37,7 @@
This sample displays a normal HTML form with an FCKeditor with full features enabled.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample02.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample02.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample02.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -52,7 +52,7 @@
It uses the "ReplaceTextarea" command to create the editor.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<div>
<textarea name="FCKeditor1" rows="10" cols="80" style="width: 100%; height: 200px"><p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p></textarea>
</div>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample03.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample03.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample03.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -105,7 +105,7 @@
</tr>
</table>
<br />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample04.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample04.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample04.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -65,7 +65,7 @@
</tr>
</table>
<br />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample05.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample05.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample05.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -71,7 +71,7 @@
</tr>
</table>
<br />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample06.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample06.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample06.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -45,7 +45,7 @@
</ul>
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
@@ -57,7 +57,7 @@
oFCKeditor.BasePath = sBasePath ;
// Set the custom configurations file path (in this way the original file is mantained).
-oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/sample06.config.js' ;
+oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/assets/sample06.config.js' ;
// Let's use a custom toolbar for this sample.
oFCKeditor.ToolbarSet = 'PluginTest' ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample07.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample07.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample07.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -37,7 +37,7 @@
to </HTML>).
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample08.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample08.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample08.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -148,7 +148,7 @@
at runtime.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample09.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample09.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample09.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -57,7 +57,7 @@
in the JavaScript API.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
Normal text field:<br />
<input name="NormaText" value="Plain Text" />
<br />
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample10.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample10.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample10.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -39,7 +39,7 @@
<hr />
<div id="xToolbar"></div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
Normal text field:<br />
<input name="NormaText" value="Plain Text" />
<br />
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample11.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample11.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample11.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -38,6 +38,6 @@
<hr />
<div id="xToolbar"></div>
<hr />
- <iframe src="sample11_frame.html" width="100%" height="300"></iframe>
+ <iframe src="assets/sample11_frame.html" width="100%" height="300"></iframe>
</body>
</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample12.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample12.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample12.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -76,7 +76,7 @@
</tr>
</table>
<br />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample13.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample13.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample13.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -125,7 +125,7 @@
operations so it will work even if the internal implementation changes.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank" onsubmit="PrepareSave();">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank" onsubmit="PrepareSave();">
<div id="Textarea">
<input type="button" value="Switch to FCKeditor" onclick="Toggle()" />
<br />
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample14.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/html/sample14.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample14.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -39,7 +39,7 @@
or the "style" attribute, are avoided.
</div>
<hr />
- <form action="sampleposteddata.asp" method="post" target="_blank">
+ <form action="../php/sampleposteddata.php" method="post" target="_blank">
<script type="text/javascript">
<!--
// Automatically calculates the editor base path based on the _samples directory.
@@ -52,7 +52,7 @@
// Instruct the editor to load our configurations from a custom file, leaving the
// original configuration file untouched.
-oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/sample14.config.js' ;
+oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/assets/sample14.config.js' ;
oFCKeditor.Height = 300 ;
oFCKeditor.Value = '<p>This is some <span class="Bold">sample text<\/span>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.<\/p>' ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample15.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample15.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample15.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,66 @@
+<!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-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/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 - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow" />
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../../fckeditor.js"></script>
+</head>
+<body>
+ <h1>
+ FCKeditor - JavaScript - Sample 15
+ </h1>
+ <div>
+ This sample shows FCKeditor configured to produce a legacy HTML4 document. Traditional
+ HTML elements like <b>, <i>, and <font> are used in place of
+ <strong>, <em> and CSS styles.
+ </div>
+ <hr />
+ <form action="../php/sampleposteddata.php" 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.href.substring(0,document.location.href.lastIndexOf('_samples')) ;
+
+var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
+oFCKeditor.BasePath = sBasePath ;
+
+// Instruct the editor to load our configurations from a custom file, leaving the
+// original configuration file untouched.
+oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/assets/sample15.config.js' ;
+
+oFCKeditor.Height = 300 ;
+oFCKeditor.Value = '<p>This is some <b>sample text<\/b>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.<\/p>' ;
+oFCKeditor.Create() ;
+//-->
+ </script>
+ <br />
+ <input type="submit" value="Submit" />
+ </form>
+</body>
+</html>
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample16.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample16.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/html/sample16.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,91 @@
+<!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-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/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 - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="robots" content="noindex, nofollow" />
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript" src="../../fckeditor.js"></script>
+ <script type="text/javascript" src="assets/swfobject.js"></script>
+ <script type="text/javascript">
+function sendToFlash()
+{
+ var html = FCKeditorAPI.GetInstance( 'FCKeditor1' ).GetData() ;
+ var flash = document.getElementById( 'fckFlash' ) ;
+ flash.setData( html ) ;
+}
+
+function init()
+{
+ var so = new SWFObject("assets/sample16.swf", "fckFlash", "550", "400", "8", "#ffffff") ;
+ so.addParam("wmode", "transparent");
+ so.write("fckFlashContainer") ;
+}
+ </script>
+</head>
+<body onload="init();">
+ <h1>
+ FCKeditor - JavaScript - Sample 16
+ </h1>
+ <div>
+ This sample shows FCKeditor configured to produce HTML code that can be used with
+ <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14808#TextArea_Component">
+ Flash</a>.
+ </div>
+ <hr />
+ <table width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td style="width: 100%">
+ <script type="text/javascript">
+<!--
+if ( document.location.protocol == 'file:' )
+ alert( 'Warning: This samples does not work when loaded from local filesystem due to security restrictions implemented in Flash.'
+ + '\n\nPlease load the sample from a web server instead.') ;
+// 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.href.substring(0,document.location.href.lastIndexOf('_samples')) ;
+
+var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
+oFCKeditor.BasePath = sBasePath ;
+
+// Instruct the editor to load our configurations from a custom file, leaving the
+// original configuration file untouched.
+oFCKeditor.Config['CustomConfigurationsPath'] = sBasePath + '_samples/html/assets/sample16.config.js' ;
+oFCKeditor.Height = 400 ;
+oFCKeditor.Width = '100%' ;
+oFCKeditor.ToolbarSet = 'Flash' ;
+oFCKeditor.Value = '<p>This is some <b>sample text<\/b>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.<\/p>' ;
+oFCKeditor.Create() ;
+//-->
+ </script>
+ <input type="button" value="Send to Flash" onclick="sendToFlash();" />
+ </td>
+ <td valign="top" style="padding-left: 15px" id="fckFlashContainer">
+ </td>
+ </tr>
+ </table>
+</body>
+</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample01.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/lasso/sample01.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample01.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample02.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/lasso/sample02.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample02.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -84,7 +84,7 @@
if(action_param('Lang'));
var('config') = array(
'AutoDetectLanguage' = 'false',
- 'DefaultLanguage' = action_param('Lang')
+ 'DefaultLanguage' = (String_ReplaceRegExp: action_param('Lang'), -find='[^a-z\-]', -replace='')
);
else;
var('config') = array(
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample03.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/lasso/sample03.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample03.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -75,7 +75,7 @@
);
if(action_param('Toolbar'));
- $myeditor->toolbarset = action_param('Toolbar');
+ $myeditor->toolbarset = (String_ReplaceRegExp: action_param('Toolbar'), -find='[^a-zA-Z]', -replace='');
/if;
$myeditor->create;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample04.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/lasso/sample04.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sample04.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -81,7 +81,8 @@
);
if(action_param('Skin'));
- $myeditor->config = array('SkinPath' = $basepath + 'editor/skins/' + action_param('Skin') + '/');
+ var('skin') = (String_ReplaceRegExp: action_param('Skin'), -find='[^a-zA-Z0-9]', -replace='');
+ $myeditor->config = array('SkinPath' = $basepath + 'editor/skins/' + $skin + '/');
/if;
$myeditor->create;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sampleposteddata.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/lasso/sampleposteddata.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/lasso/sampleposteddata.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,21 +28,24 @@
<title>FCKeditor - Samples - Posted Data</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <link href="../sample.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td nowrap>Field Name </td>
- <td>Value</td>
- </tr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
[iterate(client_postparams, local('this'))]
<tr>
- <td valign="top" nowrap><b>[#this->first]</b></td>
- <td width="100%" style="white-space:pre">[#this->second]</td>
+ <th>[Encode_HTML: #this->first]</th>
+ <td><pre>[Encode_HTML: #this->second]</pre></td>
</tr>
[/iterate]
</table>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample01.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/perl/sample01.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample01.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,117 +1,117 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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.
-#####
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require '../../fckeditor.pl';
-
-# When $ENV{'PATH_INFO'} cannot be used by perl.
-# $DefRootPath = "/XXXXX/_samples/perl/sample01.cgi"; Please write in script.
-
-my $DefServerPath = "";
-my $ServerPath;
-
- $ServerPath = &GetServerPath();
- print "Content-type: text/html\n\n";
- print <<"_HTML_TAG_";
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>FCKeditor - Sample</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <h1>FCKeditor - Perl - Sample 1</h1>
- This sample displays a normal HTML form with an FCKeditor with full features
- enabled.
- <hr>
- <form action="sampleposteddata.cgi" method="post" target="_blank">
-_HTML_TAG_
-
- #// 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.
-
- $sBasePath = $ServerPath;
- $sBasePath = substr($sBasePath,0,index($sBasePath,"_samples"));
- &FCKeditor('FCKeditor1');
- $BasePath = $sBasePath;
- $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>';
- &Create();
-
- print <<"_HTML_TAG_";
- <br>
- <input type="submit" value="Submit">
- </form>
- </body>
-</html>
-_HTML_TAG_
-
-################
-#Please use this function, rewriting it depending on a server's environment.
-################
-sub GetServerPath
-{
-my $dir;
-
- if($DefServerPath) {
- $dir = $DefServerPath;
- } else {
- if($ENV{'PATH_INFO'}) {
- $dir = $ENV{'PATH_INFO'};
- } elsif($ENV{'FILEPATH_INFO'}) {
- $dir = $ENV{'FILEPATH_INFO'};
- } elsif($ENV{'REQUEST_URI'}) {
- $dir = $ENV{'REQUEST_URI'};
- }
- }
- return($dir);
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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.
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample01.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <head>
+ <title>FCKeditor - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="robots" content="noindex, nofollow">
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ </head>
+ <body>
+ <h1>FCKeditor - Perl - Sample 1</h1>
+ This sample displays a normal HTML form with an FCKeditor with full features
+ enabled.
+ <hr>
+ <form action="sampleposteddata.cgi" method="post" target="_blank">
+_HTML_TAG_
+
+ #// 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.
+
+ $sBasePath = $ServerPath;
+ $sBasePath = substr($sBasePath,0,index($sBasePath,"_samples"));
+ &FCKeditor('FCKeditor1');
+ $BasePath = $sBasePath;
+ $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>';
+ &Create();
+
+ print <<"_HTML_TAG_";
+ <br>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ } elsif($ENV{'REQUEST_URI'}) {
+ $dir = $ENV{'REQUEST_URI'};
+ }
+ }
+ return($dir);
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample02.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/perl/sample02.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample02.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,182 +1,184 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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.
-#####
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require '../../fckeditor.pl';
-
-# When $ENV{'PATH_INFO'} cannot be used by perl.
-# $DefRootPath = "/XXXXX/_samples/perl/sample02.cgi"; Please write in script.
-
-my $DefServerPath = "";
-my $ServerPath;
-
- $ServerPath = &GetServerPath();
-
- if($ENV{'REQUEST_METHOD'} eq "POST") {
- read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
- } else {
- $buffer = $ENV{'QUERY_STRING'};
- }
- @pairs = split(/&/,$buffer);
- foreach $pair (@pairs) {
- ($name,$value) = split(/=/,$pair);
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $value =~ s/\t//g;
- $value =~ s/\r\n/\n/g;
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
- }
-
- print "Content-type: text/html\n\n";
- print <<"_HTML_TAG_";
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>FCKeditor - Sample</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript">
-
-function FCKeditor_OnComplete( editorInstance )
-{
- var oCombo = document.getElementById( 'cmbLanguages' ) ;
- for ( code in editorInstance.Language.AvailableLanguages )
- {
- AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
- }
- oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-}
-
-function AddComboOption(combo, optionText, optionValue)
-{
- var oOption = document.createElement("OPTION") ;
-
- combo.options.add(oOption) ;
-
- oOption.innerHTML = optionText ;
- oOption.value = optionValue ;
-
- return oOption ;
-}
-
-function ChangeLanguage( languageCode )
-{
- window.location.href = window.location.pathname + "?Lang=" + languageCode ;
-}
- </script>
- </head>
- <body>
- <h1>FCKeditor - Perl - Sample 2</h1>
- This sample shows the editor in all its available languages.
- <hr>
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td>
- Select a language:
- </td>
- <td>
- <select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
- </select>
- </td>
- </tr>
- </table>
- <br>
- <form action="sampleposteddata.cgi" method="post" target="_blank">
-_HTML_TAG_
-
- #// 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.
- $sBasePath = $ServerPath;
- $sBasePath = substr( $sBasePath, 0, index($sBasePath,"_samples"));
-
- &FCKeditor('FCKeditor1');
- $BasePath = $sBasePath;
-
- if($FORM{'Lang'} ne "") {
- $Config{'AutoDetectLanguage'} = "false";
- $Config{'DefaultLanguage'} = $FORM{'Lang'};
- } else {
- $Config{'AutoDetectLanguage'} = "true";
- $Config{'DefaultLanguage'} = 'en' ;
- }
- $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
- &Create();
-
- print <<"_HTML_TAG_";
- <br>
- <input type="submit" value="Submit">
- </form>
- </body>
-</html>
-_HTML_TAG_
-
-################
-#Please use this function, rewriting it depending on a server's environment.
-################
-sub GetServerPath
-{
-my $dir;
-
- if($DefServerPath) {
- $dir = $DefServerPath;
- } else {
- if($ENV{'PATH_INFO'}) {
- $dir = $ENV{'PATH_INFO'};
- } elsif($ENV{'FILEPATH_INFO'}) {
- $dir = $ENV{'FILEPATH_INFO'};
- } elsif($ENV{'REQUEST_URI'}) {
- $dir = $ENV{'REQUEST_URI'};
- }
- }
- return($dir);
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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.
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample02.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <head>
+ <title>FCKeditor - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="robots" content="noindex, nofollow">
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript">
+
+function FCKeditor_OnComplete( editorInstance )
+{
+ var oCombo = document.getElementById( 'cmbLanguages' ) ;
+ for ( code in editorInstance.Language.AvailableLanguages )
+ {
+ AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
+ }
+ oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
+}
+
+function AddComboOption(combo, optionText, optionValue)
+{
+ var oOption = document.createElement("OPTION") ;
+
+ combo.options.add(oOption) ;
+
+ oOption.innerHTML = optionText ;
+ oOption.value = optionValue ;
+
+ return oOption ;
+}
+
+function ChangeLanguage( languageCode )
+{
+ window.location.href = window.location.pathname + "?Lang=" + languageCode ;
+}
+ </script>
+ </head>
+ <body>
+ <h1>FCKeditor - Perl - Sample 2</h1>
+ This sample shows the editor in all its available languages.
+ <hr>
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td>
+ Select a language:
+ </td>
+ <td>
+ <select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
+ </select>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <form action="sampleposteddata.cgi" method="post" target="_blank">
+_HTML_TAG_
+
+ #// 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.
+ $sBasePath = $ServerPath;
+ $sBasePath = substr( $sBasePath, 0, index($sBasePath,"_samples"));
+
+ &FCKeditor('FCKeditor1');
+ $BasePath = $sBasePath;
+
+ if($FORM{'Lang'} ne "") {
+ $Config{'AutoDetectLanguage'} = "false";
+ $lang = $FORM{'Lang'};
+ $lang =~ s/[^a-z\-]//ig;
+ $Config{'DefaultLanguage'} = $lang;
+ } else {
+ $Config{'AutoDetectLanguage'} = "true";
+ $Config{'DefaultLanguage'} = 'en' ;
+ }
+ $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
+ &Create();
+
+ print <<"_HTML_TAG_";
+ <br>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ } elsif($ENV{'REQUEST_URI'}) {
+ $dir = $ENV{'REQUEST_URI'};
+ }
+ }
+ return($dir);
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample03.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/perl/sample03.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample03.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,167 +1,168 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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.
-#####
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require '../../fckeditor.pl';
-
-# When $ENV{'PATH_INFO'} cannot be used by perl.
-# $DefRootPath = "/XXXXX/_samples/perl/sample03.cgi"; Please write in script.
-
-my $DefServerPath = "";
-my $ServerPath;
-
- $ServerPath = &GetServerPath();
-
- if($ENV{'REQUEST_METHOD'} eq "POST") {
- read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
- } else {
- $buffer = $ENV{'QUERY_STRING'};
- }
- @pairs = split(/&/,$buffer);
- foreach $pair (@pairs) {
- ($name,$value) = split(/=/,$pair);
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $value =~ s/\t//g;
- $value =~ s/\r\n/\n/g;
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
- }
-
- print "Content-type: text/html\n\n";
- print <<"_HTML_TAG_";
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>FCKeditor - Sample</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript">
-
-function FCKeditor_OnComplete( editorInstance )
-{
- var oCombo = document.getElementById( 'cmbToolbars' ) ;
- oCombo.value = editorInstance.ToolbarSet.Name ;
- oCombo.style.visibility = '' ;
-}
-
-function ChangeToolbar( toolbarName )
-{
- window.location.href = window.location.pathname + "?Toolbar=" + toolbarName ;
-}
-
- </script>
- </head>
- <body>
- <h1>FCKeditor - Perl - Sample 3</h1>
- This sample shows how to change the editor toolbar.
- <hr>
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td>
- Select the toolbar to load:
- </td>
- <td>
- <select id="cmbToolbars" onchange="ChangeToolbar(this.value);" style="VISIBILITY: hidden">
- <option value="Default" selected>Default</option>
- <option value="Basic">Basic</option>
- </select>
- </td>
- </tr>
- </table>
- <br>
- <form action="sampleposteddata.cgi" method="post" target="_blank">
-_HTML_TAG_
-
- #// 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.
-
- $sBasePath = $ServerPath;
- $sBasePath = substr($sBasePath, 0, index( $sBasePath, "_samples" ));
-
- &FCKeditor('FCKeditor1') ;
- $BasePath = $sBasePath ;
-
- if($FORM{'Toolbar'} ne "") {
- $ToolbarSet = &specialchar_cnv( $FORM{'Toolbar'} );
- }
- $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
- &Create();
-
- print <<"_HTML_TAG_";
- <br>
- <input type="submit" value="Submit">
- </form>
- </body>
-</html>
-_HTML_TAG_
-
-################
-#Please use this function, rewriting it depending on a server's environment.
-################
-sub GetServerPath
-{
-my $dir;
-
- if($DefServerPath) {
- $dir = $DefServerPath;
- } else {
- if($ENV{'PATH_INFO'}) {
- $dir = $ENV{'PATH_INFO'};
- } elsif($ENV{'FILEPATH_INFO'}) {
- $dir = $ENV{'FILEPATH_INFO'};
- } elsif($ENV{'REQUEST_URI'}) {
- $dir = $ENV{'REQUEST_URI'};
- }
- }
- return($dir);
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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.
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample03.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <head>
+ <title>FCKeditor - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="robots" content="noindex, nofollow">
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript">
+
+function FCKeditor_OnComplete( editorInstance )
+{
+ var oCombo = document.getElementById( 'cmbToolbars' ) ;
+ oCombo.value = editorInstance.ToolbarSet.Name ;
+ oCombo.style.visibility = '' ;
+}
+
+function ChangeToolbar( toolbarName )
+{
+ window.location.href = window.location.pathname + "?Toolbar=" + toolbarName ;
+}
+
+ </script>
+ </head>
+ <body>
+ <h1>FCKeditor - Perl - Sample 3</h1>
+ This sample shows how to change the editor toolbar.
+ <hr>
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td>
+ Select the toolbar to load:
+ </td>
+ <td>
+ <select id="cmbToolbars" onchange="ChangeToolbar(this.value);" style="VISIBILITY: hidden">
+ <option value="Default" selected>Default</option>
+ <option value="Basic">Basic</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <form action="sampleposteddata.cgi" method="post" target="_blank">
+_HTML_TAG_
+
+ #// 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.
+
+ $sBasePath = $ServerPath;
+ $sBasePath = substr($sBasePath, 0, index( $sBasePath, "_samples" ));
+
+ &FCKeditor('FCKeditor1') ;
+ $BasePath = $sBasePath ;
+
+ if($FORM{'Toolbar'} ne "") {
+ $ToolbarSet = $FORM{'Toolbar'};
+ $ToolbarSet =~ s/[^a-z]//ig;
+ }
+ $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
+ &Create();
+
+ print <<"_HTML_TAG_";
+ <br>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ } elsif($ENV{'REQUEST_URI'}) {
+ $dir = $ENV{'REQUEST_URI'};
+ }
+ }
+ return($dir);
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample04.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/perl/sample04.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sample04.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,174 +1,176 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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.
-#####
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require '../../fckeditor.pl';
-
-# When $ENV{'PATH_INFO'} cannot be used by perl.
-# $DefRootPath = "/XXXXX/_samples/perl/sample04.cgi"; Please write in script.
-
-my $DefServerPath = "";
-my $ServerPath;
-
- $ServerPath = &GetServerPath();
-
- if($ENV{'REQUEST_METHOD'} eq "POST") {
- read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
- } else {
- $buffer = $ENV{'QUERY_STRING'};
- }
- @pairs = split(/&/,$buffer);
- foreach $pair (@pairs) {
- ($name,$value) = split(/=/,$pair);
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $value =~ s/\t//g;
- $value =~ s/\r\n/\n/g;
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
- }
-
-#!!Caution javascript \ Quart
-
- print "Content-type: text/html\n\n";
- print <<"_HTML_TAG_";
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
- <head>
- <title>FCKeditor - Sample</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
- <script type="text/javascript">
-
-function FCKeditor_OnComplete( editorInstance )
-{
- var oCombo = document.getElementById( 'cmbSkins' ) ;
-
- // Get the active skin.
- var sSkin = editorInstance.Config['SkinPath'] ;
- sSkin = sSkin.match(/[^\\/]+(?=\\/\$)/g) ;
-
- oCombo.value = sSkin ;
- oCombo.style.visibility = '' ;
-}
-
-function ChangeSkin( skinName )
-{
- window.location.href = window.location.pathname + "?Skin=" + skinName ;
-}
-
- </script>
- </head>
- <body>
- <h1>FCKeditor - Perl - Sample 4</h1>
- This sample shows how to change the editor skin.
- <hr>
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td>
- Select the skin to load:
- </td>
- <td>
- <select id="cmbSkins" onchange="ChangeSkin(this.value);" style="VISIBILITY: hidden">
- <option value="default" selected>Default</option>
- <option value="office2003">Office 2003</option>
- <option value="silver">Silver</option>
- </select>
- </td>
- </tr>
- </table>
- <br>
- <form action="sampleposteddata.cgi" method="post" target="_blank">
-_HTML_TAG_
-
- #// 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.
- $sBasePath = $ServerPath;
- $sBasePath = substr( $sBasePath, 0, index( $sBasePath, "_samples" ) ) ;
-
- &FCKeditor('FCKeditor1');
- $BasePath = $sBasePath;
-
- if($FORM{'Skin'} ne "") {
- $Config{'SkinPath'} = $sBasePath . 'editor/skins/' . &specialchar_cnv( $FORM{'Skin'} ) . '/' ;
- }
- $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
- &Create() ;
-
- print <<"_HTML_TAG_";
- <br>
- <input type="submit" value="Submit">
- </form>
- </body>
-</html>
-_HTML_TAG_
-
-################
-#Please use this function, rewriting it depending on a server's environment.
-################
-sub GetServerPath
-{
-my $dir;
-
- if($DefServerPath) {
- $dir = $DefServerPath;
- } else {
- if($ENV{'PATH_INFO'}) {
- $dir = $ENV{'PATH_INFO'};
- } elsif($ENV{'FILEPATH_INFO'}) {
- $dir = $ENV{'FILEPATH_INFO'};
- } elsif($ENV{'REQUEST_URI'}) {
- $dir = $ENV{'REQUEST_URI'};
- }
- }
- return($dir);
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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.
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+# When $ENV{'PATH_INFO'} cannot be used by perl.
+# $DefRootPath = "/XXXXX/_samples/perl/sample04.cgi"; Please write in script.
+
+my $DefServerPath = "";
+my $ServerPath;
+
+ $ServerPath = &GetServerPath();
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+#!!Caution javascript \ Quart
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <head>
+ <title>FCKeditor - Sample</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="robots" content="noindex, nofollow">
+ <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <script type="text/javascript">
+
+function FCKeditor_OnComplete( editorInstance )
+{
+ var oCombo = document.getElementById( 'cmbSkins' ) ;
+
+ // Get the active skin.
+ var sSkin = editorInstance.Config['SkinPath'] ;
+ sSkin = sSkin.match(/[^\\/]+(?=\\/\$)/g) ;
+
+ oCombo.value = sSkin ;
+ oCombo.style.visibility = '' ;
+}
+
+function ChangeSkin( skinName )
+{
+ window.location.href = window.location.pathname + "?Skin=" + skinName ;
+}
+
+ </script>
+ </head>
+ <body>
+ <h1>FCKeditor - Perl - Sample 4</h1>
+ This sample shows how to change the editor skin.
+ <hr>
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td>
+ Select the skin to load:
+ </td>
+ <td>
+ <select id="cmbSkins" onchange="ChangeSkin(this.value);" style="VISIBILITY: hidden">
+ <option value="default" selected>Default</option>
+ <option value="office2003">Office 2003</option>
+ <option value="silver">Silver</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ <br>
+ <form action="sampleposteddata.cgi" method="post" target="_blank">
+_HTML_TAG_
+
+ #// 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.
+ $sBasePath = $ServerPath;
+ $sBasePath = substr( $sBasePath, 0, index( $sBasePath, "_samples" ) ) ;
+
+ &FCKeditor('FCKeditor1');
+ $BasePath = $sBasePath;
+
+ if($FORM{'Skin'} ne "") {
+ $skin = $FORM{'Skin'};
+ $skin =~ s/[^a-z0-9]//ig;
+ $Config{'SkinPath'} = $sBasePath . 'editor/skins/' . $skin . '/' ;
+ }
+ $Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
+ &Create() ;
+
+ print <<"_HTML_TAG_";
+ <br>
+ <input type="submit" value="Submit">
+ </form>
+ </body>
+</html>
+_HTML_TAG_
+
+################
+#Please use this function, rewriting it depending on a server's environment.
+################
+sub GetServerPath
+{
+my $dir;
+
+ if($DefServerPath) {
+ $dir = $DefServerPath;
+ } else {
+ if($ENV{'PATH_INFO'}) {
+ $dir = $ENV{'PATH_INFO'};
+ } elsif($ENV{'FILEPATH_INFO'}) {
+ $dir = $ENV{'FILEPATH_INFO'};
+ } elsif($ENV{'REQUEST_URI'}) {
+ $dir = $ENV{'REQUEST_URI'};
+ }
+ }
+ return($dir);
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sampleposteddata.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/perl/sampleposteddata.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/perl/sampleposteddata.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,105 +1,108 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 page lists the data posted by a form.
-#####
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require '../../fckeditor.pl';
-
- if($ENV{'REQUEST_METHOD'} eq "POST") {
- read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
- } else {
- $buffer = $ENV{'QUERY_STRING'};
- }
- @pairs = split(/&/,$buffer);
- foreach $pair (@pairs) {
- ($name,$value) = split(/=/,$pair);
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $value =~ s/\t//g;
- $value =~ s/\r\n/\n/g;
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
- }
-
- print "Content-type: text/html\n\n";
- print <<"_HTML_TAG_";
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
- <head>
- <title>FCKeditor - Samples - Posted Data</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <h1>FCKeditor - Samples - Posted Data</h1>
- This page lists all data posted by the form.
- <hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td nowrap>Field Name </td>
- <td>Value</td>
- </tr>
-_HTML_TAG_
-
- foreach $key (keys %FORM) {
- $postedValue = &specialchar_cnv($FORM{$key});
- print <<"_HTML_TAG_";
- <tr>
- <td valign="top" nowrap><b>$key</b></td>
- <td width="100%" style="white-space:pre">$postedValue</td>
- </tr>
-_HTML_TAG_
- }
- print <<"_HTML_TAG_";
- </table>
- </body>
-</html>
-_HTML_TAG_
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 page lists the data posted by a form.
+#####
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require '../../fckeditor.pl';
+
+ if($ENV{'REQUEST_METHOD'} eq "POST") {
+ read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
+ } else {
+ $buffer = $ENV{'QUERY_STRING'};
+ }
+ @pairs = split(/&/,$buffer);
+ foreach $pair (@pairs) {
+ ($name,$value) = split(/=/,$pair);
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ s/\t//g;
+ $value =~ s/\r\n/\n/g;
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+
+ print "Content-type: text/html\n\n";
+ print <<"_HTML_TAG_";
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <head>
+ <title>FCKeditor - Samples - Posted Data</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <meta name="robots" content="noindex, nofollow">
+ <link href="../sample.css" rel="stylesheet" type="text/css" >
+ </head>
+ <body>
+ <h1>FCKeditor - Samples - Posted Data</h1>
+ This page lists all data posted by the form.
+ <hr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
+_HTML_TAG_
+
+ foreach $key (keys %FORM) {
+ $postedValue = &specialchar_cnv($FORM{$key});
+ $key = &specialchar_cnv($key);
+ print <<"_HTML_TAG_";
+ <tr>
+ <th>$key</th>
+ <td><pre>$postedValue</pre></td>
+ </tr>
+_HTML_TAG_
+ }
+ print <<"_HTML_TAG_";
+ </table>
+ </body>
+</html>
+_HTML_TAG_
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample01.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/php/sample01.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample01.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample02.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/php/sample02.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample02.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -91,7 +91,7 @@
if ( isset($_GET['Lang']) )
{
$oFCKeditor->Config['AutoDetectLanguage'] = false ;
- $oFCKeditor->Config['DefaultLanguage'] = $_GET['Lang'] ;
+ $oFCKeditor->Config['DefaultLanguage'] = preg_replace("/[^a-z\-]/i", "", $_GET['Lang']) ;
}
else
{
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample03.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/php/sample03.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample03.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -77,7 +77,7 @@
$oFCKeditor->BasePath = $sBasePath ;
if ( isset($_GET['Toolbar']) )
- $oFCKeditor->ToolbarSet = htmlspecialchars($_GET['Toolbar']);
+ $oFCKeditor->ToolbarSet = preg_replace("/[^a-z]/i", "", $_GET['Toolbar']);
$oFCKeditor->Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
$oFCKeditor->Create() ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample04.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/php/sample04.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sample04.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -83,7 +83,7 @@
$oFCKeditor->BasePath = $sBasePath ;
if ( isset($_GET['Skin']) )
- $oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . htmlspecialchars($_GET['Skin']) . '/' ;
+ $oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . preg_replace("/[^a-z0-9]/i", "", $_GET['Skin']) . '/' ;
$oFCKeditor->Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
$oFCKeditor->Create() ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sampleposteddata.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/php/sampleposteddata.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/php/sampleposteddata.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,17 +28,20 @@
<title>FCKeditor - Samples - Posted Data</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
- <link href="../sample.css" rel="stylesheet" type="text/css" />
+ <link href="../sample.css" rel="stylesheet" type="text/css" >
</head>
<body>
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td nowrap>Field Name </td>
- <td>Value</td>
- </tr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
<?php
if ( isset( $_POST ) )
@@ -55,8 +58,8 @@
?>
<tr>
- <td valign="top" nowrap><b><?=$sForm?></b></td>
- <td width="100%" style="white-space:pre"><?=$postedValue?></td>
+ <th><?php echo htmlspecialchars($sForm) ?></th>
+ <td><pre><?php echo $postedValue?></pre></td>
</tr>
<?php
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sample01.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/py/sample01.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sample01.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -68,10 +68,10 @@
"""
# For testing your environments
-print "<hr>"
-for key in os.environ.keys():
- print "%s: %s<br>" % (key, os.environ.get(key, ""))
-print "<hr>"
+#print "<hr>"
+#for key in os.environ.keys():
+# print "%s: %s<br>" % (key, os.environ.get(key, ""))
+#print "<hr>"
# Document footer
print """
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sampleposteddata.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/py/sampleposteddata.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/py/sampleposteddata.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -53,30 +53,33 @@
<h1>FCKeditor - Samples - Posted Data</h1>
This page lists all data posted by the form.
<hr>
- <table width="100%" border="1" cellspacing="0" bordercolor="#999999">
- <tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
- <td nowrap>Field Name </td>
- <td>Value</td>
- </tr>
+ <table border="1" cellspacing="0" id="outputSample">
+ <colgroup><col width="80"><col></colgroup>
+ <thead>
+ <tr>
+ <th>Field Name</th>
+ <th>Value</th>
+ </tr>
+ </thead>
"""
for key in form.keys():
try:
value = form[key].value
print """
<tr>
- <td valign="top" nowrap><b>%s</b></td>
- <td width="100%%" style="white-space:pre">%s</td>
+ <th>%s</th>
+ <td><pre>%s</pre></td>
</tr>
- """ % (key, value)
+ """ % (cgi.escape(key), cgi.escape(value))
except Exception, e:
print e
print "</table>"
# For testing your environments
-print "<hr>"
-for key in os.environ.keys():
- print "%s: %s<br>" % (key, os.environ.get(key, ""))
-print "<hr>"
+#print "<hr>"
+#for key in os.environ.keys():
+# print "%s: %s<br>" % (key, os.environ.get(key, ""))
+#print "<hr>"
# Document footer
print """
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sample.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/sample.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sample.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,7 +21,7 @@
* Styles used in the samples pages.
*/
-body, td, input, select, textarea
+body, td, th, input, select, textarea
{
font-size: 12px;
font-family: Arial, Verdana, Sans-Serif;
@@ -36,15 +36,39 @@
form
{
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
+ margin: 0;
+ padding: 0;
}
+#outputSample
+{
+ table-layout: fixed;
+ width: 100%;
+}
+
pre
{
- margin:0px;
- padding:0px;
- white-space: pre-wrap; /* css-3 */
- white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
- word-wrap: break-word; /* Internet Explorer 5.5+ */
+ margin: 0;
+ padding: 0;
+
+ white-space: pre; /* CSS2 */
+ white-space: -moz-pre-wrap; /* Mozilla*/
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS 2.1 */
+ white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
+ word-wrap: break-word; /* IE */
}
+
+#outputSample thead th
+{
+ color: #dddddd;
+ background-color: #999999;
+ padding: 4px;
+ white-space: nowrap;
+}
+
+#outputSample tbody th
+{
+ vertical-align: top;
+ text-align: left;
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sampleslist.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_samples/sampleslist.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_samples/sampleslist.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"http://www.w3.org/TR/html4/strict.dtd">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -64,6 +64,8 @@
<option value="html/sample12.html">JavaScript : Sample 12 : Enter key behavior</option>
<option value="html/sample13.html">JavaScript : Sample 13 : Dinamically switching with a Textarea</option>
<option value="html/sample14.html">JavaScript : Sample 14 : XHTML 1.1</option>
+ <option value="html/sample15.html">JavaScript : Sample 15 : Legacy HTML 4 tags</option>
+ <option value="html/sample16.html">JavaScript : Sample 16 : Flash content editor</option>
<option value=""></option>
</optgroup>
<optgroup label="Active Fox Pro">
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_upgrade.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_upgrade.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_upgrade.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_whatsnew.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -33,261 +33,145 @@
<h1>
FCKeditor ChangeLog - What's New?</h1>
<h3>
- Version 2.6</h3>
+ Version 2.6.4.1</h3>
<p>
- No changes. The stabilization of the 2.6 RC was completed successfully, as expected.</p>
- <h3>
- Version 2.6 RC</h3>
- <p>
- New Features and Improvements:</p>
+ Fixed Bugs:</p>
<ul>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2017">#2017</a>] The FCKeditorAPI.Instances
- object can now be used to access all FCKeditor instances available in the page.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1980">#1980</a>] <span
- style="color: #ff0000">Attention:</span> By default, the editor now produces <strong>
- and <em> instead of <b> and <i>.</li>
+ <li><strong>Security release, upgrade is highly recommended.</strong></li>
</ul>
+ <h3>
+ Version 2.6.4</h3>
<p>
Fixed Bugs:</p>
<ul>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1924">#1924</a>] The dialog
- close button is now correctly positioned in IE in RTL languages.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1933">#1933</a>] Placeholder
- dialog will now display the placeholder value correctly in IE.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/957">#957</a>] Pressing
- Enter or typing after a placeholder with the placeholder plugin will no longer generate
- colored text.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1952">#1952</a>] Fixed
- an issue in FCKTools.FixCssUrls that, other than wrong, was breaking Opera.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1695">#1695</a>] Removed
- Ctrl-Tab hotkey for Source mode and allowed Ctrl-T to work in Firefox.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1666">#1666</a>] Fixed
- permission denied errors during opening popup menus in IE6 under domain relaxation
- mode.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1934">#1934</a>] Fixed
- JavaScript errors when calling Selection.EnsureSelection() in dialogs.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1920">#1920</a>] Fixed
- SSL warning message when opening image and flash dialogs under HTTPS in IE6.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1955">#1955</a>] [<a
- target="_blank" href="http://dev.fckeditor.net/ticket/1981">#1981</a>] [<a target="_blank"
- href="http://dev.fckeditor.net/ticket/1985">#1985</a>] [<a target="_blank" href="http://dev.fckeditor.net/ticket/1989">#1989</a>]
- Fixed XHTML source formatting errors in non-IE browsers.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2000">#2000</a>] The #
- character is now properly encoded in file names returned by the File Browser.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1945">#1945</a>] New folders
- and file names are now properly sanitized against control characters. </li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1944">#1944</a>] Backslash
- character is now disallowed in current folder path.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1055">#1055</a>] Added
- logic to override JavaScript errors occurring inside the editing frame due to user
- added JavaScript code.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1647">#1647</a>] Hitting
- ENTER on list items containing block elements will now create new list item elements,
- instead of adding further blocks to the same list item.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1411">#1411</a>] Label
- only combos now get properly grayed out when moving to source view.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2009">#2009</a>] Fixed
- an important bug regarding styles removal on styled text boundaries, introduced
- with the 2.6 Beta 1. </li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2011">#2011</a>] Internal
- CSS <style> tags where being outputted when FullPage=true.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2016">#2016</a>] The Link
- dialog now properly selects the first field when opening it to modify mailto or
- anchor links. This problem was also throwing an error in IE.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2021">#2021</a>] The caret
- will no longer remain behind in the editing area when the placeholder dialog is
- opened.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2024">#2024</a>] Fixed
- JavaScript error in IE when the user tries to open dialogs in Source mode.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1853">#1853</a>] Setting
- ShiftEnterMode to p or div now works correctly when EnterMode is br.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1838">#1838</a>] Fixed
- the issue where context menus sometimes don't disappear after selecting an option.
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2777">#2777</a>] Merging
+ cells between table header and body is no longer possible.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2815">#2815</a>] Fixed
+ WSC issues at slow connection speed. Added SSL support.</li>
+ <li>Language file updates for the following languages:
+ <ul>
+ <li>Chinese (Traditional)</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2846">#2846</a>] French</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2801">#2801</a>] Hebrew</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2824">#2824</a>] Russian</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2811">#2811</a>] Turkish</li>
+ </ul>
</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2028">#2028</a>] Fixed
- JavaScript error when EnterMode=br and user tries to insert a page break.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2002">#2002</a>] Fixed
- the issue where the maximize editor button does not vertically expand the editing
- area in Firefox.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1842">#1842</a>] PHP integration:
- fixed filename encoding problems in file browser.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1832">#1832</a>] Calling
- FCK.InsertHtml() in non-IE browsers would now activate the document processor as
- expected.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1998">#1998</a>] The native
- XMLHttpRequest class is now used in IE, whenever it is available.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1792">#1792</a>] In IE,
- the browser was able to enter in an infinite loop when working with multiple editors
- in the same page. </li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1948">#1948</a>] Some
- CSS rules are reset to dialog elements to avoid conflict with the page CSS.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1965">#1965</a>] IE was
- having problems with SpellerPages, causing some errors to be thrown when completing
- the spell checking in some situations.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2042">#2042</a>] The FitWindow
- command was throwing an error if executed in an editor where its relative button
- is not present in the toolbar.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/922">#922</a>] Implemented
- a generic document processor for <OBJECT> and <EMBED> tags.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1831">#1831</a>] Fixed
- the issue where the placeholder icon for <EMBED> tags does not always show
- up in IE7.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2049">#2049</a>] Fixed
- a deleted cursor CSS attribute in the minified CSS inside fck_dialog_common.js.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1806">#1806</a>] In IE,
- the caret will not any more move to the previous line when selecting a Format style
- inside an empty paragraph.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1990">#1990</a>] In IE,
- dialogs using API calls which deals with the selection, like InsertHtml now can
- be sure the selection will be placed in the correct position.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1997">#1997</a>] With
- IE, the first character of table captions where being lost on table creation.</li>
- <li>The selection and cursor position was not being properly handled when creating some
- elements like forms and tables.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/662">#662</a>] In the
- Perl sample files, the GetServerPath function will now calculate the path properly.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2757">#2757</a>] Fixed
+ a minor bug which causes selection positions to be improperly restored during undos
+ and redos.</li>
</ul>
<h3>
- Version 2.6 Beta 1</h3>
+ Version 2.6.4 Beta</h3>
<p>
New Features and Improvements:</p>
<ul>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/35">#35</a>] <strong>New
- (and cool!) floating dialog system</strong>, avoiding problems with popup blockers
- and enhancing the editor usability.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1886">#1886</a>] <strong>
- Adobe AIR</strong> compatibility.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/123">#123</a>] Full support
- for <strong>document.domain</strong> with automatic domain detection.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1622">#1622</a>] New <strong>
- inline CSS cache</strong> feature, making it possible to avoid downloading the CSS
- files for the editing area and skins. For that, it is enough to set the EditorAreaCSS,
- SkinEditorCSS and SkinDialogCSS to string values in the format "/absolute/path/for/urls/|<minified
- CSS styles". All internal CSS links are already using this feature. </li>
- <li>New language file for <strong>Canadian French</strong>.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2685">#2685</a>] Integration
+ with "WebSpellChecker", a <strong>zero installation and free spell checker</strong>
+ provided by SpellChecker.net. This is now the default spell checker in the editor
+ (requires internet connection). All previous spell checking solutions are still
+ available.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2430">#2430</a>] In the
+ table dialog it's possible to create header cells in the first row (included in
+ a thead element) or the first column of the table. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/822">#822</a>] The table
+ cell dialog allows switching between normal data cells or header cells (TD vs. TH).
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2515">#2515</a>] New language
+ file for Icelandic.</li>
</ul>
<p>
Fixed Bugs:</p>
<ul>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1643">#1643</a>] Resolved
- several "strict warning" messages in Firefox when running FCKeditor.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1522">#1522</a>] The ENTER
- key will now work properly in IE with the cursor at the start of a formatted block.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1503">#1503</a>] It's
- possible to define in the Styles that a Style (with an empty class) must be shown
- selected only when no class is present in the current element, and selecting that
- item will clear the current class (it does apply to any attribute, not only classes).</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/191">#191</a>] The scrollbars
- are now being properly shown in Firefox Mac when placing FCKeditor inside a hidden
- div.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/503">#503</a>] Orphaned
- <li> elements now get properly enclosed in a <ul> on output.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/309">#309</a>] The ENTER
- key will not any more break <button> elements at the beginning of paragraphs.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1654">#1654</a>] The editor
- was not loading on a specific unknown situation. The breaking point has been removed.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1707">#1707</a>] The editor
- no longer hangs when operating on documents imported from Microsoft Word.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1514">#1514</a>] Floating
- panels attached to a shared toolbar among multiple FCKeditor instances are no longer
- misplaced when the editing areas are absolutely or relatively positioned.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1715">#1715</a>] The ShowDropDialog
- is now enforced only when ForcePasteAsPlainText = true.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1336">#1336</a>] Sometimes
- the autogrow plugin didn't work properly in Firefox.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1728">#1728</a>] External
- toolbars are now properly sized in Opera.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1782">#1782</a>] Clicking
- on radio buttons or checkboxes in the editor in IE will no longer cause lockups
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2381">#2381</a>] Protected
+ the editor from duplicate iframes</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1752">#1752</a>] Fixed
+ the issue with tablecommands plugin and undefined tagName.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2333">#2333</a>] The &gt;
+ character inside text wasn't encoded in Opera and Safari.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2467">#2467</a>] Fixed
+ JavaScript error with the fit window command in source mode.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2472">#2472</a>] Splitting
+ a TH will create a two TH, not a TH and a TD.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1891">#1891</a>] Removed
+ unnecessary name attributes in dialogs. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/798">#798</a>, <a target="_blank"
+ href="http://dev.fckeditor.net/ticket/2495">#2495</a>] If an image was placed inside
+ a container with dimensions or floating it wasn't possible to edit its properties
+ from the toolbar or context menu.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1982">#1982</a>] Submenus
+ in IE7 now are shown properly.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2496">#2496</a>] Using
+ the Paste dialogs in IE might insert the content at the start of the editor.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2349">#2496</a>] Fixed
+ RTL dialog layout in Internet Explorer.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2488">#2488</a>] Fixed
+ the issue where email links in IE would take the browser to a new page in addition
+ to calling up the email client.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2519">#2519</a>] Fixed
+ race condition at registering the FCKeditorAPI object in multiple editor scenarios.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2525">#2525</a>] Fixed
+ JavaScript error in Google Chrome when StartupShowBlocks is set to true.</li>
+ <li>Language file updates for the following languages:
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2440">#2440</a>] Dutch</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2451">#2451</a>] Basque</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2451">#2650</a>] Danish</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2208">#2535</a>] German
+ </li>
+ </ul>
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2531">#2531</a>] The ENTER
+ key will properly scroll to the cursor position when breaking long paragraphs.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2573">#2573</a>] The type
+ name in configurations for the ASP connector are now case sensitive.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2503">#2503</a>] DL, DT
+ and DD where missing the formatting in the generated HTML.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2516">#2516</a>] Replaced
+ the extension AddItem of Array with the standard "push" method.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2486">#2486</a>] Vertically
+ splitting cell with colspan > 1 breaks table layout.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2597">#2597</a>] Fixed
+ the issue where dropping contents from outside of the editor doesn't work in Safari.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2412">#2412</a>] Fixed
+ the issue where FCK.InsertHtml() is no longer removing selected contents after content
+ insertion in Firefox.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2407">#2407</a>] Fixed
+ the issue where the Div container command and the blockquote command would break
+ lists.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2469">#2469</a>] Fixed
+ a minor issue where FCK.SetData() may cause the editor to become unresponsive to
+ the first click after being defocused.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2611">#2611</a>] Fixed
+ an extra slash on quickupload of the asp connector.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2616">#2616</a>] Fixed
+ another situation where new elements were inserted at the beginning of the content
in IE.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/805">#805</a>] The FCKConfig.Keystrokes
- commands where executed even if the command itself was disabled.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/982">#982</a>] The button
- to empty the box in the "Paste from Word" has been removed as it leads to confusion
- for some users.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1682">#1682</a>] Editing
- control elements in Firefox, Opera and Safari now works properly.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1613">#1613</a>] The editor
- was surrounded by a <div> element that wasn't really needed.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/676">#676</a>] If a form
- control was moved in IE after creating it, then it did lose its name.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/738">#738</a>] It wasn't
- possible to change the type of an existing button.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1854">#1854</a>] Indentation
- now works inside table cells.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1717">#1717</a>] The editor
- was entering on looping on some specific cases when dealing with invalid source
- markup.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1530">#1530</a>] Pasting
- text into the "Find what" fields in the Find and Replace dialog would now activate
- the find and replace buttons.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1828">#1828</a>] The Find/Replace
- dialog will no longer display wrong starting positions for the match when there
- are multiple and identical characters preceding the character at the real starting
- point of the match.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1878">#1878</a>] Fixed
- a JavaScript error which occurs in the Find/Replace dialog when the user presses
- "Find" or "Replace" after the "No match found" message has appeared.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1355">#1355</a>] Line
- breaks and spaces are now conserved when converting to and from the "Formatted"
- format.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1670">#1670</a>] Improved
- the background color behind smiley icons and special characters in their corresponding
- dialogs.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1693">#1693</a>] Custom
- error messages are now properly displayed in the file browser.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/970">#970</a>] The text
- and value fields in the selection box dialog will no longer extend beyond the dialog
- limits when the user inputs a very long text or value for one of the selection options.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/479">#479</a>] Fixed the
- issue where pressing Enter in an <o:p> tag in IE does not generate line breaks.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/481">#481</a>] Fixed the
- issue where the image preview in image dialog sometimes doesn't display after selecting
- the image from server browser.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1488">#1488</a>] PHP integration:
- the FCKeditor class is now more PHP5/6 friendly ("public" keyword is used instead
- of depreciated "var").</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1815">#1815</a>] PHP integration:
- removed closing tag: "?>", so no additional whitespace added when files are included.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1906">#1906</a>] PHP file
- browser: fixed problems with DetectHtml() function when open_basedir was set.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1871">#1871</a>] PHP file
- browser: permissions applied with the chmod command are now configurable.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1872">#1872</a>] Perl
- file browser: permissions applied with the chmod command are now configurable.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1873">#1873</a>] Python
- file browser: permissions applied with the chmod command are now configurable.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1572">#1572</a>] ColdFusion
- integration: fixed issues with setting the editor height.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1692">#1692</a>] ColdFusion
- file browser: it is possible now to define TempDirectory to avoid issues with GetTempdirectory()
- returning an empty string.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1379">#1379</a>] ColdFusion
- file browser: resolved issues with OnRequestEnd.cfm breaking the file browser.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1509">#1509</a>] InsertHtml()
- in IE will no longer turn the preceding normal whitespace into &nbsp;.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/958">#958</a>] The AddItem
- method now has an additional fifth parameter "customData" that will be sent to the
- Execute method of the command for that menu item, allowing a single command to be
- used for different menu items..</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1502">#1502</a>] The RemoveFormat
- command now also removes the attributes from the cleaned text. The list of attributes
- is configurable with FCKConfig.RemoveAttributes.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1596">#1596</a>] On Safari,
- dialogs have now right-to-left layout when it runs a RTL language, like Arabic.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1344">#1344</a>] Added
- warning message on Copy and Cut operation failure on IE due to paste permission
- settings.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1868">#1868</a>] Links
- to file browser has been changed to avoid requests containing double dots.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1229">#1229</a>] Converting
- multiple contiguous paragraphs to Formatted will now be merged into a single <PRE>
- block.</li>
- <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1627">#1627</a>] Samples
- failed to load from local filesystem in IE7.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2634">#2634</a>] Fixed
+ two obsolete references to Array::AddItem() instances still in the code.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2679">#2679</a>] Fixed
+ infinite loop problems with FCKDomRangeIterator class which causes some commands
+ to hang when applied to certain document structures.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2649">#2649</a>] Fixed
+ a JavaScript error in IE when user tries to search with the "Match whole word" option
+ enabled and the matched word is at exactly the end of document.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2603">#2603</a>] Changed
+ the <a href="http://docs.fckeditor.net/EMailProtection">EMailProtection</a> to "none"
+ for better compatibility.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2612">#2612</a>] The 'ForcePasteAsPlainText'
+ configuration option didn't work correctly in Safari and Chrome.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2696">#2696</a>] Fixed
+ non-working autogrow plugin.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2753">#2753</a>] Fixed
+ occasional exceptions in the dragersizetable plugin with IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2653">#2653</a>] and [<a
+ target="_blank" href="http://dev.fckeditor.net/ticket/2733">#2733</a>] Enable undo
+ of changes to tables and table cells.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1865">#1865</a>] The context
+ menu is now working properly over the last row in a table with thead. Thanks to
+ Koen Willems.</li>
</ul>
<p>
- <a href="_whatsnew_history.html">See previous versions history</a>
- </p>
+ <a href="_whatsnew_history.html">See previous versions history</a></p>
</body>
</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew_history.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/_whatsnew_history.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/_whatsnew_history.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -33,6 +33,549 @@
<h1>
FCKeditor ChangeLog - What's New?</h1>
<h3>
+ Version 2.6.3</h3>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2412">#2412</a>] FCK.InsertHtml()
+ is now properly removing selected contents after content insertion in Firefox.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2420">#2420</a>] Spelling
+ mistake corrections made by the spell checking dialog are now undoable. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2411">#2411</a>] Insert
+ anchor was not working for non-empty selections.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2426">#2426</a>] It was
+ impossible to switch between editor areas with a single click.</li>
+ <li>Language file updates for the following languages:
+ <ul>
+ <li>Canadian French</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2402">#2402</a>] Catalan
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2400">#2400</a>] Chinese
+ (Simplified and Traditional)</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2401">#2401</a>] Croatian</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2422">#2422</a>] Czech</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2417">#2417</a>] Dutch</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2428">#2428</a>] French</li>
+ <li>German</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2427">#2427</a>] Hebrew</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2410">#2410</a>] Hindi</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2405">#2405</a>] Japanese</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2409">#2409</a>] Norwegian
+ and Norwegian Bokmål</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2429">#2429</a>] Spanish</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2406">#2406</a>] Vietnamese</li>
+ </ul>
+ </li>
+ </ul>
+ <p>
+ This version has been sponsored by <a href="http://www.dataillusion.com/fs/">Data Illusion
+ survey software solutions</a>.</p>
+ <h3>
+ Version 2.6.3 Beta</h3>
+ <p>
+ New Features and Improvements:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/439">#439</a>] Added a
+ new <strong>context menu option for opening links</strong> in the editor.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2220">#2220</a>] <strong>
+ Email links</strong> from the Link dialog <strong>are now encoded</strong> by default
+ to prevent being harvested by spammers. (Kudos to asuter for proposing the patch)
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2234">#2234</a>] Added
+ the ability to create, modify and remove <strong>DIV containers</strong>. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2247">#2247</a>] The <strong>
+ SHIFT+SPACE</strong> keystroke will now <strong>produce a &nbsp;</strong> character.
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2252">#2252</a>] It's
+ now possible to enable the browsers default menu using the configuration file (FCKConfig.BrowserContextMenu
+ option). </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2032">#2032</a>] Added
+ HTML samples for legacy HTML and Flash HTML. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/234">#234</a>] Introduced
+ the "PreventSubmitHandler" setting, which makes it possible to instruct the editor
+ to not handle the hidden field update on form submit events.</li>
+ </ul>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2319">#2319</a>] On Opera
+ and Firefox 3, the entire page was scrolling on SHIFT+ENTER, or when EnterMode='br'.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2321">#2321</a>] On Firefox
+ 3, the entire page was scrolling when inserting block elements with the FCK.InsertElement
+ function, used by the Table and Horizontal Rule buttons.. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/692">#692</a>] Added some
+ hints in editor/css/fck_editorarea.css on how to handle style items that would break
+ the style combo. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2263">#2263</a>] Fixed
+ a JavaScript error in IE which occurs when there are placeholder elements in the
+ document and the user has pressed the Source button.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2314">#2314</a>] Corrected
+ mixed up Chinese translations for the blockquote command.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2323">#2323</a>] Fixed
+ the issue where the show blocks command loses the current selection from the view
+ area when editing a long document.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2322">#2322</a>] Fixed
+ the issue where the fit window command loses the current selection and scroll position
+ in the editing area.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1917">#1917</a>] Fixed
+ the issue where the merge down command for tables cells does not work in IE for
+ more than two cells.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2320">#2320</a>] Fixed
+ the issue where the Find/Replace dialog scrolls the entire page.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1645">#1645</a>] Added
+ warning message about Firefox 3's strict origin policy.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2272">#2272</a>] Improved
+ the garbage filter in Paste from Word dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2327">#2327</a>] Fixed
+ invalid HTML in the Paste dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1907">#1907</a>] Fixed
+ sporadic "FCKeditorAPI is not defined" errors in Firefox 3.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2356">#2356</a>] Fixed
+ access denied error in IE7 when FCKeditor is launched from local filesystem.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1150">#1150</a>] Fixed
+ the type="_moz" attribute that sometimes appear in <br> tags in non-IE browsers.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1229">#1229</a>] Converting
+ multiple contiguous paragraphs to Formatted will now be merged into a single <PRE>
+ block.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2363">#2363</a>] There
+ were some sporadic "Permission Denied" errors with IE on some situations.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2135">#2135</a>] Fixed
+ a data loss bug in IE when there are @import statements in the editor's CSS files,
+ and IE's cache is set to "Check for newer versions on every visit".</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2376">#2376</a>] FCK.InsertHtml()
+ will now insert to the last selected position after the user has selected things
+ outside of FCKeditor, in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2368">#2368</a>] Fixed
+ broken protect source logic for comments in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2387">#2387</a>] Fixed
+ JavaScript error with list commands when the editable document is selected with
+ Ctrl-A.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2390">#2390</a>] Fixed
+ the issue where indent styles in JavaScript-generated <p> blocks are erased
+ in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2394">#2394</a>] Fixed
+ JavaScript error with the "split vertically" command in IE when attempting to split
+ cells in the last row of a table.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2316">#2316</a>] The sample
+ posted data page has now the table fixed at 100% width. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2396">#2396</a>] SpellerPages
+ was causing a "Permission Denied" error in some situations. </li>
+ </ul>
+ <h3>
+ Version 2.6.2</h3>
+ <p>
+ New Features and Improvements:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2043">#2043</a>] The debug
+ script is not any more part of the compressed files. If FCKeditor native debugging
+ features (FCKDebug) are required, the _source folder must be present in your installation.</li>
+ </ul>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2248">#2248</a>] Calling
+ FCK.InsertHtml( 'nbsp;') was inserting a plain space instead of a non breaking space
+ character.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2273">#2273</a>] The dragresizetable
+ plugin now works in Firefox 3 as well.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2254">#2254</a>] Minor
+ fix in FCKSelection for nodeTagName object.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1614">#1614</a>] Unified
+ FCKConfig.FullBasePath with FCKConfig.BasePath.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2127">#2127</a>] Changed
+ floating dialogs to use fixed positioning so that they are no longer affected by
+ scrolling.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2018">#2018</a>] Reversed
+ the fix for <a target="_blank" href="http://dev.fckeditor.net/ticket/183">#183</a>
+ which broke FCKeditorAPI's cleanup logic. A new configuration directive <strong>MsWebBrowserControlCompat</strong>
+ has been added for those who wish to force the #183 fix to be enabled.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2276">#2276</a>] [<a
+ target="_blank" href="http://dev.fckeditor.net/ticket/2279">#2279</a>] On Opera
+ and Firefox 3, the entire page was scrolling on ENTER.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2149">#2149</a>] CSS urls
+ with querystring parameters were not being accepted for CSS values in the configuration
+ file (like EditorAreaCSS).</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2287">#2287</a>] On some
+ specific cases, with Firefox 2, some extra spacing was appearing in the final HTML
+ on posting, if inserting two successive tables.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2287">#2287</a>] Block
+ elements (like tables or horizontal rules) will be inserted correctly now when the
+ cursor is at the start or the end of blocks. No extra paragraphs will be included
+ in this operation.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2149">#2197</a>] The TAB
+ key will now have the default browser behavior if TabSpaces=0. It will move the
+ focus out of the editor (expect on Safari).</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2296">#2296</a>] Fixed
+ permission denied error on clicking on files in the file browser.</li>
+ </ul>
+ <h3>
+ Version 2.6.1</h3>
+ <p>
+ New Features and Improvements:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2150">#2150</a>] The searching
+ speed of the Find/Replace dialog has been vastly improved.</li>
+ <li>New language file for <strong>Gujarati</strong> (by Nilam Doctor).</li>
+ <li>A new TabIndex property has been added to the JavaScript integration files.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2215">#2215</a>] Following
+ the above new feature, the ReplaceTextarea method will now copy the textarea.tabIndex
+ value if available.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2163">#2163</a>] If the
+ FCKConfig.DocType setting points to a HTML DocType then the output won't generate
+ self-closing tags (it will output <img > instead of <img />).</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2173">#2173</a>] A throbber
+ will be shown in the Quick Uploads.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2142">#2142</a>] HTML
+ samples will now use sampleposteddata.php in action parameter inside a form.</li>
+ </ul>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/768">#768</a>] It is no
+ longer possible for an image to have its width and height defined with both HTML
+ attributes and inline CSS styles in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1426">#1426</a>] Fixed
+ the error loading fckstyles.xml in servers which cannot return the correct content
+ type header for .xml files.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2102">#2102</a>] Fixed
+ FCKConfig.DocType which stopped working in FCKeditor 2.6.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2039">#2039</a>] Fixed
+ the locking up issue in the Find/Replace dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2124">#2124</a>] PHP File
+ Browser: fixed issue with resolving paths on Windows servers with PHP 5.2.4/5.2.5.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2059">#2059</a>] Fixed
+ the error in the toolbar name in fckeditor.py.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2065">#2065</a>] Floating
+ dialogs will now block the user from re-selecting the editing area by pressing Tab.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2114">#2114</a>] Added
+ a workaround for an IE6 bug which causes floating dialogs to appear blank after
+ opening it for the first time.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2136">#2136</a>] Fixed
+ JavaScript error in IE when opening the bullet list properties dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1633">#1633</a>] External
+ styles should no longer interfere with the appearance of the editor and floating
+ panels now.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2113">#2113</a>] Fixed
+ unneeded <span class="Apple-style-span"> created after inserting
+ special characters.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2170">#2170</a>] Fixed
+ Ctrl-Insert hotkey for copying.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2125">#2125</a>] Fixed
+ the issue that FCK.InsertHtml() doesn't insert contents at the caret position when
+ dialogs are opened in IE. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1764">#1764</a>] FCKeditor
+ will no longer catch focus in IE on load when StartupFocus is false and the initial
+ content is empty.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2126">#2126</a>] Opening
+ and closing floating dialogs will no longer cause toolbar button states to become
+ frozen.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2159">#2159</a>] Selection
+ are now correctly restored when undoing changes made by the Replace dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2160">#2160</a>] "Match
+ whole word" in the Find and Replace dialog will now find words next to punctuation
+ marks as well.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2162">#2162</a>] If the
+ configuration is set to work including the <head> (FullPage), references to
+ stylesheets added by Firefox extensions won't be added to the output.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2168">#2168</a>] Comments
+ won't generate new paragraphs in the output.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2184">#2184</a>] Fixed
+ several validation errors in the File Browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1383">#1383</a>] Fixed
+ an IE issue where pressing backspace may merge a hyperlink on the previous line
+ with the text on the current line.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1691">#1691</a>] Creation
+ of links in Safari failed if there was no selection.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2188">#2188</a>] PreserveSessionOnFileBrowser
+ is now removed as it was made obsolete with 2.6.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/898">#898</a>] The styles
+ for the editing area are applied in the image preview dialog.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2056">#2056</a>] Fixed
+ several validation errors in the dialogs.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2063">#2063</a>] Fixed
+ some problems in asp related to the use of network paths for the location of the
+ uploaded files.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1593">#1593</a>] The "Sample
+ Posted Data" page will now properly wrap the text.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2239">#2239</a>] The PHP
+ code in sampleposteddata.php has been changed from "<?=" to "<? echo".</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2241">#2241</a>] Fixed
+ 404 error in floating panels when FCKeditor is installed to a different domain.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2066">#2066</a>] Added
+ a workaround for a Mac Safari 3.1 browser bug which caused the Fit Window button
+ to give a blank screen.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2218">#2218</a>] Improved
+ Gecko based browser detection to accept Epiphany/Gecko as well.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2193">#2193</a>] Fixed
+ the issue where the caret cannot reach the last character of a paragraph in Opera
+ 9.50.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2264">#2264</a>] Fixed
+ empty spaces that appear at the top of the editor in Opera 9.50.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2238">#2238</a>] The <object>
+ placeholder was not being properly displayed in the compressed distribution version
+ and nightly builds.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2115">#2115</a>] Fixed
+ JavaScript (permission denied) error in Firefox when file has been uploaded.</li>
+ </ul>
+ <h3>
+ Version 2.6</h3>
+ <p>
+ No changes. The stabilization of the 2.6 RC was completed successfully, as expected.</p>
+ <h3>
+ Version 2.6 RC</h3>
+ <p>
+ New Features and Improvements:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2017">#2017</a>] The FCKeditorAPI.Instances
+ object can now be used to access all FCKeditor instances available in the page.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1980">#1980</a>] <span
+ style="color: #ff0000">Attention:</span> By default, the editor now produces <strong>
+ and <em> instead of <b> and <i>.</li>
+ </ul>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1924">#1924</a>] The dialog
+ close button is now correctly positioned in IE in RTL languages.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1933">#1933</a>] Placeholder
+ dialog will now display the placeholder value correctly in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/957">#957</a>] Pressing
+ Enter or typing after a placeholder with the placeholder plugin will no longer generate
+ colored text.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1952">#1952</a>] Fixed
+ an issue in FCKTools.FixCssUrls that, other than wrong, was breaking Opera.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1695">#1695</a>] Removed
+ Ctrl-Tab hotkey for Source mode and allowed Ctrl-T to work in Firefox.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1666">#1666</a>] Fixed
+ permission denied errors during opening popup menus in IE6 under domain relaxation
+ mode.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1934">#1934</a>] Fixed
+ JavaScript errors when calling Selection.EnsureSelection() in dialogs.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1920">#1920</a>] Fixed
+ SSL warning message when opening image and flash dialogs under HTTPS in IE6.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1955">#1955</a>] [<a
+ target="_blank" href="http://dev.fckeditor.net/ticket/1981">#1981</a>] [<a target="_blank"
+ href="http://dev.fckeditor.net/ticket/1985">#1985</a>] [<a target="_blank" href="http://dev.fckeditor.net/ticket/1989">#1989</a>]
+ Fixed XHTML source formatting errors in non-IE browsers.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2000">#2000</a>] The #
+ character is now properly encoded in file names returned by the File Browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1945">#1945</a>] New folders
+ and file names are now properly sanitized against control characters. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1944">#1944</a>] Backslash
+ character is now disallowed in current folder path.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1055">#1055</a>] Added
+ logic to override JavaScript errors occurring inside the editing frame due to user
+ added JavaScript code.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1647">#1647</a>] Hitting
+ ENTER on list items containing block elements will now create new list item elements,
+ instead of adding further blocks to the same list item.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1411">#1411</a>] Label
+ only combos now get properly grayed out when moving to source view.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2009">#2009</a>] Fixed
+ an important bug regarding styles removal on styled text boundaries, introduced
+ with the 2.6 Beta 1. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2011">#2011</a>] Internal
+ CSS <style> tags where being outputted when FullPage=true.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2016">#2016</a>] The Link
+ dialog now properly selects the first field when opening it to modify mailto or
+ anchor links. This problem was also throwing an error in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2021">#2021</a>] The caret
+ will no longer remain behind in the editing area when the placeholder dialog is
+ opened.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2024">#2024</a>] Fixed
+ JavaScript error in IE when the user tries to open dialogs in Source mode.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1853">#1853</a>] Setting
+ ShiftEnterMode to p or div now works correctly when EnterMode is br.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1838">#1838</a>] Fixed
+ the issue where context menus sometimes don't disappear after selecting an option.
+ </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2028">#2028</a>] Fixed
+ JavaScript error when EnterMode=br and user tries to insert a page break.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2002">#2002</a>] Fixed
+ the issue where the maximize editor button does not vertically expand the editing
+ area in Firefox.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1842">#1842</a>] PHP integration:
+ fixed filename encoding problems in file browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1832">#1832</a>] Calling
+ FCK.InsertHtml() in non-IE browsers would now activate the document processor as
+ expected.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1998">#1998</a>] The native
+ XMLHttpRequest class is now used in IE, whenever it is available.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1792">#1792</a>] In IE,
+ the browser was able to enter in an infinite loop when working with multiple editors
+ in the same page. </li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1948">#1948</a>] Some
+ CSS rules are reset to dialog elements to avoid conflict with the page CSS.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1965">#1965</a>] IE was
+ having problems with SpellerPages, causing some errors to be thrown when completing
+ the spell checking in some situations.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2042">#2042</a>] The FitWindow
+ command was throwing an error if executed in an editor where its relative button
+ is not present in the toolbar.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/922">#922</a>] Implemented
+ a generic document processor for <OBJECT> and <EMBED> tags.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1831">#1831</a>] Fixed
+ the issue where the placeholder icon for <EMBED> tags does not always show
+ up in IE7.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2049">#2049</a>] Fixed
+ a deleted cursor CSS attribute in the minified CSS inside fck_dialog_common.js.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1806">#1806</a>] In IE,
+ the caret will not any more move to the previous line when selecting a Format style
+ inside an empty paragraph.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1990">#1990</a>] In IE,
+ dialogs using API calls which deals with the selection, like InsertHtml now can
+ be sure the selection will be placed in the correct position.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1997">#1997</a>] With
+ IE, the first character of table captions where being lost on table creation.</li>
+ <li>The selection and cursor position was not being properly handled when creating some
+ elements like forms and tables.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/662">#662</a>] In the
+ Perl sample files, the GetServerPath function will now calculate the path properly.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2208">#2208</a>] Added
+ missing translations in Italian language file.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2096">#2096</a>] Added
+ the codepage to basexml file. Filenames with special chars should now display properly.</li>
+ </ul>
+ <h3>
+ Version 2.6 Beta 1</h3>
+ <p>
+ New Features and Improvements:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/35">#35</a>] <strong>New
+ (and cool!) floating dialog system</strong>, avoiding problems with popup blockers
+ and enhancing the editor usability.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1886">#1886</a>] <strong>
+ Adobe AIR</strong> compatibility.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/123">#123</a>] Full support
+ for <strong>document.domain</strong> with automatic domain detection.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1622">#1622</a>] New <strong>
+ inline CSS cache</strong> feature, making it possible to avoid downloading the CSS
+ files for the editing area and skins. For that, it is enough to set the EditorAreaCSS,
+ SkinEditorCSS and SkinDialogCSS to string values in the format "/absolute/path/for/urls/|<minified
+ CSS styles". All internal CSS links are already using this feature. </li>
+ <li>New language file for <strong>Canadian French</strong>.</li>
+ </ul>
+ <p>
+ Fixed Bugs:</p>
+ <ul>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1643">#1643</a>] Resolved
+ several "strict warning" messages in Firefox when running FCKeditor.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1522">#1522</a>] The ENTER
+ key will now work properly in IE with the cursor at the start of a formatted block.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1503">#1503</a>] It's
+ possible to define in the Styles that a Style (with an empty class) must be shown
+ selected only when no class is present in the current element, and selecting that
+ item will clear the current class (it does apply to any attribute, not only classes).</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/191">#191</a>] The scrollbars
+ are now being properly shown in Firefox Mac when placing FCKeditor inside a hidden
+ div.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/503">#503</a>] Orphaned
+ <li> elements now get properly enclosed in a <ul> on output.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/309">#309</a>] The ENTER
+ key will not any more break <button> elements at the beginning of paragraphs.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1654">#1654</a>] The editor
+ was not loading on a specific unknown situation. The breaking point has been removed.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1707">#1707</a>] The editor
+ no longer hangs when operating on documents imported from Microsoft Word.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1514">#1514</a>] Floating
+ panels attached to a shared toolbar among multiple FCKeditor instances are no longer
+ misplaced when the editing areas are absolutely or relatively positioned.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1715">#1715</a>] The ShowDropDialog
+ is now enforced only when ForcePasteAsPlainText = true.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1336">#1336</a>] Sometimes
+ the autogrow plugin didn't work properly in Firefox.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1728">#1728</a>] External
+ toolbars are now properly sized in Opera.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1782">#1782</a>] Clicking
+ on radio buttons or checkboxes in the editor in IE will no longer cause lockups
+ in IE.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/805">#805</a>] The FCKConfig.Keystrokes
+ commands where executed even if the command itself was disabled.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/982">#982</a>] The button
+ to empty the box in the "Paste from Word" has been removed as it leads to confusion
+ for some users.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1682">#1682</a>] Editing
+ control elements in Firefox, Opera and Safari now works properly.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1613">#1613</a>] The editor
+ was surrounded by a <div> element that wasn't really needed.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/676">#676</a>] If a form
+ control was moved in IE after creating it, then it did lose its name.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/738">#738</a>] It wasn't
+ possible to change the type of an existing button.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1854">#1854</a>] Indentation
+ now works inside table cells.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1717">#1717</a>] The editor
+ was entering on looping on some specific cases when dealing with invalid source
+ markup.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1530">#1530</a>] Pasting
+ text into the "Find what" fields in the Find and Replace dialog would now activate
+ the find and replace buttons.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1828">#1828</a>] The Find/Replace
+ dialog will no longer display wrong starting positions for the match when there
+ are multiple and identical characters preceding the character at the real starting
+ point of the match.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1878">#1878</a>] Fixed
+ a JavaScript error which occurs in the Find/Replace dialog when the user presses
+ "Find" or "Replace" after the "No match found" message has appeared.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1355">#1355</a>] Line
+ breaks and spaces are now conserved when converting to and from the "Formatted"
+ format.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1670">#1670</a>] Improved
+ the background color behind smiley icons and special characters in their corresponding
+ dialogs.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1693">#1693</a>] Custom
+ error messages are now properly displayed in the file browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/970">#970</a>] The text
+ and value fields in the selection box dialog will no longer extend beyond the dialog
+ limits when the user inputs a very long text or value for one of the selection options.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/479">#479</a>] Fixed the
+ issue where pressing Enter in an <o:p> tag in IE does not generate line breaks.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/481">#481</a>] Fixed the
+ issue where the image preview in image dialog sometimes doesn't display after selecting
+ the image from server browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1488">#1488</a>] PHP integration:
+ the FCKeditor class is now more PHP5/6 friendly ("public" keyword is used instead
+ of depreciated "var").</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1815">#1815</a>] PHP integration:
+ removed closing tag: "?>", so no additional whitespace added when files are included.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1906">#1906</a>] PHP file
+ browser: fixed problems with DetectHtml() function when open_basedir was set.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1871">#1871</a>] PHP file
+ browser: permissions applied with the chmod command are now configurable.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1872">#1872</a>] Perl
+ file browser: permissions applied with the chmod command are now configurable.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1873">#1873</a>] Python
+ file browser: permissions applied with the chmod command are now configurable.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1572">#1572</a>] ColdFusion
+ integration: fixed issues with setting the editor height.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1692">#1692</a>] ColdFusion
+ file browser: it is possible now to define TempDirectory to avoid issues with GetTempdirectory()
+ returning an empty string.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1379">#1379</a>] ColdFusion
+ file browser: resolved issues with OnRequestEnd.cfm breaking the file browser.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1509">#1509</a>] InsertHtml()
+ in IE will no longer turn the preceding normal whitespace into &nbsp;.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/958">#958</a>] The AddItem
+ method now has an additional fifth parameter "customData" that will be sent to the
+ Execute method of the command for that menu item, allowing a single command to be
+ used for different menu items..</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1502">#1502</a>] The RemoveFormat
+ command now also removes the attributes from the cleaned text. The list of attributes
+ is configurable with FCKConfig.RemoveAttributes.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1596">#1596</a>] On Safari,
+ dialogs have now right-to-left layout when it runs a RTL language, like Arabic.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1344">#1344</a>] Added
+ warning message on Copy and Cut operation failure on IE due to paste permission
+ settings.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1868">#1868</a>] Links
+ to file browser has been changed to avoid requests containing double dots.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1229">#1229</a>] Converting
+ multiple contiguous paragraphs to Formatted will now be merged into a single <PRE>
+ block.</li>
+ <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/1627">#1627</a>] Samples
+ failed to load from local filesystem in IE7.</li>
+ </ul>
+ <h3>
Version 2.5.1</h3>
<p>
New Features and Improvements:</p>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckcontextmenu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckcontextmenu.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckcontextmenu.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -89,6 +89,9 @@
function FCKContextMenu_Document_OnContextMenu( e )
{
+ if ( FCKConfig.BrowserContextMenu )
+ return true ;
+
var el = e.target ;
while ( el )
@@ -114,6 +117,9 @@
if( !e || e.button != 2 )
return false ;
+ if ( FCKConfig.BrowserContextMenu )
+ return true ;
+
var el = e.target ;
while ( el )
@@ -145,6 +151,9 @@
function FCKContextMenu_Document_OnMouseUp( e )
{
+ if ( FCKConfig.BrowserContextMenu )
+ return true ;
+
var overrideButton = FCKContextMenu_OverrideButton ;
if ( overrideButton )
@@ -164,7 +173,7 @@
function FCKContextMenu_AttachedElement_OnContextMenu( ev, fckContextMenu, el )
{
- if ( fckContextMenu.CtrlDisable && ( ev.ctrlKey || ev.metaKey ) )
+ if ( ( fckContextMenu.CtrlDisable && ( ev.ctrlKey || ev.metaKey ) ) || FCKConfig.BrowserContextMenu )
return true ;
var eTarget = el || this ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdataprocessor.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdataprocessor.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdataprocessor.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -39,6 +39,13 @@
targetNode.appendChild( this.RootNode ) ;
},
+ AppendHtml : function( html )
+ {
+ var eTmpDiv = this.RootNode.ownerDocument.createElement( 'div' ) ;
+ eTmpDiv.innerHTML = html ;
+ FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ;
+ },
+
InsertAfterNode : function( existingNode )
{
FCKDomTools.InsertAfterNode( existingNode, this.RootNode ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdomrange.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -41,7 +41,6 @@
{
// For text nodes, the node itself is the StartNode.
var eStart = innerRange.startContainer ;
- var eEnd = innerRange.endContainer ;
var oElementPath = new FCKElementPath( eStart ) ;
this.StartNode = eStart.nodeType == 3 ? eStart : eStart.childNodes[ innerRange.startOffset ] ;
@@ -49,28 +48,40 @@
this.StartBlock = oElementPath.Block ;
this.StartBlockLimit = oElementPath.BlockLimit ;
- if ( eStart != eEnd )
- oElementPath = new FCKElementPath( eEnd ) ;
-
- // The innerRange.endContainer[ innerRange.endOffset ] is not
- // usually part of the range, but the marker for the range end. So,
- // let's get the previous available node as the real end.
- var eEndNode = eEnd ;
- if ( innerRange.endOffset == 0 )
+ if ( innerRange.collapsed )
{
- while ( eEndNode && !eEndNode.previousSibling )
- eEndNode = eEndNode.parentNode ;
+ this.EndNode = this.StartNode ;
+ this.EndContainer = this.StartContainer ;
+ this.EndBlock = this.StartBlock ;
+ this.EndBlockLimit = this.StartBlockLimit ;
+ }
+ else
+ {
+ var eEnd = innerRange.endContainer ;
- if ( eEndNode )
- eEndNode = eEndNode.previousSibling ;
+ if ( eStart != eEnd )
+ oElementPath = new FCKElementPath( eEnd ) ;
+
+ // The innerRange.endContainer[ innerRange.endOffset ] is not
+ // usually part of the range, but the marker for the range end. So,
+ // let's get the previous available node as the real end.
+ var eEndNode = eEnd ;
+ if ( innerRange.endOffset == 0 )
+ {
+ while ( eEndNode && !eEndNode.previousSibling )
+ eEndNode = eEndNode.parentNode ;
+
+ if ( eEndNode )
+ eEndNode = eEndNode.previousSibling ;
+ }
+ else if ( eEndNode.nodeType == 1 )
+ eEndNode = eEndNode.childNodes[ innerRange.endOffset - 1 ] ;
+
+ this.EndNode = eEndNode ;
+ this.EndContainer = eEnd ;
+ this.EndBlock = oElementPath.Block ;
+ this.EndBlockLimit = oElementPath.BlockLimit ;
}
- else if ( eEndNode.nodeType == 1 )
- eEndNode = eEndNode.childNodes[ innerRange.endOffset - 1 ] ;
-
- this.EndNode = eEndNode ;
- this.EndContainer = eEnd ;
- this.EndBlock = oElementPath.Block ;
- this.EndBlockLimit = oElementPath.BlockLimit ;
}
this._Cache = {} ;
@@ -458,13 +469,13 @@
// Also note that the node that we use for "address base" would change during backtracking.
var addrStart = this._Range.startContainer ;
var addrEnd = this._Range.endContainer ;
- while ( curStart && curStart.nodeType == 3 )
+ while ( curStart && curStart.nodeType == 3 && addrStart.nodeType == 3 )
{
bookmark.Start[0] += curStart.length ;
addrStart = curStart ;
curStart = curStart.previousSibling ;
}
- while ( curEnd && curEnd.nodeType == 3 )
+ while ( curEnd && curEnd.nodeType == 3 && addrEnd.nodeType == 3 )
{
bookmark.End[0] += curEnd.length ;
addrEnd = curEnd ;
@@ -863,6 +874,12 @@
this.ExtractContents().AppendTo( oFixedBlock ) ;
FCKDomTools.TrimNode( oFixedBlock ) ;
+ // If the fixed block is empty (not counting bookmark nodes)
+ // Add a <br /> inside to expand it.
+ if ( FCKDomTools.CheckIsEmptyElement(oFixedBlock, function( element ) { return element.getAttribute('_fck_bookmark') != 'true' ; } )
+ && FCKBrowserInfo.IsGeckoLike )
+ FCKTools.AppendBogusBr( oFixedBlock ) ;
+
// Insert the fixed block into the DOM.
this.InsertNode( oFixedBlock ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdomrange_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdomrange_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrange_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrangeiterator.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckdomrangeiterator.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckdomrangeiterator.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -136,7 +136,7 @@
// The found boundary must be set as the next one at this
// point. (#1717)
if ( nodeName != 'br' )
- this._NextNode = currentNode ;
+ this._NextNode = FCKDomTools.GetNextSourceNode( currentNode, true, null, lastNode ) || currentNode ;
}
closeRange = true ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckeditingarea.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckeditingarea.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckeditingarea.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -96,11 +96,11 @@
var sOverrideError = '<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>' ;
oIFrame.frameBorder = 0 ;
- oIFrame.width = oIFrame.height = '100%' ;
+ oIFrame.style.width = oIFrame.style.height = '100%' ;
if ( FCK_IS_CUSTOM_DOMAIN && FCKBrowserInfo.IsIE )
{
- window._FCKHtmlToLoad = sOverrideError + html ;
+ window._FCKHtmlToLoad = html.replace( /<head>/i, '<head>' + sOverrideError ) ;
oIFrame.src = 'javascript:void( (function(){' +
'document.open() ;' +
'document.domain="' + document.domain + '" ;' +
@@ -132,7 +132,7 @@
var oDoc = this.Window.document ;
oDoc.open() ;
- oDoc.write( sOverrideError + html ) ;
+ oDoc.write( html.replace( /<head>/i, '<head>' + sOverrideError ) ) ;
oDoc.close() ;
}
@@ -150,18 +150,23 @@
if ( oIFrame.readyState && oIFrame.readyState != 'completed' )
{
var editArea = this ;
- ( oIFrame.onreadystatechange = function()
- {
- if ( oIFrame.readyState == 'complete' )
- {
- oIFrame.onreadystatechange = null ;
- editArea.Window._FCKEditingArea = editArea ;
- FCKEditingArea_CompleteStart.call( editArea.Window ) ;
- }
- // It happened that IE changed the state to "complete" after the
- // "if" and before the "onreadystatechange" assignement, making we
- // lost the event call, so we do a manual call just to be sure.
- } )() ;
+
+ // Using a IE alternative for DOMContentLoaded, similar to the
+ // solution proposed at http://javascript.nwbox.com/IEContentLoaded/
+ setTimeout( function()
+ {
+ try
+ {
+ editArea.Window.document.documentElement.doScroll("left") ;
+ }
+ catch(e)
+ {
+ setTimeout( arguments.callee, 0 ) ;
+ return ;
+ }
+ editArea.Window._FCKEditingArea = editArea ;
+ FCKEditingArea_CompleteStart.call( editArea.Window ) ;
+ }, 0 ) ;
}
else
{
@@ -246,6 +251,7 @@
if ( this._BodyHTML )
{
oDoc.body.innerHTML = this._BodyHTML ;
+ oDoc.body.offsetLeft ; // Don't remove, this is a hack to fix Opera 9.50, see #2264.
this._BodyHTML = null ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckelementpath.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckelementpath.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckelementpath.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckenterkey.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckenterkey.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckenterkey.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -43,17 +43,21 @@
oKeystrokeHandler.SetKeystrokes( [
[ 13 , 'Enter' ],
[ SHIFT + 13, 'ShiftEnter' ],
- [ 9 , 'Tab' ],
[ 8 , 'Backspace' ],
- [ CTRL + 8 , 'CtrlBackspace' ],
+ [ CTRL + 8 , 'CtrlBackspace' ],
[ 46 , 'Delete' ]
] ) ;
- if ( tabSpaces > 0 )
+ this.TabText = '' ;
+
+ // Safari by default inserts 4 spaces on TAB, while others make the editor
+ // loose focus. So, we need to handle it here to not include those spaces.
+ if ( tabSpaces > 0 || FCKBrowserInfo.IsSafari )
{
- this.TabText = '' ;
- while ( tabSpaces-- > 0 )
+ while ( tabSpaces-- )
this.TabText += '\xa0' ;
+
+ oKeystrokeHandler.SetKeystrokes( [ 9, 'Tab' ] );
}
oKeystrokeHandler.AttachToElement( targetWindow.document ) ;
@@ -163,6 +167,28 @@
return false ;
}
+ // On IE, it is better for us handle the deletion if the caret is preceeded
+ // by a <br> (#1383).
+ if ( FCKBrowserInfo.IsIE )
+ {
+ var previousElement = FCKDomTools.GetPreviousSourceElement( oRange.StartNode, true ) ;
+
+ if ( previousElement && previousElement.nodeName.toLowerCase() == 'br' )
+ {
+ // Create a range that starts after the <br> and ends at the
+ // current range position.
+ var testRange = oRange.Clone() ;
+ testRange.SetStart( previousElement, 4 ) ;
+
+ // If that range is empty, we can proceed cleaning that <br> manually.
+ if ( testRange.CheckIsEmpty() )
+ {
+ previousElement.parentNode.removeChild( previousElement ) ;
+ return true ;
+ }
+ }
+ }
+
var oStartBlock = oRange.StartBlock ;
var oEndBlock = oRange.EndBlock ;
@@ -504,11 +530,29 @@
oRange.MoveToElementEditStart( bIsStartOfBlock && !bIsEndOfBlock ? eNextBlock : eNewBlock ) ;
}
- if ( FCKBrowserInfo.IsSafari )
- FCKDomTools.ScrollIntoView( eNextBlock || eNewBlock, false ) ;
- else if ( FCKBrowserInfo.IsGeckoLike )
- ( eNextBlock || eNewBlock ).scrollIntoView( false ) ;
+ if ( FCKBrowserInfo.IsGeckoLike )
+ {
+ if ( eNextBlock )
+ {
+ // If we have split the block, adds a temporary span at the
+ // range position and scroll relatively to it.
+ var tmpNode = this.Window.document.createElement( 'span' ) ;
+ // We need some content for Safari.
+ tmpNode.innerHTML = ' ';
+
+ oRange.InsertNode( tmpNode ) ;
+ FCKDomTools.ScrollIntoView( tmpNode, false ) ;
+ oRange.DeleteContents() ;
+ }
+ else
+ {
+ // We may use the above scroll logic for the new block case
+ // too, but it gives some weird result with Opera.
+ FCKDomTools.ScrollIntoView( eNextBlock || eNewBlock, false ) ;
+ }
+ }
+
oRange.Select() ;
}
@@ -590,10 +634,7 @@
eLineBreak.parentNode.insertBefore( dummy, eLineBreak.nextSibling ) ;
- if ( FCKBrowserInfo.IsSafari )
- FCKDomTools.ScrollIntoView( dummy, false ) ;
- else
- dummy.scrollIntoView( false ) ;
+ FCKDomTools.ScrollIntoView( dummy, false ) ;
dummy.parentNode.removeChild( dummy ) ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckevents.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckevents.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckevents.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckhtmliterator.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckhtmliterator.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckhtmliterator.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -71,7 +71,7 @@
} ;
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckicon.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckicon.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckicon.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckiecleanup.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckiecleanup.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckiecleanup.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -43,7 +43,7 @@
function FCKIECleanup_Cleanup()
{
- if ( !this._FCKCleanupObj || !window.FCKUnloadFlag )
+ if ( !this._FCKCleanupObj || ( FCKConfig.MsWebBrowserControlCompat && !window.FCKUnloadFlag ) )
return ;
var aItems = this._FCKCleanupObj.Items ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckimagepreloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckimagepreloader.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckimagepreloader.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckkeystrokehandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckkeystrokehandler.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckkeystrokehandler.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublock.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckmenublock.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublock.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublockpanel.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckmenublockpanel.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenublockpanel.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenuitem.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckmenuitem.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckmenuitem.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckpanel.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckpanel.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckpanel.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -66,11 +66,12 @@
else
{
var oIFrame = this._IFrame = this._Window.document.createElement('iframe') ;
+ FCKTools.ResetStyles( oIFrame );
oIFrame.src = 'javascript:void(0)' ;
oIFrame.allowTransparency = true ;
oIFrame.frameBorder = '0' ;
oIFrame.scrolling = 'no' ;
- oIFrame.width = oIFrame.height = 0 ;
+ oIFrame.style.width = oIFrame.style.height = '0px' ;
FCKDomTools.SetElementStyles( oIFrame,
{
position : 'absolute',
@@ -127,6 +128,60 @@
this._Popup.show( x, y, 0, 0, relElement ) ;
}
+// Workaround for IE7 problem. See #1982
+// Submenus are restricted to the size of its parent, so we increase it as needed.
+// Returns true if the panel has been repositioned
+FCKPanel.prototype.ResizeForSubpanel = function( panel, width, height )
+{
+ if ( !FCKBrowserInfo.IsIE7 )
+ return false ;
+
+ if ( !this._Popup.isOpen )
+ {
+ this.Subpanel = null ;
+ return false ;
+ }
+
+ // If we are resetting the extra space
+ if ( width == 0 && height == 0 )
+ {
+ // Another subpanel is being shown, so we must not shrink back
+ if (this.Subpanel !== panel)
+ return false ;
+
+ // Reset values.
+ // We leave the IncreasedY untouched to avoid vertical movement of the
+ // menu if the submenu is higher than the main menu.
+ this.Subpanel = null ;
+ this.IncreasedX = 0 ;
+ }
+ else
+ {
+ this.Subpanel = panel ;
+ // If the panel has already been increased enough, get out
+ if ( ( this.IncreasedX >= width ) && ( this.IncreasedY >= height ) )
+ return false ;
+
+ this.IncreasedX = Math.max( this.IncreasedX, width ) ;
+ this.IncreasedY = Math.max( this.IncreasedY, height ) ;
+ }
+
+ var x = this.ShowRect.x ;
+ var w = this.IncreasedX ;
+ if ( this.IsRTL )
+ x = x - w ;
+
+ // Horizontally increase as needed (sum of widths).
+ // Vertically, use only the maximum of this menu or the submenu
+ var finalWidth = this.ShowRect.w + w ;
+ var finalHeight = Math.max( this.ShowRect.h, this.IncreasedY ) ;
+ if ( this.ParentPanel )
+ this.ParentPanel.ResizeForSubpanel( this, finalWidth, finalHeight ) ;
+ this._Popup.show( x, this.ShowRect.y, finalWidth, finalHeight, this.RelativeElement ) ;
+
+ return this.IsRTL ;
+}
+
FCKPanel.prototype.Show = function( x, y, relElement, width, height )
{
var iMainWidth ;
@@ -149,6 +204,16 @@
iMainWidth = eMainNode.offsetWidth ;
+ if ( FCKBrowserInfo.IsIE7 )
+ {
+ if (this.ParentPanel && this.ParentPanel.ResizeForSubpanel(this, iMainWidth, eMainNode.offsetHeight) )
+ {
+ // As the parent has moved, allow the browser to update its internal data, so the new position is correct.
+ FCKTools.RunFunction( this.Show, this, [x, y, relElement] ) ;
+ return ;
+ }
+ }
+
if ( this.IsRTL )
{
if ( this.IsContextMenu )
@@ -157,6 +222,15 @@
x = ( x * -1 ) + relElement.offsetWidth - iMainWidth ;
}
+ if ( FCKBrowserInfo.IsIE7 )
+ {
+ // Store the values that will be used by the ResizeForSubpanel function
+ this.ShowRect = {x:x, y:y, w:iMainWidth, h:eMainNode.offsetHeight} ;
+ this.IncreasedX = 0 ;
+ this.IncreasedY = 0 ;
+ this.RelativeElement = relElement ;
+ }
+
// Second call: Show the Popup at the specified location, with the correct size.
this._Popup.show( x, y, iMainWidth, eMainNode.offsetHeight, relElement ) ;
@@ -277,8 +351,8 @@
{
var iWidth = eMainNode.offsetWidth || eMainNode.firstChild.offsetWidth ;
var iHeight = eMainNode.offsetHeight ;
- me._IFrame.width = iWidth ;
- me._IFrame.height = iHeight ;
+ me._IFrame.style.width = iWidth + 'px' ;
+ me._IFrame.style.height = iHeight + 'px' ;
}, 0 ) ;
@@ -303,7 +377,7 @@
// It is better to set the sizes to 0, otherwise Firefox would have
// rendering problems.
- this._IFrame.width = this._IFrame.height = 0 ;
+ this._IFrame.style.width = this._IFrame.style.height = '0px' ;
this._IsOpened = false ;
@@ -372,6 +446,9 @@
window.clearInterval( this._Timer ) ;
this._Timer = null ;
+ if (this._Popup && this.ParentPanel && !forceHide)
+ this.ParentPanel.ResizeForSubpanel(this, 0, 0) ;
+
FCKTools.RunFunction( this.OnHide, this ) ;
}
}
@@ -382,4 +459,5 @@
this._Window = null ;
this.Document = null ;
this.MainNode = null ;
+ this.RelativeElement = null ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckspecialcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckspecialcombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckspecialcombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckstyle.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckstyle.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckstyle.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -221,6 +221,8 @@
if ( FCKDomTools.GetAttributeValue( pathElement, att ) != this.GetFinalAttributeValue( att ) )
continue ;
+ /*jsl:fallthru*/
+
default :
FCKDomTools.RemoveAttribute( pathElement, att ) ;
}
@@ -373,6 +375,8 @@
if ( FCKDomTools.GetAttributeValue( currentNode, att ) != this.GetFinalAttributeValue( att ) )
continue ;
+ /*jsl:fallthru*/
+
default :
FCKDomTools.RemoveAttribute( currentNode, att ) ;
}
@@ -546,6 +550,8 @@
if ( FCKDomTools.GetAttributeValue( innerElement, att ) != this.GetFinalAttributeValue( att ) )
continue ;
+ /*jsl:fallthru*/
+
default :
FCKDomTools.RemoveAttribute( innerElement, att ) ;
}
@@ -781,7 +787,7 @@
{
if ( !isTag )
{
- value = value.replace( /\n/g, '<BR>' ) ;
+ value = value.replace( /\n/g, '<br>' ) ;
value = value.replace( /[ \t]{2,}/g,
function ( match )
{
@@ -802,41 +808,127 @@
// Handle converting from a regular block to a <pre> block.
var innerHTML = block.innerHTML.Trim() ;
- // 1. Delete ANSI whitespaces immediately before and after <BR> because they are not visible.
- // 2. Mark down any <BR /> nodes here so they can be turned into \n in the next step and avoid being compressed.
- innerHTML = innerHTML.replace( /[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi, '<BR />' ) ;
+ // 1. Delete ANSI whitespaces immediately before and after <BR> because
+ // they are not visible.
+ // 2. Mark down any <BR /> nodes here so they can be turned into \n in
+ // the next step and avoid being compressed.
+ innerHTML = innerHTML.replace( /[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi, '<br />' ) ;
- // 3. Compress other ANSI whitespaces since they're only visible as one single space previously.
+ // 3. Compress other ANSI whitespaces since they're only visible as one
+ // single space previously.
// 4. Convert to spaces since is no longer needed in <PRE>.
- // 5. Convert any <BR /> to \n. This must not be done earlier because the \n would then get compressed.
+ // 5. Convert any <BR /> to \n. This must not be done earlier because
+ // the \n would then get compressed.
var htmlIterator = new FCKHtmlIterator( innerHTML ) ;
var results = [] ;
htmlIterator.Each( function( isTag, value )
{
if ( !isTag )
value = value.replace( /([ \t\n\r]+| )/g, ' ' ) ;
- else if ( isTag && value == '<BR />' )
+ else if ( isTag && value == '<br />' )
value = '\n' ;
results.push( value ) ;
} ) ;
- // Assigning innerHTML to <PRE> in IE causes all linebreaks to be reduced to spaces.
- // Assigning outerHTML to <PRE> in IE doesn't work if the <PRE> isn't contained in another node
- // since the node reference is changed after outerHTML assignment.
+ // Assigning innerHTML to <PRE> in IE causes all linebreaks to be
+ // reduced to spaces.
+ // Assigning outerHTML to <PRE> in IE doesn't work if the <PRE> isn't
+ // contained in another node since the node reference is changed after
+ // outerHTML assignment.
// So, we need some hacks to workaround IE bugs here.
if ( FCKBrowserInfo.IsIE )
{
var temp = doc.createElement( 'div' ) ;
temp.appendChild( newBlock ) ;
- newBlock.outerHTML = '<PRE>\n' + results.join( '' ) + '</PRE>' ;
+ newBlock.outerHTML = '<pre>\n' + results.join( '' ) + '</pre>' ;
newBlock = temp.removeChild( temp.firstChild ) ;
}
else
newBlock.innerHTML = results.join( '' ) ;
+
return newBlock ;
},
/**
+ * Merge a <pre> block with a previous <pre> block, if available.
+ */
+ _CheckAndMergePre : function( previousBlock, preBlock )
+ {
+ // Check if the previous block and the current block are next
+ // to each other.
+ if ( previousBlock != FCKDomTools.GetPreviousSourceElement( preBlock, true ) )
+ return ;
+
+ // Merge the previous <pre> block contents into the current <pre>
+ // block.
+ //
+ // Another thing to be careful here is that currentBlock might contain
+ // a '\n' at the beginning, and previousBlock might contain a '\n'
+ // towards the end. These new lines are not normally displayed but they
+ // become visible after merging.
+ var innerHTML = previousBlock.innerHTML.replace( /\n$/, '' ) + '\n\n' +
+ preBlock.innerHTML.replace( /^\n/, '' ) ;
+
+ // Buggy IE normalizes innerHTML from <pre>, breaking whitespaces.
+ if ( FCKBrowserInfo.IsIE )
+ preBlock.outerHTML = '<pre>' + innerHTML + '</pre>' ;
+ else
+ preBlock.innerHTML = innerHTML ;
+
+ // Remove the previous <pre> block.
+ //
+ // The preBlock must not be moved or deleted from the DOM tree. This
+ // guarantees the FCKDomRangeIterator in _ApplyBlockStyle would not
+ // get lost at the next iteration.
+ FCKDomTools.RemoveNode( previousBlock ) ;
+ },
+
+ _CheckAndSplitPre : function( newBlock )
+ {
+ var lastNewBlock ;
+
+ var cursor = newBlock.firstChild ;
+
+ // We are not splitting <br><br> at the beginning of the block, so
+ // we'll start from the second child.
+ cursor = cursor && cursor.nextSibling ;
+
+ while ( cursor )
+ {
+ var next = cursor.nextSibling ;
+
+ // If we have two <BR>s, and they're not at the beginning or the end,
+ // then we'll split up the contents following them into another block.
+ // Stop processing if we are at the last child couple.
+ if ( next && next.nextSibling && cursor.nodeName.IEquals( 'br' ) && next.nodeName.IEquals( 'br' ) )
+ {
+ // Remove the first <br>.
+ FCKDomTools.RemoveNode( cursor ) ;
+
+ // Move to the node after the second <br>.
+ cursor = next.nextSibling ;
+
+ // Remove the second <br>.
+ FCKDomTools.RemoveNode( next ) ;
+
+ // Create the block that will hold the child nodes from now on.
+ lastNewBlock = FCKDomTools.InsertAfterNode( lastNewBlock || newBlock, FCKDomTools.CloneElement( newBlock ) ) ;
+
+ continue ;
+ }
+
+ // If we split it, then start moving the nodes to the new block.
+ if ( lastNewBlock )
+ {
+ cursor = cursor.previousSibling ;
+ FCKDomTools.MoveNode(cursor.nextSibling, lastNewBlock ) ;
+ }
+
+ cursor = cursor.nextSibling ;
+ }
+ },
+
+ /**
* Apply an inline style to a FCKDomRange.
*
* TODO
@@ -856,76 +948,41 @@
var block ;
var doc = range.Window.document ;
+ var previousPreBlock ;
- var preBlocks = [] ;
- var convertedPreBlocks = [] ;
-
while( ( block = iterator.GetNextParagraph() ) ) // Only one =
{
// Create the new node right before the current one.
var newBlock = this.BuildElement( doc ) ;
+ // Check if we are changing from/to <pre>.
+ var newBlockIsPre = newBlock.nodeName.IEquals( 'pre' ) ;
+ var blockIsPre = block.nodeName.IEquals( 'pre' ) ;
+
+ var toPre = newBlockIsPre && !blockIsPre ;
+ var fromPre = !newBlockIsPre && blockIsPre ;
+
// Move everything from the current node to the new one.
- var newBlockIsPre = newBlock.nodeName.IEquals( 'pre' ) ;
- var blockIsPre = block.nodeName.IEquals( 'pre' ) ;
- if ( newBlockIsPre && !blockIsPre )
- {
+ if ( toPre )
newBlock = this._ToPre( doc, block, newBlock ) ;
- preBlocks.push( newBlock ) ;
- }
- else if ( !newBlockIsPre && blockIsPre )
- {
+ else if ( fromPre )
newBlock = this._FromPre( doc, block, newBlock ) ;
- convertedPreBlocks.push( newBlock ) ;
- }
else // Convering from a regular block to another regular block.
FCKDomTools.MoveChildren( block, newBlock ) ;
// Replace the current block.
block.parentNode.insertBefore( newBlock, block ) ;
FCKDomTools.RemoveNode( block ) ;
- }
- // Merge adjacent <PRE> blocks for #1229.
- for ( var i = 0 ; i < preBlocks.length - 1 ; i++ )
- {
- // Check if the next block in HTML equals the next <PRE> block generated.
- if ( FCKDomTools.GetNextSourceElement( preBlocks[i], true, [], [], true ) != preBlocks[i+1] )
- continue ;
-
- // Merge the upper <PRE> block's content into the lower <PRE> block.
- // Remove the upper <PRE> block.
- preBlocks[i+1].innerHTML = preBlocks[i].innerHTML + '\n\n' + preBlocks[i+1].innerHTML ;
- FCKDomTools.RemoveNode( preBlocks[i] ) ;
- }
-
- // Split converted <PRE> blocks for #1229.
- for ( var i = 0 ; i < convertedPreBlocks.length ; i++ )
- {
- var currentBlock = convertedPreBlocks[i] ;
- var lastNewBlock = null ;
- for ( var j = 0 ; j < currentBlock.childNodes.length ; j++ )
+ // Complete other tasks after inserting the node in the DOM.
+ if ( newBlockIsPre )
{
- var cursor = currentBlock.childNodes[j] ;
-
- // If we have two <BR>s, and they're not at the beginning or the end,
- // then we'll split up the contents following them into another block.
- if ( cursor.nodeName.IEquals( 'br' ) && j != 0 && j != currentBlock.childNodes.length - 2
- && cursor.nextSibling && cursor.nextSibling.nodeName.IEquals( 'br' ) )
- {
- FCKDomTools.RemoveNode( cursor.nextSibling ) ;
- FCKDomTools.RemoveNode( cursor ) ;
- j-- ; // restart at current index at next iteration
- lastNewBlock = FCKDomTools.InsertAfterNode( lastNewBlock || currentBlock, doc.createElement( currentBlock.nodeName ) ) ;
- continue ;
- }
-
- if ( lastNewBlock )
- {
- FCKDomTools.MoveNode( cursor, lastNewBlock ) ;
- j-- ; // restart at current index at next iteration
- }
+ if ( previousPreBlock )
+ this._CheckAndMergePre( previousPreBlock, newBlock ) ; // Merge successive <pre> blocks.
+ previousPreBlock = newBlock ;
}
+ else if ( fromPre )
+ this._CheckAndSplitPre( newBlock ) ; // Split <br><br> in successive <pre>s.
}
// Re-select the original range.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbar.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbar.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbar.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbutton.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarbutton.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbutton.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckw3crange.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckw3crange.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckw3crange.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckxml.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckxml_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -32,10 +32,14 @@
oXmlHttp.open( 'GET', urlToCall, false ) ;
oXmlHttp.send( null ) ;
- if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+ if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 || ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 ) )
+ {
oXml = oXmlHttp.responseXML ;
- else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
- oXml = oXmlHttp.responseXML ;
+ // #1426: Fallback if responseXML isn't set for some
+ // reason (e.g. improperly configured web server)
+ if ( !oXml )
+ oXml = (new DOMParser()).parseFromString( oXmlHttp.responseText, 'text/xml' ) ;
+ }
else
oXml = null ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/classes/fckxml_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/classes/fckxml_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -40,14 +40,19 @@
oXmlHttp.send( null ) ;
- if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+ if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 || ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 ) )
+ {
this.DOMDocument = oXmlHttp.responseXML ;
- else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
- {
- this.DOMDocument = FCKTools.CreateXmlObject( 'DOMDocument' ) ;
- this.DOMDocument.async = false ;
- this.DOMDocument.resolveExternals = false ;
- this.DOMDocument.loadXML( oXmlHttp.responseText ) ;
+
+ // #1426: Fallback if responseXML isn't set for some
+ // reason (e.g. improperly configured web server)
+ if ( !this.DOMDocument || this.DOMDocument.firstChild == null )
+ {
+ this.DOMDocument = FCKTools.CreateXmlObject( 'DOMDocument' ) ;
+ this.DOMDocument.async = false ;
+ this.DOMDocument.resolveExternals = false ;
+ this.DOMDocument.loadXML( oXmlHttp.responseText ) ;
+ }
}
else
{
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fck_othercommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fck_othercommands.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fck_othercommands.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -311,6 +311,65 @@
return state ;
}
+var FCKVisitLinkCommand = function()
+{
+ this.Name = 'VisitLink';
+}
+FCKVisitLinkCommand.prototype =
+{
+ GetState : function()
+ {
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return FCK_TRISTATE_DISABLED ;
+ var state = FCK.GetNamedCommandState( 'Unlink' ) ;
+
+ if ( state == FCK_TRISTATE_OFF )
+ {
+ var el = FCKSelection.MoveToAncestorNode( 'A' ) ;
+ if ( !el.href )
+ state = FCK_TRISTATE_DISABLED ;
+ }
+
+ return state ;
+ },
+
+ Execute : function()
+ {
+ var el = FCKSelection.MoveToAncestorNode( 'A' ) ;
+ var url = el.getAttribute( '_fcksavedurl' ) || el.getAttribute( 'href', 2 ) ;
+
+ // Check if it's a full URL.
+ // If not full URL, we'll need to apply the BaseHref setting.
+ if ( ! /:\/\//.test( url ) )
+ {
+ var baseHref = FCKConfig.BaseHref ;
+ var parentWindow = FCK.GetInstanceObject( 'parent' ) ;
+ if ( !baseHref )
+ {
+ baseHref = parentWindow.document.location.href ;
+ baseHref = baseHref.substring( 0, baseHref.lastIndexOf( '/' ) + 1 ) ;
+ }
+
+ if ( /^\//.test( url ) )
+ {
+ try
+ {
+ baseHref = baseHref.match( /^.*:\/\/+[^\/]+/ )[0] ;
+ }
+ catch ( e )
+ {
+ baseHref = parentWindow.document.location.protocol + '://' + parentWindow.parent.document.location.host ;
+ }
+ }
+
+ url = baseHref + url ;
+ }
+
+ if ( !window.open( url, '_blank' ) )
+ alert( FCKLang.VisitLinkBlocked ) ;
+ }
+} ;
+
// FCKSelectAllCommand
var FCKSelectAllCommand = function()
{
@@ -516,3 +575,60 @@
return FCK.GetNamedCommandState( 'Unlink') ;
}
};
+
+var FCKDeleteDivCommand = function()
+{
+}
+FCKDeleteDivCommand.prototype =
+{
+ GetState : function()
+ {
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+ return FCK_TRISTATE_DISABLED ;
+
+ var node = FCKSelection.GetParentElement() ;
+ var path = new FCKElementPath( node ) ;
+ return path.BlockLimit && path.BlockLimit.nodeName.IEquals( 'div' ) ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+ },
+
+ Execute : function()
+ {
+ // Create an undo snapshot before doing anything.
+ FCKUndo.SaveUndoStep() ;
+
+ // Find out the nodes to delete.
+ var nodes = FCKDomTools.GetSelectedDivContainers() ;
+
+ // Remember the current selection position.
+ var range = new FCKDomRange( FCK.EditorWindow ) ;
+ range.MoveToSelection() ;
+ var bookmark = range.CreateBookmark() ;
+
+ // Delete the container DIV node.
+ for ( var i = 0 ; i < nodes.length ; i++)
+ FCKDomTools.RemoveNode( nodes[i], true ) ;
+
+ // Restore selection.
+ range.MoveToBookmark( bookmark ) ;
+ range.Select() ;
+ }
+} ;
+
+// FCKRuleCommand
+var FCKNbsp = function()
+{
+ this.Name = 'Non Breaking Space' ;
+}
+
+FCKNbsp.prototype =
+{
+ Execute : function()
+ {
+ FCK.InsertHtml( ' ' ) ;
+ },
+
+ GetState : function()
+ {
+ return ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_DISABLED : FCK_TRISTATE_OFF ) ;
+ }
+} ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -83,7 +83,6 @@
if ( state == FCK_TRISTATE_OFF )
{
- iterator.EnforceRealBlocks = true ;
var paragraphs = [] ;
while ( ( block = iterator.GetNextParagraph() ) )
paragraphs.push( block ) ;
@@ -109,6 +108,13 @@
block = paragraphs[i] ;
commonParent = FCKDomTools.GetCommonParents( block.parentNode, commonParent ).pop() ;
}
+
+ // The common parent must not be the following tags: table, tbody, tr, ol, ul.
+ while ( commonParent.nodeName.IEquals( 'table', 'tbody', 'tr', 'ol', 'ul' ) )
+ commonParent = commonParent.parentNode ;
+
+ // Reconstruct the block list to be processed such that all resulting blocks
+ // satisfy parentNode == commonParent.
var lastBlock = null ;
while ( paragraphs.length > 0 )
{
@@ -150,6 +156,7 @@
else if ( state == FCK_TRISTATE_ON )
{
var moveOutNodes = [] ;
+ var elementMarkers = {} ;
while ( ( block = iterator.GetNextParagraph() ) )
{
var bqParent = null ;
@@ -165,11 +172,27 @@
block = block.parentNode ;
}
- if ( bqParent && bqChild )
+ // Remember the blocks that were recorded down in the moveOutNodes array
+ // to prevent duplicates.
+ if ( bqParent && bqChild && !bqChild._fckblockquotemoveout )
+ {
moveOutNodes.push( bqChild ) ;
+ FCKDomTools.SetElementMarker( elementMarkers, bqChild, '_fckblockquotemoveout', true ) ;
+ }
}
+ FCKDomTools.ClearAllMarkers( elementMarkers ) ;
var movedNodes = [] ;
+ var processedBlockquoteBlocks = [], elementMarkers = {} ;
+ var noBlockLeft = function( bqBlock )
+ {
+ for ( var i = 0 ; i < bqBlock.childNodes.length ; i++ )
+ {
+ if ( FCKListsLib.BlockElements[ bqBlock.childNodes[i].nodeName.toLowerCase() ] )
+ return false ;
+ }
+ return true ;
+ } ;
while ( moveOutNodes.length > 0 )
{
var node = moveOutNodes.shift() ;
@@ -178,23 +201,31 @@
// If the node is located at the beginning or the end, just take it out without splitting.
// Otherwise, split the blockquote node and move the paragraph in between the two blockquote nodes.
if ( node == node.parentNode.firstChild )
- {
bqBlock.parentNode.insertBefore( bqBlock.removeChild( node ), bqBlock ) ;
- if ( ! bqBlock.firstChild )
- bqBlock.parentNode.removeChild( bqBlock ) ;
- }
else if ( node == node.parentNode.lastChild )
- {
bqBlock.parentNode.insertBefore( bqBlock.removeChild( node ), bqBlock.nextSibling ) ;
- if ( ! bqBlock.firstChild )
- bqBlock.parentNode.removeChild( bqBlock ) ;
- }
else
FCKDomTools.BreakParent( node, node.parentNode, range ) ;
+ // Remember the blockquote node so we can clear it later (if it becomes empty).
+ if ( !bqBlock._fckbqprocessed )
+ {
+ processedBlockquoteBlocks.push( bqBlock ) ;
+ FCKDomTools.SetElementMarker( elementMarkers, bqBlock, '_fckbqprocessed', true );
+ }
+
movedNodes.push( node ) ;
}
+ // Clear blockquote nodes that have become empty.
+ for ( var i = processedBlockquoteBlocks.length - 1 ; i >= 0 ; i-- )
+ {
+ var bqBlock = processedBlockquoteBlocks[i] ;
+ if ( noBlockLeft( bqBlock ) )
+ FCKDomTools.RemoveNode( bqBlock ) ;
+ }
+ FCKDomTools.ClearAllMarkers( elementMarkers ) ;
+
if ( FCKConfig.EnterMode.IEquals( 'br' ) )
{
while ( movedNodes.length )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckfitwindow.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckfitwindow.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckfitwindow.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -37,6 +37,21 @@
var eBodyStyle = eBody.style ;
var eParent ;
+ // Save the current selection and scroll position.
+ var oRange, oEditorScrollPos ;
+ if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+ {
+ oRange = new FCKDomRange( FCK.EditorWindow ) ;
+ oRange.MoveToSelection() ;
+ oEditorScrollPos = FCKTools.GetScrollPosition( FCK.EditorWindow ) ;
+ }
+ else
+ {
+ var eTextarea = FCK.EditingArea.Textarea ;
+ oRange = !FCKBrowserInfo.IsIE && [ eTextarea.selectionStart, eTextarea.selectionEnd ] ;
+ oEditorScrollPos = [ eTextarea.scrollLeft, eTextarea.scrollTop ] ;
+ }
+
// No original style properties known? Go fullscreen.
if ( !this.IsMaximized )
{
@@ -83,6 +98,7 @@
var oViewPaneSize = FCKTools.GetViewPaneSize( eMainWindow ) ;
eEditorFrameStyle.position = "absolute";
+ eEditorFrame.offsetLeft ; // Kludge for Safari 3.1 browser bug, do not remove. See #2066.
eEditorFrameStyle.zIndex = FCKConfig.FloatingPanelsZIndex - 1;
eEditorFrameStyle.left = "0px";
eEditorFrameStyle.top = "0px";
@@ -159,6 +175,23 @@
FCK.EditingArea.MakeEditable() ;
FCK.Focus() ;
+
+ // Restore the selection and scroll position of inside the document.
+ if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+ {
+ oRange.Select() ;
+ FCK.EditorWindow.scrollTo( oEditorScrollPos.X, oEditorScrollPos.Y ) ;
+ }
+ else
+ {
+ if ( !FCKBrowserInfo.IsIE )
+ {
+ eTextarea.selectionStart = oRange[0] ;
+ eTextarea.selectionEnd = oRange[1] ;
+ }
+ eTextarea.scrollLeft = oEditorScrollPos[0] ;
+ eTextarea.scrollTop = oEditorScrollPos[1] ;
+ }
}
FCKFitWindow.prototype.GetState = function()
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckindentcommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckindentcommands.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckindentcommands.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckjustifycommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckjustifycommands.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckjustifycommands.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcklistcommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fcklistcommands.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcklistcommands.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcknamedcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fcknamedcommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcknamedcommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckshowblocks.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckshowblocks.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckshowblocks.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,26 @@
else
body.className += ' FCK__ShowBlocks' ;
+ if ( FCKBrowserInfo.IsIE )
+ {
+ try
+ {
+ FCK.EditorDocument.selection.createRange().select() ;
+ }
+ catch ( e )
+ {}
+ }
+ else
+ {
+ var focus = FCK.EditorWindow.getSelection().focusNode ;
+ if ( focus )
+ {
+ if ( focus.nodeType != 1 )
+ focus = focus.parentNode ;
+ FCKDomTools.ScrollIntoView( focus, false ) ;
+ }
+ }
+
FCK.Events.FireEvent( 'OnSelectionChange' ) ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,12 +25,20 @@
var FCKSpellCheckCommand = function()
{
this.Name = 'SpellCheck' ;
- this.IsEnabled = ( FCKConfig.SpellChecker == 'SpellerPages' ) ;
+ this.IsEnabled = ( FCKConfig.SpellChecker != 'ieSpell' ) ;
}
FCKSpellCheckCommand.prototype.Execute = function()
{
- FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+ switch ( FCKConfig.SpellChecker )
+ {
+ case 'SpellerPages' :
+ FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
+ break;
+
+ case 'WSC' :
+ FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'wsc/w.html', 530, 480 ) ;
+ }
}
FCKSpellCheckCommand.prototype.GetState = function()
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,7 +25,7 @@
var FCKSpellCheckCommand = function()
{
this.Name = 'SpellCheck' ;
- this.IsEnabled = ( FCKConfig.SpellChecker == 'ieSpell' || FCKConfig.SpellChecker == 'SpellerPages' ) ;
+ this.IsEnabled = true ;
}
FCKSpellCheckCommand.prototype.Execute = function()
@@ -39,6 +39,9 @@
case 'SpellerPages' :
FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
break ;
+
+ case 'WSC' :
+ FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'wsc/w.html', 530, 480 ) ;
}
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckstylecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fckstylecommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fckstylecommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktablecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fcktablecommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktablecommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckconstants.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/fckconstants.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckconstants.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckeditorapi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/fckeditorapi.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckeditorapi.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -40,9 +40,9 @@
// objects that aren't really FCKeditor instances.
var sScript =
'window.FCKeditorAPI = {' +
- 'Version : "2.6",' +
- 'VersionBuild : "18638",' +
- 'Instances : new Object(),' +
+ 'Version : "2.6.4.1",' +
+ 'VersionBuild : "23187",' +
+ 'Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},' +
'GetInstance : function( name )' +
'{' +
@@ -60,7 +60,7 @@
'this._FCKOriginalSubmit() ;' +
'},' +
- '_FunctionQueue : {' +
+ '_FunctionQueue : window.FCKeditorAPI && window.FCKeditorAPI._FunctionQueue || {' +
'Functions : new Array(),' +
'IsRunning : false,' +
@@ -115,10 +115,11 @@
{
FCKAdobeAIR.FCKeditorAPI_Evaluate( oParentWindow, sScript ) ;
}
- else if ( FCKBrowserInfo.IsSafari || FCKBrowserInfo.IsGecko19 )
+ else if ( FCKBrowserInfo.IsSafari )
{
- // oParentWindow.eval in Safari and Gran Paradiso executes in the calling window
- // environment, instead of the parent one. The following should make it work.
+ // oParentWindow.eval in Safari executes in the calling window
+ // environment, instead of the parent one. The following should
+ // make it work.
var oParentDocument = oParentWindow.document ;
var eScript = oParentDocument.createElement('script') ;
eScript.appendChild( oParentDocument.createTextNode( sScript ) ) ;
@@ -164,13 +165,15 @@
function FCKeditorAPI_Cleanup()
{
- if ( ! window.FCKUnloadFlag )
+ if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat
+ && !window.FCKUnloadFlag )
return ;
delete FCKeditorAPI.Instances[ FCK.Name ] ;
}
function FCKeditorAPI_ConfirmCleanup()
{
- window.FCKUnloadFlag = true ;
+ if ( window.FCKConfig && FCKConfig.MsWebBrowserControlCompat )
+ window.FCKUnloadFlag = true ;
}
FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ;
FCKTools.AddEventListener( window, 'beforeunload', FCKeditorAPI_ConfirmCleanup) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckjscoreextensions.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/fckjscoreextensions.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckjscoreextensions.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -148,13 +148,6 @@
return this.replace( regExp, replacement ) ;
}
-Array.prototype.AddItem = function( item )
-{
- var i = this.length ;
- this[ i ] = item ;
- return i ;
-}
-
Array.prototype.IndexOf = function( value )
{
for ( var i = 0 ; i < this.length ; i++ )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckscriptloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/fckscriptloader.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/fckscriptloader.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fck.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -198,6 +198,13 @@
// Ignore space only or empty text.
if ( oNewBlock || oNode.nodeValue.Trim().length > 0 )
bMoveNode = true ;
+ break;
+
+ // Comment Node
+ case 8 :
+ if ( oNewBlock )
+ bMoveNode = true ;
+ break;
}
if ( bMoveNode )
@@ -402,6 +409,12 @@
FCK.EditorDocument.detachEvent("onselectionchange", Doc_OnSelectionChange ) ;
}
+ FCKTempBin.Reset() ;
+
+ // Bug #2469: SelectionData.createRange becomes undefined after the editor
+ // iframe is changed by FCK.SetData().
+ FCK.Selection.Release() ;
+
if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
{
// Save the resetIsDirty for later use (async)
@@ -622,7 +635,8 @@
var sHtml ;
- // Update the HTML in the view output to show.
+ // Update the HTML in the view output to show, also update
+ // FCKTempBin for IE to avoid #2263.
if ( bIsWysiwyg )
{
FCKCommands.GetCommand( 'ShowBlocks' ).SaveState() ;
@@ -631,6 +645,9 @@
sHtml = FCK.GetXHTML( FCKConfig.FormatSource ) ;
+ if ( FCKBrowserInfo.IsIE )
+ FCKTempBin.ToHtml() ;
+
if ( sHtml == null )
return false ;
}
@@ -664,9 +681,22 @@
// object that may internally supply this feature.
var range = new FCKDomRange( this.EditorWindow ) ;
+ // Move to the selection and delete it.
+ range.MoveToSelection() ;
+ range.DeleteContents() ;
+
if ( FCKListsLib.BlockElements[ elementName ] != null )
{
- range.SplitBlock() ;
+ if ( range.StartBlock )
+ {
+ if ( range.CheckStartOfBlock() )
+ range.MoveToPosition( range.StartBlock, 3 ) ;
+ else if ( range.CheckEndOfBlock() )
+ range.MoveToPosition( range.StartBlock, 4 ) ;
+ else
+ range.SplitBlock() ;
+ }
+
range.InsertNode( element ) ;
var next = FCKDomTools.GetNextSourceElement( element, false, null, [ 'hr','br','param','img','area','input' ], true ) ;
@@ -687,18 +717,16 @@
else
range.MoveToPosition( element, 4 ) ;
- if ( FCKBrowserInfo.IsGecko )
+ if ( FCKBrowserInfo.IsGeckoLike )
{
if ( next )
- next.scrollIntoView( false ) ;
- element.scrollIntoView( false ) ;
+ FCKDomTools.ScrollIntoView( next, false );
+ FCKDomTools.ScrollIntoView( element, false );
}
}
else
{
- // Delete the current selection and insert the node.
- range.MoveToSelection() ;
- range.DeleteContents() ;
+ // Insert the node.
range.InsertNode( element ) ;
// Move the selection right after the new element.
@@ -887,6 +915,14 @@
if ( FCK.EditorDocument.body.childNodes.length == 1
&& FCK.EditorDocument.body.firstChild == paddingNode )
{
+ /*
+ * Bug #1764: Don't move the selection if the
+ * current selection isn't in the editor
+ * document.
+ */
+ if ( FCKSelection._GetSelectionDocument( FCK.EditorDocument.selection ) != FCK.EditorDocument )
+ return ;
+
var range = FCK.EditorDocument.body.createTextRange() ;
var clearContents = false ;
if ( !paddingNode.childNodes.firstChild )
@@ -909,6 +945,9 @@
FCK.EditorWindow = FCK.EditingArea.Window ;
FCK.EditorDocument = FCK.EditingArea.Document ;
+ if ( FCKBrowserInfo.IsIE )
+ FCKTempBin.ToElements() ;
+
FCK.InitializeBehaviors() ;
// Listen for mousedown and mouseup events for tracking drag and drops.
@@ -1061,6 +1100,28 @@
while ( i < this.Elements.length )
this.Elements[ i++ ] = null ;
this.Elements.length = 0 ;
+ },
+
+ ToHtml : function()
+ {
+ for ( var i = 0 ; i < this.Elements.length ; i++ )
+ {
+ this.Elements[i] = '<div> ' + this.Elements[i].outerHTML + '</div>' ;
+ this.Elements[i].isHtml = true ;
+ }
+ },
+
+ ToElements : function()
+ {
+ var node = FCK.EditorDocument.createElement( 'div' ) ;
+ for ( var i = 0 ; i < this.Elements.length ; i++ )
+ {
+ if ( this.Elements[i].isHtml )
+ {
+ node.innerHTML = this.Elements[i] ;
+ this.Elements[i] = node.firstChild.removeChild( node.firstChild.lastChild ) ;
+ }
+ }
}
} ;
@@ -1173,3 +1234,23 @@
FCK.Events.FireEvent( "OnFocus" ) ;
}
}
+
+/*
+ * #1633 : Protect the editor iframe from external styles.
+ * Notice that we can't use FCKTools.ResetStyles here since FCKTools isn't
+ * loaded yet.
+ */
+(function()
+{
+ var el = window.frameElement ;
+ var width = el.width ;
+ var height = el.height ;
+ if ( /^\d+$/.test( width ) ) width += 'px' ;
+ if ( /^\d+$/.test( height ) ) height += 'px' ;
+ var style = el.style ;
+ style.border = style.padding = style.margin = 0 ;
+ style.backgroundColor = 'transparent';
+ style.backgroundImage = 'none';
+ style.width = width ;
+ style.height = height ;
+})() ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_contextmenu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fck_contextmenu.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_contextmenu.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -128,6 +128,8 @@
return ;
menu.AddSeparator() ;
+ menu.AddItem( 'VisitLink', FCKLang.VisitLink ) ;
+ menu.AddSeparator() ;
if ( bInsideLink )
menu.AddItem( 'Link', FCKLang.EditLink , 34 ) ;
menu.AddItem( 'Unlink' , FCKLang.RemoveLink , 35 ) ;
@@ -292,6 +294,21 @@
menu.AddItem( 'NumberedList', FCKLang.NumberedListProp, 26 ) ;
}
}} ;
+
+ case 'DivContainer':
+ return {
+ AddItems : function( menu, tag, tagName )
+ {
+ var currentBlocks = FCKDomTools.GetSelectedDivContainers() ;
+
+ if ( currentBlocks.length > 0 )
+ {
+ menu.AddSeparator() ;
+ menu.AddItem( 'EditDiv', FCKLang.EditDiv, 75 ) ;
+ menu.AddItem( 'DeleteDiv', FCKLang.DeleteDiv, 76 ) ;
+ }
+ }} ;
+
}
return null ;
}
@@ -320,6 +337,9 @@
function FCK_ContextMenu_OnItemClick( item )
{
- FCK.Focus() ;
+ // IE might work incorrectly if we refocus the editor #798
+ if ( !FCKBrowserInfo.IsIE )
+ FCK.Focus() ;
+
FCKCommands.GetCommand( item.Name ).Execute( item.CustomData ) ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fck_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -104,7 +104,7 @@
// only perform the patched behavior if we're in an <a> tag, or the End key is pressed.
var parentTag = node.parentNode.tagName.toLowerCase() ;
- if ( ! ( parentTag == 'a' || String(node.parentNode.contentEditable) == 'false' ||
+ if ( ! ( parentTag == 'a' || ( !FCKBrowserInfo.IsOpera && String(node.parentNode.contentEditable) == 'false' ) ||
( ! ( FCKListsLib.BlockElements[parentTag] || FCKListsLib.NonEmptyBlockElements[parentTag] )
&& keyCode == 35 ) ) )
return ;
@@ -229,9 +229,8 @@
}
else if ( FCKBrowserInfo.IsSafari )
{
- var cancelHandler = function( evt ){ if ( ! FCK.MouseDownFlag ) evt.returnValue = false ; }
- this.EditorDocument.addEventListener( 'dragenter', cancelHandler, true ) ;
- this.EditorDocument.addEventListener( 'dragover', cancelHandler, true ) ;
+ this.EditorDocument.addEventListener( 'dragover', function ( evt )
+ { if ( !FCK.MouseDownFlag && FCK.Config.ForcePasteAsPlainText ) evt.returnValue = false ; }, true ) ;
this.EditorDocument.addEventListener( 'drop', this._ExecDrop, true ) ;
this.EditorDocument.addEventListener( 'mousedown',
function( ev )
@@ -322,7 +321,12 @@
if ( FCK.Paste() )
FCK.ExecuteNamedCommand( 'Paste', null, true ) ;
}
- catch (e) { FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ; }
+ catch (e) {
+ if ( FCKConfig.ForcePasteAsPlainText )
+ FCK.PasteAsPlainText() ;
+ else
+ FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ;
+ }
break ;
default :
FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
@@ -349,6 +353,9 @@
// selected content if any.
FCK.InsertHtml = function( html )
{
+ var doc = FCK.EditorDocument,
+ range;
+
html = FCKConfig.ProtectedSource.Protect( html ) ;
html = FCK.ProtectEvents( html ) ;
html = FCK.ProtectUrls( html ) ;
@@ -357,12 +364,46 @@
// Save an undo snapshot first.
FCKUndo.SaveUndoStep() ;
- // Insert the HTML code.
- this.EditorDocument.execCommand( 'inserthtml', false, html ) ;
+ if ( FCKBrowserInfo.IsGecko )
+ {
+ html = html.replace( / $/, '$&<span _fcktemp="1"/>' ) ;
+
+ var docFrag = new FCKDocumentFragment( this.EditorDocument ) ;
+ docFrag.AppendHtml( html ) ;
+
+ var lastNode = docFrag.RootNode.lastChild ;
+
+ range = new FCKDomRange( this.EditorWindow ) ;
+ range.MoveToSelection() ;
+ range.DeleteContents() ;
+ range.InsertNode( docFrag.RootNode ) ;
+
+ range.MoveToPosition( lastNode, 4 ) ;
+ }
+ else
+ doc.execCommand( 'inserthtml', false, html ) ;
+
this.Focus() ;
- FCKDocumentProcessor.Process( FCK.EditorDocument ) ;
+ // Save the caret position before calling document processor.
+ if ( !range )
+ {
+ range = new FCKDomRange( this.EditorWindow ) ;
+ range.MoveToSelection() ;
+ }
+ var bookmark = range.CreateBookmark() ;
+ FCKDocumentProcessor.Process( doc ) ;
+
+ // Restore caret position, ignore any errors in case the document
+ // processor removed the bookmark <span>s for some reason.
+ try
+ {
+ range.MoveToBookmark( bookmark ) ;
+ range.Select() ;
+ }
+ catch ( e ) {}
+
// For some strange reason the SaveUndoStep() call doesn't activate the undo button at the first InsertHtml() call.
this.Events.FireEvent( "OnSelectionChange" ) ;
}
@@ -401,6 +442,12 @@
// Creates the array that will be returned. It contains one or more created links (see #220).
var aCreatedLinks = new Array() ;
+ // Only for Safari, a collapsed selection may create a link. All other
+ // browser will have no links created. So, we check it here and return
+ // immediatelly, having the same cross browser behavior.
+ if ( FCKSelection.GetSelection().isCollapsed )
+ return aCreatedLinks ;
+
FCK.ExecuteNamedCommand( 'Unlink', null, false, !!noUndo ) ;
if ( url.length > 0 )
@@ -420,12 +467,6 @@
var oLink = oLinksInteractor.snapshotItem( i ) ;
oLink.href = url ;
- // It may happen that the browser (aka Safari) decides to use the
- // URL as the link content to not leave it empty. In this case,
- // let's reset it.
- if ( sTempUrl == oLink.innerHTML )
- oLink.innerHTML = '' ;
-
aCreatedLinks.push( oLink ) ;
}
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fck_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fck_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -29,11 +29,11 @@
{
if ( !FCK._BehaviorsStyle )
{
- var sBasePath = FCKConfig.FullBasePath ;
+ var sBasePath = FCKConfig.BasePath ;
var sTableBehavior = '' ;
var sStyle ;
- // The behaviors should be pointed using the FullBasePath to avoid security
+ // The behaviors should be pointed using the BasePath to avoid security
// errors when using a different BaseHref.
sStyle = '<style type="text/css" _fcktemp="true">' ;
@@ -136,6 +136,8 @@
this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ;
+ this.EditorDocument.attachEvent("onbeforedeactivate", function(){ FCKSelection.Save() ; } ) ;
+
// Catch cursor selection changes.
this.EditorDocument.attachEvent("onselectionchange", Doc_OnSelectionChange ) ;
@@ -150,6 +152,7 @@
html = FCK.ProtectTags( html ) ;
// FCK.Focus() ;
+ FCKSelection.Restore() ;
FCK.EditorWindow.focus() ;
FCKUndo.SaveUndoStep() ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckbrowserinfo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckbrowserinfo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckbrowserinfo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,7 +28,6 @@
IsIE : /*@cc_on!@*/false,
IsIE7 : /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 7 ),
IsIE6 : /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 6 ),
- IsGecko : s.Contains('gecko/'),
IsSafari : s.Contains(' applewebkit/'), // Read "IsWebKit"
IsOpera : !!window.opera,
IsAIR : s.Contains(' adobeair/'),
@@ -38,11 +37,13 @@
// Completes the browser info with further Gecko information.
(function( browserInfo )
{
+ browserInfo.IsGecko = ( navigator.product == 'Gecko' ) && !browserInfo.IsSafari && !browserInfo.IsOpera ;
browserInfo.IsGeckoLike = ( browserInfo.IsGecko || browserInfo.IsSafari || browserInfo.IsOpera ) ;
if ( browserInfo.IsGecko )
{
- var geckoVersion = s.match( /gecko\/(\d+)/ )[1] ;
+ var geckoMatch = s.match( /rv:(\d+\.\d+)/ ) ;
+ var geckoVersion = geckoMatch && parseFloat( geckoMatch[1] ) ;
// Actually "10" refers to Gecko versions before Firefox 1.5, when
// Gecko 1.8 (build 20051111) has been released.
@@ -51,11 +52,10 @@
// than 20051111, so we must also check for the revision number not to
// be 1.7 (we are assuming that rv < 1.7 will not have build > 20051111).
- // TODO: Future versions may consider the rv number only, but it is
- // still to check that all Gecko based browser present the rv number.
- browserInfo.IsGecko10 = ( ( geckoVersion < 20051111 ) || ( /rv:1\.7/.test(s) ) ) ;
- browserInfo.IsGecko19 = /rv:1\.9/.test(s) ;
+ if ( geckoVersion )
+ {
+ browserInfo.IsGecko10 = ( geckoVersion < 1.8 ) ;
+ browserInfo.IsGecko19 = ( geckoVersion > 1.8 ) ;
+ }
}
- else
- browserInfo.IsGecko10 = false ;
})(FCKBrowserInfo) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcodeformatter.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckcodeformatter.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcodeformatter.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,8 +28,8 @@
var oRegex = this.Regex = new Object() ;
// Regex for line breaks.
- oRegex.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 ;
- oRegex.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 ;
+ oRegex.BlocksOpener = /\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ;
+ oRegex.BlocksCloser = /\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DL|DT|DD|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ;
oRegex.NewLineTags = /\<(BR|HR)[^\>]*\>/gi ;
@@ -38,8 +38,8 @@
oRegex.LineSplitter = /\s*\n+\s*/g ;
// Regex for indentation.
- oRegex.IncreaseIndent = /^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i ;
- oRegex.DecreaseIndent = /^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i ;
+ oRegex.IncreaseIndent = /^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \/\>]/i ;
+ oRegex.DecreaseIndent = /^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \>]/i ;
oRegex.FormatIndentatorRemove = new RegExp( '^' + FCKConfig.FormatIndentator ) ;
oRegex.ProtectedTags = /(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi ;
@@ -47,7 +47,7 @@
FCKCodeFormatter._ProtectData = function( outer, opener, data, closer )
{
- return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ;
+ return opener + '___FCKpd___' + ( FCKCodeFormatter.ProtectedData.push( data ) - 1 ) + closer ;
}
FCKCodeFormatter.Format = function( html )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckcommands.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckcommands.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -51,6 +51,7 @@
case 'Templates' : oCommand = new FCKDialogCommand( 'Templates' , FCKLang.DlgTemplatesTitle , 'dialog/fck_template.html' , 380, 450 ) ; break ;
case 'Link' : oCommand = new FCKDialogCommand( 'Link' , FCKLang.DlgLnkWindowTitle , 'dialog/fck_link.html' , 400, 300 ) ; break ;
case 'Unlink' : oCommand = new FCKUnlinkCommand() ; break ;
+ case 'VisitLink' : oCommand = new FCKVisitLinkCommand() ; break ;
case 'Anchor' : oCommand = new FCKDialogCommand( 'Anchor' , FCKLang.DlgAnchorTitle , 'dialog/fck_anchor.html' , 370, 160 ) ; break ;
case 'AnchorDelete' : oCommand = new FCKAnchorDeleteCommand() ; break ;
case 'BulletedList' : oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp , 'dialog/fck_listprop.html?UL' , 370, 160 ) ; break ;
@@ -79,6 +80,7 @@
case 'NewPage' : oCommand = new FCKNewPageCommand() ; break ;
case 'PageBreak' : oCommand = new FCKPageBreakCommand() ; break ;
case 'Rule' : oCommand = new FCKRuleCommand() ; break ;
+ case 'Nbsp' : oCommand = new FCKNbsp() ; break ;
case 'TextColor' : oCommand = new FCKTextColorCommand('ForeColor') ; break ;
case 'BGColor' : oCommand = new FCKTextColorCommand('BackColor') ; break ;
@@ -94,6 +96,9 @@
case 'Indent' : oCommand = new FCKIndentCommand( 'indent', FCKConfig.IndentLength ) ; break ;
case 'Outdent' : oCommand = new FCKIndentCommand( 'outdent', FCKConfig.IndentLength * -1 ) ; break ;
case 'Blockquote' : oCommand = new FCKBlockQuoteCommand() ; break ;
+ case 'CreateDiv' : oCommand = new FCKDialogCommand( 'CreateDiv', FCKLang.CreateDiv, 'dialog/fck_div.html', 380, 210, null, null, true ) ; break ;
+ case 'EditDiv' : oCommand = new FCKDialogCommand( 'EditDiv', FCKLang.EditDiv, 'dialog/fck_div.html', 380, 210, null, null, false ) ; break ;
+ case 'DeleteDiv' : oCommand = new FCKDeleteDivCommand() ; break ;
case 'TableInsertRowAfter' : oCommand = new FCKTableCommand('TableInsertRowAfter') ; break ;
case 'TableInsertRowBefore' : oCommand = new FCKTableCommand('TableInsertRowBefore') ; break ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckconfig.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckconfig.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckconfig.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -42,14 +42,13 @@
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.BasePath = document.location.protocol + '//' + document.location.host +
+ document.location.pathname.substring( 0, document.location.pathname.lastIndexOf( '/' ) + 1) ;
+FCKConfig.FullBasePath = FCKConfig.BasePath ;
+
FCKConfig.EditorPath = FCKConfig.BasePath.replace( /editor\/$/, '' ) ;
// There is a bug in Gecko. If the editor is hidden on startup, an error is
@@ -155,7 +154,7 @@
FCKConfig.Plugins.Add = function( name, langs, path )
{
- FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ;
+ FCKConfig.Plugins.Items.push( [name, langs, path] ) ;
}
// FCKConfig.ProtectedSource: object that holds a collection of Regular
@@ -181,7 +180,7 @@
FCKConfig.ProtectedSource.Add = function( regexPattern )
{
- this.RegexEntries.AddItem( regexPattern ) ;
+ this.RegexEntries.push( regexPattern ) ;
}
FCKConfig.ProtectedSource.Protect = function( html )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckdebug.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,36 +21,39 @@
* Debug window control and operations.
*/
-var FCKDebug = new Object() ;
+// Public function defined here must be declared in fckdebug_empty.js.
-FCKDebug._GetWindow = function()
+var FCKDebug =
{
- 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 ) ;
+ Output : function( message, color, noParse )
+ {
+ if ( ! FCKConfig.Debug )
+ return ;
- return this.DebugWindow ;
-}
+ try
+ {
+ this._GetWindow().Output( message, color, noParse ) ;
+ }
+ catch ( e ) {} // Ignore errors
+ },
-FCKDebug.Output = function( message, color, noParse )
-{
- if ( ! FCKConfig.Debug )
- return ;
-
- try
+ OutputObject : function( anyObject, color )
{
- this._GetWindow().Output( message, color ) ;
- }
- catch ( e ) {} // Ignore errors
-}
+ if ( ! FCKConfig.Debug )
+ return ;
-FCKDebug.OutputObject = function( anyObject, color )
-{
- if ( ! FCKConfig.Debug )
- return ;
+ try
+ {
+ this._GetWindow().OutputObject( anyObject, color ) ;
+ }
+ catch ( e ) {} // Ignore errors
+ },
- try
+ _GetWindow : function()
{
- this._GetWindow().OutputObject( anyObject, color ) ;
+ 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 ;
}
- catch ( e ) {} // Ignore errors
-}
+} ;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug_empty.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug_empty.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdebug_empty.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,31 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Debug window control and operations (empty for the compressed files - #2043).
+ */
+
+var FCKDebug =
+{
+ Output : function()
+ {},
+
+ OutputObject : function()
+ {}
+} ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdialog.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckdialog.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdialog.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -75,15 +75,6 @@
} ) ;
}
- var resetStyles = function( element )
- {
- element.style.cssText = 'margin:0;' +
- 'padding:0;' +
- 'border:0;' +
- 'background-color:transparent;' +
- 'background-image:none;' ;
- }
-
return {
/**
* Opens a dialog window using the standard dialog template.
@@ -103,17 +94,20 @@
TopWindow : topWindow
}
- FCK.ToolbarSet.CurrentInstance.Selection.Save() ;
+ FCK.ToolbarSet.CurrentInstance.Selection.Save( true ) ;
// Calculate the dialog position, centering it on the screen.
var viewSize = FCKTools.GetViewPaneSize( topWindow ) ;
- var scrollPosition = FCKTools.GetScrollPosition( topWindow ) ;
+ var scrollPosition = { 'X' : 0, 'Y' : 0 } ;
+ var useAbsolutePosition = FCKBrowserInfo.IsIE && ( !FCKBrowserInfo.IsIE7 || !FCKTools.IsStrictMode( topWindow.document ) ) ;
+ if ( useAbsolutePosition )
+ scrollPosition = FCKTools.GetScrollPosition( topWindow ) ;
var iTop = Math.max( scrollPosition.Y + ( viewSize.Height - height - 20 ) / 2, 0 ) ;
var iLeft = Math.max( scrollPosition.X + ( viewSize.Width - width - 20 ) / 2, 0 ) ;
// Setup the IFRAME that will hold the dialog.
var dialog = topDocument.createElement( 'iframe' ) ;
- resetStyles( dialog ) ;
+ FCKTools.ResetStyles( dialog ) ;
dialog.src = FCKConfig.BasePath + 'fckdialog.html' ;
// Dummy URL for testing whether the code in fckdialog.js alone leaks memory.
@@ -123,7 +117,7 @@
dialog.allowTransparency = true ;
FCKDomTools.SetElementStyles( dialog,
{
- 'position' : 'absolute',
+ 'position' : ( useAbsolutePosition ) ? 'absolute' : 'fixed',
'top' : iTop + 'px',
'left' : iLeft + 'px',
'width' : width + 'px',
@@ -179,7 +173,7 @@
{
// Setup the DIV that will be used to cover.
cover = topDocument.createElement( 'div' ) ;
- resetStyles( cover ) ;
+ FCKTools.ResetStyles( cover ) ;
FCKDomTools.SetElementStyles( cover,
{
'position' : 'absolute',
@@ -195,7 +189,7 @@
if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
{
var iframe = topDocument.createElement( 'iframe' ) ;
- resetStyles( iframe ) ;
+ FCKTools.ResetStyles( iframe ) ;
iframe.hideFocus = true ;
iframe.frameBorder = 0 ;
iframe.src = FCKTools.GetVoidUrl() ;
@@ -218,12 +212,23 @@
topDocument.body.appendChild( cover ) ;
FCKFocusManager.Lock() ;
+
+ // Prevent the user from refocusing the disabled
+ // editing window by pressing Tab. (Bug #2065)
+ var el = FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'frameElement' ) ;
+ el._fck_originalTabIndex = el.tabIndex ;
+ el.tabIndex = -1 ;
},
HideMainCover : function()
{
FCKDomTools.RemoveNode( cover ) ;
FCKFocusManager.Unlock() ;
+
+ // Revert the tab index hack. (Bug #2065)
+ var el = FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'frameElement' ) ;
+ el.tabIndex = el._fck_originalTabIndex ;
+ FCKDomTools.ClearElementJSProperty( el, '_fck_originalTabIndex' ) ;
},
GetCover : function()
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdocumentprocessor.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckdocumentprocessor.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdocumentprocessor.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -27,7 +27,7 @@
FCKDocumentProcessor.AppendNew = function()
{
var oNewItem = new Object() ;
- this._Items.AddItem( oNewItem ) ;
+ this._Items.push( oNewItem ) ;
return oNewItem ;
}
@@ -45,7 +45,7 @@
{
var oImg = FCKTools.GetElementDocument( realElement ).createElement( 'IMG' ) ;
oImg.className = fakeClass ;
- oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
+ oImg.src = FCKConfig.BasePath + 'images/spacer.gif' ;
oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( realElement ), 0 ) ;
return oImg ;
@@ -122,7 +122,7 @@
}
// EMBED and OBJECT tags.
-FCKEmbedAndObjectProcessor = (function()
+var FCKEmbedAndObjectProcessor = (function()
{
var customProcessors = [] ;
@@ -142,24 +142,29 @@
el.parentNode.replaceChild( replaceElement, el ) ;
}
+ var processElementsByName = function( elementName, doc )
+ {
+ var aObjects = doc.getElementsByTagName( elementName );
+ for ( var i = aObjects.length - 1 ; i >= 0 ; i-- )
+ processElement( aObjects[i] ) ;
+ }
+
+ var processObjectAndEmbed = function( doc )
+ {
+ processElementsByName( 'object', doc );
+ processElementsByName( 'embed', doc );
+ }
+
return FCKTools.Merge( FCKDocumentProcessor.AppendNew(),
{
ProcessDocument : function( doc )
{
// Firefox 3 would sometimes throw an unknown exception while accessing EMBEDs and OBJECTs
// without the setTimeout().
- FCKTools.RunFunction( function()
- {
- // Process OBJECTs first, since EMBEDs can sometimes go inside OBJECTS (e.g. Flash).
- var aObjects = doc.getElementsByTagName( 'object' );
- for ( var i = aObjects.length - 1 ; i >= 0 ; i-- )
- processElement( aObjects[i] ) ;
-
- // Now process any EMBEDs left.
- var aEmbeds = doc.getElementsByTagName( 'embed' ) ;
- for ( var i = aEmbeds.length - 1 ; i >= 0 ; i-- )
- processElement( aEmbeds[i] ) ;
- } ) ;
+ if ( FCKBrowserInfo.IsGecko )
+ FCKTools.RunFunction( processObjectAndEmbed, this, [ doc ] ) ;
+ else
+ processObjectAndEmbed( doc ) ;
},
RefreshView : function( placeHolder, original )
@@ -247,3 +252,19 @@
fakeImg.className = 'FCK__Flash' ;
fakeImg.setAttribute( '_fckflash', 'true', 0 );
} ) ;
+
+// Buggy <span class="Apple-style-span"> tags added by Safari.
+if ( FCKBrowserInfo.IsSafari )
+{
+ FCKDocumentProcessor.AppendNew().ProcessDocument = function( doc )
+ {
+ var spans = doc.getElementsByClassName ?
+ doc.getElementsByClassName( 'Apple-style-span' ) :
+ Array.prototype.filter.call(
+ doc.getElementsByTagName( 'span' ),
+ function( item ){ return item.className == 'Apple-style-span' ; }
+ ) ;
+ for ( var i = spans.length - 1 ; i >= 0 ; i-- )
+ FCKDomTools.RemoveNode( spans[i], true ) ;
+ }
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdomtools.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckdomtools.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckdomtools.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -696,7 +696,7 @@
SetElementMarker : function ( markerObj, element, attrName, value)
{
- var id = String( parseInt( Math.random() * 0xfffffff, 10 ) ) ;
+ var id = String( parseInt( Math.random() * 0xffffffff, 10 ) ) ;
element._FCKMarkerId = id ;
element[attrName] = value ;
if ( ! markerObj[id] )
@@ -972,8 +972,9 @@
},
/**
- * Current implementation for ScrollIntoView (due to #1462). We don't have
- * a complete implementation here, just the things that fit our needs.
+ * Current implementation for ScrollIntoView (due to #1462 and #2279). We
+ * don't have a complete implementation here, just the things that fit our
+ * needs.
*/
ScrollIntoView : function( element, alignTop )
{
@@ -988,22 +989,21 @@
// Appends the height it we are about to align the bottoms.
if ( alignTop === false )
{
- offset += element.offsetHeight ;
+ offset += element.offsetHeight || 0 ;
// Consider the margin in the scroll, which is ok for our current
// needs, but needs investigation if we will be using this function
// in other places.
- offset += parseInt( this.GetCurrentElementStyle( element, 'marginBottom' ) || 0, 10 ) ;
+ offset += parseInt( this.GetCurrentElementStyle( element, 'marginBottom' ) || 0, 10 ) || 0 ;
}
// Appends the offsets for the entire element hierarchy.
- offset += element.offsetTop ;
- while ( ( element = element.offsetParent ) )
- offset += element.offsetTop || 0 ;
+ var elementPosition = FCKTools.GetDocumentPosition( window, element ) ;
+ offset += elementPosition.y ;
// Scroll the window to the desired position, if not already visible.
var currentScroll = FCKTools.GetScrollPosition( window ).Y ;
- if ( offset > 0 && offset > currentScroll )
+ if ( offset > 0 && ( offset > currentScroll || offset < currentScroll - windowHeight ) )
window.scrollTo( 0, offset ) ;
},
@@ -1020,5 +1020,38 @@
// In the DTD # == text node.
return ( childDTD['#'] && !FCKListsLib.NonEditableElements[ nodeName ] ) ;
+ },
+
+ GetSelectedDivContainers : function()
+ {
+ var currentBlocks = [] ;
+ var range = new FCKDomRange( FCK.EditorWindow ) ;
+ range.MoveToSelection() ;
+
+ var startNode = range.GetTouchedStartNode() ;
+ var endNode = range.GetTouchedEndNode() ;
+ var currentNode = startNode ;
+
+ if ( startNode == endNode )
+ {
+ while ( endNode.nodeType == 1 && endNode.lastChild )
+ endNode = endNode.lastChild ;
+ endNode = FCKDomTools.GetNextSourceNode( endNode ) ;
+ }
+
+ while ( currentNode && currentNode != endNode )
+ {
+ if ( currentNode.nodeType != 3 || !/^[ \t\n]*$/.test( currentNode.nodeValue ) )
+ {
+ var path = new FCKElementPath( currentNode ) ;
+ var blockLimit = path.BlockLimit ;
+ if ( blockLimit && blockLimit.nodeName.IEquals( 'div' ) && currentBlocks.IndexOf( blockLimit ) == -1 )
+ currentBlocks.push( blockLimit ) ;
+ }
+
+ currentNode = FCKDomTools.GetNextSourceNode( currentNode ) ;
+ }
+
+ return currentBlocks ;
}
} ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklanguagemanager.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcklanguagemanager.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklanguagemanager.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -50,10 +50,12 @@
fr : 'French',
'fr-ca' : 'French (Canada)',
gl : 'Galician',
+ gu : 'Gujarati',
he : 'Hebrew',
hi : 'Hindi',
hr : 'Croatian',
hu : 'Hungarian',
+ is : 'Icelandic',
it : 'Italian',
ja : 'Japanese',
km : 'Khmer',
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklisthandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcklisthandler.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklisthandler.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklistslib.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcklistslib.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcklistslib.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckplugins.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckplugins.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckplugins.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckregexlib.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckregexlib.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckregexlib.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -78,6 +78,7 @@
Html4DocType : /HTML 4\.0 Transitional/i ,
DocTypeTag : /<!DOCTYPE[^>]*>/i ,
+HtmlDocType : /DTD HTML/ ,
// These regex are used to save the original event attributes in the HTML.
TagsWithEvent : /<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g ,
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckselection.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckselection_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -75,9 +75,17 @@
var oSel = this.GetSelection() ;
if ( oSel )
{
- // make the common case fast - for collapsed/nearly collapsed selections just return anchor.parent.
+ // if anchorNode == focusNode, see if the selection is text only or including nodes.
+ // if text only, return the parent node.
+ // if the selection includes DOM nodes, then the anchorNode is the nearest container.
if ( oSel.anchorNode && oSel.anchorNode == oSel.focusNode )
- return oSel.anchorNode.parentNode ;
+ {
+ var oRange = oSel.getRangeAt( 0 ) ;
+ if ( oRange.collapsed || oRange.startContainer.nodeType == 3 )
+ return oSel.anchorNode.parentNode ;
+ else
+ return oSel.anchorNode ;
+ }
// looks like we're having a large selection here. To make the behavior same as IE's TextRange.parentElement(),
// we need to find the nearest ancestor node which encapsulates both the beginning and the end of the selection.
@@ -162,7 +170,7 @@
while ( oContainer )
{
- if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ;
+ if ( oContainer.nodeType == 1 && oContainer.nodeName.IEquals( nodeTagName ) ) return true ;
oContainer = oContainer.parentNode ;
}
@@ -180,7 +188,7 @@
while ( oContainer )
{
- if ( oContainer.nodeName == nodeTagName )
+ if ( oContainer.nodeName.IEquals( nodeTagName ) )
return oContainer ;
oContainer = oContainer.parentNode ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckselection_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckselection_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -147,7 +147,7 @@
while ( oContainer )
{
- if ( oContainer.tagName == nodeTagName ) return true ;
+ if ( oContainer.nodeName.IEquals( nodeTagName ) ) return true ;
oContainer = oContainer.parentNode ;
}
@@ -155,6 +155,7 @@
} ;
// The "nodeTagName" parameter must be UPPER CASE.
+// It can be also an array of names
FCKSelection.MoveToAncestorNode = function( nodeTagName )
{
var oNode, oRange ;
@@ -180,7 +181,7 @@
oNode = oRange.parentElement() ;
}
- while ( oNode && oNode.nodeName != nodeTagName )
+ while ( oNode && !oNode.nodeName.Equals( nodeTagName ) )
oNode = oNode.parentNode ;
return oNode ;
@@ -209,22 +210,29 @@
return FCK.EditorDocument.selection ;
}
-FCKSelection.Save = function()
+FCKSelection.Save = function( lock )
{
- // Ensures the editor has the selection focus. (#1801)
- FCK.Focus() ;
-
var editorDocument = FCK.EditorDocument ;
if ( !editorDocument )
return ;
+ // Avoid saving again a selection while a dialog is open #2616
+ if ( this.locked )
+ return ;
+ this.locked = !!lock ;
+
var selection = editorDocument.selection ;
var range ;
if ( selection )
{
- range = selection.createRange() ;
+ // The call might fail if the document doesn't have the focus (#1801),
+ // but we don't want to modify the current selection (#2495) with a call to FCK.Focus() ;
+ try {
+ range = selection.createRange() ;
+ }
+ catch(e) {}
// Ensure that the range comes from the editor document.
if ( range )
@@ -259,8 +267,11 @@
try
{
// Don't repeat the restore process if the editor document is already selected.
- if ( this._GetSelectionDocument( FCK.EditorDocument.selection ) == FCK.EditorDocument )
+ if ( String( this._GetSelectionDocument( FCK.EditorDocument.selection ).body.contentEditable ) == 'true' )
+ {
+ FCK.IsSelectionChangeLocked = false ;
return ;
+ }
this.SelectionData.select() ;
}
catch ( e ) {}
@@ -271,5 +282,6 @@
FCKSelection.Release = function()
{
+ this.locked = false ;
delete this.SelectionData ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckstyles.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckstyles.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckstyles.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktablehandler.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -52,7 +52,7 @@
//queue up the rows -- it's possible ( and likely ) that we may get duplicates
for ( var i = 0; i < aCells.length; i++ )
{
- var oRow = FCKTools.GetElementAscensor( aCells[i],'TR' ) ;
+ var oRow = aCells[i].parentNode ;
aRowsToDelete[oRow.rowIndex] = oRow ;
}
for ( var i = aRowsToDelete.length; i >= 0; i-- )
@@ -118,13 +118,13 @@
var iIndex = oCell.cellIndex ;
- // Loop throw all rows available in the table.
+ // Loop through all rows available in the table.
for ( var i = 0 ; i < oTable.rows.length ; i++ )
{
// Get the row.
var oRow = oTable.rows[i] ;
- // If the row doens't have enough cells, ignore it.
+ // If the row doesn't have enough cells, ignore it.
if ( oRow.cells.length < ( iIndex + 1 ) )
continue ;
@@ -136,12 +136,7 @@
// Get back the currently selected cell.
var oBaseCell = oRow.cells[iIndex] ;
- if ( insertBefore )
- oRow.insertBefore( oCell, oBaseCell ) ;
- else if ( oBaseCell.nextSibling )
- oRow.insertBefore( oCell, oBaseCell.nextSibling ) ;
- else
- oRow.appendChild( oCell ) ;
+ oRow.insertBefore( oCell, ( insertBefore ? oBaseCell : oBaseCell.nextSibling ) ) ;
}
}
@@ -218,7 +213,7 @@
if ( cell.parentNode.cells.length == 1 )
{
// Delete the entire row.
- FCKTableHandler.DeleteRows( FCKTools.GetElementAscensor( cell, 'TR' ) ) ;
+ FCKTableHandler.DeleteRows( cell.parentNode ) ;
return ;
}
@@ -246,10 +241,7 @@
{
for ( var i = 0 ; i < cells.length ; i++ )
{
- if ( FCKBrowserInfo.IsIE )
- cells[i].removeAttribute( label ) ;
- else
- delete cells[i][label] ;
+ FCKDomTools.ClearElementJSProperty(cells[i], label ) ;
}
}
@@ -296,9 +288,16 @@
if ( cells.length < 1 )
return false ;
+ // Check if the selected cells are all in the same table section (thead, tfoot or tbody)
+ for (var i = 0; i < cells.length; i++)
+ {
+ if ( cells[i].parentNode.parentNode != cells[0].parentNode.parentNode )
+ return false ;
+ }
+
this._MarkCells( cells, '_CellSelected' ) ;
- var tableMap = this._CreateTableMap( cells[0].parentNode.parentNode ) ;
+ var tableMap = this._CreateTableMap( cells[0] ) ;
var rowIdx = cells[0].parentNode.rowIndex ;
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, cells[0] ) ;
@@ -357,7 +356,7 @@
// Assume the selected cells are already in a rectangular geometry.
// Because the checking is already done by FCKTableCommand.
var refCell = cells[0] ;
- var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+ var tableMap = this._CreateTableMap( refCell ) ;
var rowIdx = refCell.parentNode.rowIndex ;
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
@@ -385,12 +384,12 @@
}
}
if ( rowChildNodesCount > 0 )
- cellContents.appendChild( FCKTools.GetElementDocument( refCell ).createElement( 'br' ) ) ;
+ cellContents.appendChild( FCK.EditorDocument.createElement( 'br' ) ) ;
}
this._ReplaceCellsByMarker( tableMap, '_SelectedCells', refCell ) ;
this._UnmarkCells( cells, '_SelectedCells' ) ;
- this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+ this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
refCell.appendChild( cellContents ) ;
if ( FCKBrowserInfo.IsGeckoLike && ( ! refCell.firstChild ) )
@@ -416,7 +415,7 @@
refCell.appendChild( cellContents ) ;
this._MarkCells( [nextCell], '_Replace' ) ;
this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
- this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+ this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
this._MoveCaretToCell( refCell, false ) ;
}
@@ -434,11 +433,11 @@
while ( nextCell && nextCell.childNodes && nextCell.childNodes.length > 0 )
cellContents.appendChild( nextCell.removeChild( nextCell.firstChild ) ) ;
if ( cellContents.firstChild )
- cellContents.insertBefore( FCKTools.GetElementDocument( nextCell ).createElement( 'br' ), cellContents.firstChild ) ;
+ cellContents.insertBefore( FCK.EditorDocument.createElement( 'br' ), cellContents.firstChild ) ;
refCell.appendChild( cellContents ) ;
this._MarkCells( [nextCell], '_Replace' ) ;
this._ReplaceCellsByMarker( tableMap, '_Replace', refCell ) ;
- this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+ this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
this._MoveCaretToCell( refCell, false ) ;
}
@@ -450,17 +449,17 @@
return ;
var refCell = cells[0] ;
- var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+ var tableMap = this._CreateTableMap( refCell ) ;
var rowIdx = refCell.parentNode.rowIndex ;
var colIdx = FCKTableHandler._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
var cellSpan = isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ;
if ( cellSpan > 1 )
{
- // Splittng a multi-column cell - original cell gets ceil(colSpan/2) columns,
+ // Splitting a multi-column cell - original cell gets ceil(colSpan/2) columns,
// new cell gets floor(colSpan/2).
var newCellSpan = Math.ceil( cellSpan / 2 ) ;
- var newCell = FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ;
+ var newCell = FCK.EditorDocument.createElement( refCell.nodeName ) ;
if ( FCKBrowserInfo.IsGeckoLike )
FCKTools.AppendBogusBr( newCell ) ;
var startIdx = colIdx + newCellSpan ;
@@ -488,7 +487,7 @@
if ( tableMap[i][colIdx] == refCell )
{
newRow.push( refCell ) ;
- newRow.push( FCKTools.GetElementDocument( refCell ).createElement( 'td' ) ) ;
+ newRow.push( FCK.EditorDocument.createElement( refCell.nodeName ) ) ;
if ( FCKBrowserInfo.IsGeckoLike )
FCKTools.AppendBogusBr( newRow[newRow.length - 1] ) ;
}
@@ -504,7 +503,7 @@
tableMap = newTableMap ;
}
- this._InstallTableMap( tableMap, refCell.parentNode.parentNode ) ;
+ this._InstallTableMap( tableMap, refCell.parentNode.parentNode.parentNode ) ;
}
FCKTableHandler.VerticalSplitCell = function()
@@ -514,10 +513,12 @@
return ;
var currentCell = cells[0] ;
- var tableMap = this._CreateTableMap( currentCell.parentNode.parentNode ) ;
- var cellIndex = FCKTableHandler._GetCellIndexSpan( tableMap, currentCell.parentNode.rowIndex, currentCell ) ;
+ var tableMap = this._CreateTableMap( currentCell ) ;
+ var currentRowIndex = currentCell.parentNode.rowIndex ;
+ var cellIndex = FCKTableHandler._GetCellIndexSpan( tableMap, currentRowIndex, currentCell ) ;
+ // Save current cell colSpan
+ var currentColSpan = isNaN( currentCell.colSpan ) ? 1 : currentCell.colSpan ;
var currentRowSpan = currentCell.rowSpan ;
- var currentRowIndex = currentCell.parentNode.rowIndex ;
if ( isNaN( currentRowSpan ) )
currentRowSpan = 1 ;
@@ -528,29 +529,36 @@
// 2. Find the appropriate place to insert a new cell at the next row.
var newCellRowIndex = currentRowIndex + Math.ceil( currentRowSpan / 2 ) ;
+ var oRow = tableMap[newCellRowIndex] ;
var insertMarker = null ;
- for ( var i = cellIndex+1 ; i < tableMap[newCellRowIndex].length ; i++ )
+ for ( var i = cellIndex+1 ; i < oRow.length ; i++ )
{
- if ( tableMap[newCellRowIndex][i].parentNode.rowIndex == newCellRowIndex )
+ if ( oRow[i].parentNode.rowIndex == newCellRowIndex )
{
- insertMarker = tableMap[newCellRowIndex][i] ;
+ insertMarker = oRow[i] ;
break ;
}
}
- // 3. Insert the new cell to the indicated place, with the appropriate rowSpan, next row.
- var newCell = FCK.EditorDocument.createElement( 'td' ) ;
+ // 3. Insert the new cell to the indicated place, with the appropriate rowSpan and colSpan, next row.
+ var newCell = FCK.EditorDocument.createElement( currentCell.nodeName ) ;
newCell.rowSpan = Math.floor( currentRowSpan / 2 ) ;
+ if ( currentColSpan > 1 )
+ newCell.colSpan = currentColSpan ;
if ( FCKBrowserInfo.IsGeckoLike )
FCKTools.AppendBogusBr( newCell ) ;
- currentCell.parentNode.parentNode.rows[newCellRowIndex].insertBefore( newCell, insertMarker ) ;
+ currentCell.parentNode.parentNode.parentNode.rows[newCellRowIndex].insertBefore( newCell, insertMarker ) ;
}
else
{
// 1. Insert a new row.
- var newCellRowIndex = currentRowIndex + 1 ;
+ var newSectionRowIdx = currentCell.parentNode.sectionRowIndex + 1 ;
var newRow = FCK.EditorDocument.createElement( 'tr' ) ;
- currentCell.parentNode.parentNode.insertBefore( newRow, currentCell.parentNode.parentNode.rows[newCellRowIndex] ) ;
+ var tSection = currentCell.parentNode.parentNode ;
+ if ( tSection.rows.length > newSectionRowIdx )
+ tSection.insertBefore( newRow, tSection.rows[newSectionRowIdx] ) ;
+ else
+ tSection.appendChild( newRow ) ;
// 2. +1 to rowSpan for all cells crossing currentCell's row.
for ( var i = 0 ; i < tableMap[currentRowIndex].length ; )
@@ -570,8 +578,10 @@
i += colSpan ;
}
- // 3. Insert a new cell to new row.
- var newCell = FCK.EditorDocument.createElement( 'td' ) ;
+ // 3. Insert a new cell to new row. Set colSpan on the new cell.
+ var newCell = FCK.EditorDocument.createElement( currentCell.nodeName ) ;
+ if ( currentColSpan > 1 )
+ newCell.colSpan = currentColSpan ;
if ( FCKBrowserInfo.IsGeckoLike )
FCKTools.AppendBogusBr( newCell ) ;
newRow.appendChild( newCell ) ;
@@ -608,29 +618,17 @@
return null ;
}
-// Get the cells available in a column of a TableMap.
-FCKTableHandler._GetColumnCells = function( tableMap, columnIndex )
-{
- var aCollCells = new Array() ;
-
- for ( var r = 0 ; r < tableMap.length ; r++ )
- {
- var oCell = tableMap[r][columnIndex] ;
- if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
- aCollCells[ aCollCells.length ] = oCell ;
- }
-
- return aCollCells ;
-}
-
// This function is quite hard to explain. It creates a matrix representing all cells in a table.
// The difference here is that the "spanned" cells (colSpan and rowSpan) are duplicated on the matrix
// cells that are "spanned". For example, a row with 3 cells where the second cell has colSpan=2 and rowSpan=3
// will produce a bi-dimensional matrix with the following values (representing the cells):
-// Cell1, Cell2, Cell2, Cell 3
-// Cell4, Cell2, Cell2, Cell 5
-FCKTableHandler._CreateTableMap = function( table )
+// Cell1, Cell2, Cell2, Cell3
+// Cell4, Cell2, Cell2, Cell5
+// Cell6, Cell2, Cell2, Cell7
+FCKTableHandler._CreateTableMap = function( refCell )
{
+ var table = (refCell.nodeName == 'TABLE' ? refCell : refCell.parentNode.parentNode.parentNode ) ;
+
var aRows = table.rows ;
// Row and Column counters.
@@ -677,12 +675,10 @@
// This function is the inverse of _CreateTableMap - it takes in a table map and converts it to an HTML table.
FCKTableHandler._InstallTableMap = function( tableMap, table )
{
- // Clear the table of all rows first.
- while ( table.rows.length > 0 )
- {
- var row = table.rows[0] ;
- row.parentNode.removeChild( row ) ;
- }
+ // Workaround for #1917 : MSIE will always report a cell's rowSpan as 1 as long
+ // as the cell is not attached to a row. So we'll need an alternative attribute
+ // for storing the calculated rowSpan in IE.
+ var rowSpanAttr = FCKBrowserInfo.IsIE ? "_fckrowspan" : "rowSpan" ;
// Disconnect all the cells in tableMap from their parents, set all colSpan and rowSpan attributes to 1.
for ( var i = 0 ; i < tableMap.length ; i++ )
@@ -692,7 +688,7 @@
var cell = tableMap[i][j] ;
if ( cell.parentNode )
cell.parentNode.removeChild( cell ) ;
- cell.colSpan = cell.rowSpan = 1 ;
+ cell.colSpan = cell[rowSpanAttr] = 1 ;
}
}
@@ -727,7 +723,7 @@
if ( ! cell || cell._rowScanned === true )
continue ;
if ( tableMap[j-1] && tableMap[j-1][i] == cell )
- cell.rowSpan++ ;
+ cell[rowSpanAttr]++ ;
if ( ! tableMap[j+1] || tableMap[j+1][i] != cell )
cell._rowScanned = true ;
}
@@ -739,23 +735,15 @@
for ( var j = 0 ; j < tableMap[i].length ; j++)
{
var cell = tableMap[i][j] ;
- if ( FCKBrowserInfo.IsIE )
- {
- cell.removeAttribute( '_colScanned' ) ;
- cell.removeAttribute( '_rowScanned' ) ;
- }
- else
- {
- delete cell._colScanned ;
- delete cell._rowScanned ;
- }
+ FCKDomTools.ClearElementJSProperty(cell, '_colScanned' ) ;
+ FCKDomTools.ClearElementJSProperty(cell, '_rowScanned' ) ;
}
}
// Insert physical rows and columns to the table.
for ( var i = 0 ; i < tableMap.length ; i++ )
{
- var rowObj = FCKTools.GetElementDocument( table ).createElement( 'tr' ) ;
+ var rowObj = FCK.EditorDocument.createElement( 'tr' ) ;
for ( var j = 0 ; j < tableMap[i].length ; )
{
var cell = tableMap[i][j] ;
@@ -765,13 +753,26 @@
continue ;
}
rowObj.appendChild( cell ) ;
+ if ( rowSpanAttr != 'rowSpan' )
+ {
+ cell.rowSpan = cell[rowSpanAttr] ;
+ cell.removeAttribute( rowSpanAttr ) ;
+ }
j += cell.colSpan ;
if ( cell.colSpan == 1 )
cell.removeAttribute( 'colspan' ) ;
if ( cell.rowSpan == 1 )
cell.removeAttribute( 'rowspan' ) ;
}
- table.appendChild( rowObj ) ;
+ if ( FCKBrowserInfo.IsIE )
+ {
+ table.rows[i].replaceNode( rowObj ) ;
+ }
+ else
+ {
+ table.rows[i].innerHTML = '' ;
+ FCKDomTools.MoveChildren( rowObj, table.rows[i] ) ;
+ }
}
}
@@ -805,7 +806,7 @@
return null ;
var refCell = cells[0] ;
- var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+ var tableMap = this._CreateTableMap( refCell ) ;
var rowIdx = refCell.parentNode.rowIndex ;
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
var nextColIdx = colIdx + ( isNaN( refCell.colSpan ) ? 1 : refCell.colSpan ) ;
@@ -833,7 +834,7 @@
return null ;
var refCell = cells[0] ;
- var tableMap = this._CreateTableMap( refCell.parentNode.parentNode ) ;
+ var tableMap = this._CreateTableMap( refCell ) ;
var rowIdx = refCell.parentNode.rowIndex ;
var colIdx = this._GetCellIndexSpan( tableMap, rowIdx, refCell ) ;
var newRowIdx = rowIdx + ( isNaN( refCell.rowSpan ) ? 1 : refCell.rowSpan ) ;
@@ -845,6 +846,10 @@
if ( ! nextCell )
return null ;
+ // Check if the selected cells are both in the same table section (thead, tfoot or tbody).
+ if ( refCell.parentNode.parentNode != nextCell.parentNode.parentNode )
+ return null ;
+
// The two cells must have the same horizontal geometry, otherwise merging does not makes sense.
this._MarkCells( [refCell, nextCell], '_SizeTest' ) ;
var refGeometry = this._GetMarkerGeometry( tableMap, rowIdx, colIdx, '_SizeTest' ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktablehandler_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -48,7 +48,7 @@
else
oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
- if ( oCell.tagName.Equals( 'TD', 'TH' ) )
+ if ( oCell.nodeName.Equals( 'TD', 'TH' ) )
aCells[aCells.length] = oCell ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktablehandler_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktablehandler_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,7 +25,7 @@
{
if ( FCKSelection.GetType() == 'Control' )
{
- var td = FCKSelection.MoveToAncestorNode( 'TD' ) ;
+ var td = FCKSelection.MoveToAncestorNode( ['TD', 'TH'] ) ;
return td ? [ td ] : [] ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbaritems.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktoolbaritems.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbaritems.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -71,6 +71,7 @@
case 'Outdent' : oItem = new FCKToolbarButton( 'Outdent' , FCKLang.DecreaseIndent, null, null, false, true, 28 ) ; break ;
case 'Indent' : oItem = new FCKToolbarButton( 'Indent' , FCKLang.IncreaseIndent, null, null, false, true, 29 ) ; break ;
case 'Blockquote' : oItem = new FCKToolbarButton( 'Blockquote' , FCKLang.Blockquote, null, null, false, true, 73 ) ; break ;
+ case 'CreateDiv' : oItem = new FCKToolbarButton( 'CreateDiv' , FCKLang.CreateDiv, null, null, false, true, 74 ) ; break ;
case 'Link' : oItem = new FCKToolbarButton( 'Link' , FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true, 34 ) ; break ;
case 'Unlink' : oItem = new FCKToolbarButton( 'Unlink' , FCKLang.RemoveLink, null, null, false, true, 35 ) ; break ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbarset.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktoolbarset.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktoolbarset.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktools.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -81,7 +81,7 @@
if ( typeof( cssFileOrArrayOrDef ) == 'string' )
{
// Test if the passed argument is an URL.
- if ( /[\\\/\.]\w*$/.test( cssFileOrArrayOrDef ) )
+ if ( /[\\\/\.][^{}]*$/.test( cssFileOrArrayOrDef ) )
{
// The string may have several URLs separated by comma.
return this.AppendStyleSheet( domDocument, cssFileOrArrayOrDef.split(',') ) ;
@@ -126,7 +126,7 @@
if ( typeof( cssFileOrArrayOrDef ) == 'string' )
{
// Test if the passed argument is an URL.
- if ( /[\\\/\.]\w*$/.test( cssFileOrArrayOrDef ) )
+ if ( /[\\\/\.][^{}]*$/.test( cssFileOrArrayOrDef ) )
{
// The string may have several URLs separated by comma.
return this.GetStyleHtml( cssFileOrArrayOrDef.split(','), markTemp ) ;
@@ -738,3 +738,12 @@
return "javascript: void(0);" ; // All other browsers.
}
+
+FCKTools.ResetStyles = function( element )
+{
+ element.style.cssText = 'margin:0;' +
+ 'padding:0;' +
+ 'border:0;' +
+ 'background-color:transparent;' +
+ 'background-image:none;' ;
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktools_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fcktools_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fcktools_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -75,7 +75,8 @@
{
case 'XmlHttp' :
// Try the native XMLHttpRequest introduced with IE7.
- try { return new XMLHttpRequest() ; } catch (e) {}
+ if ( document.location.protocol != 'file:' )
+ try { return new XMLHttpRequest() ; } catch (e) {}
aObjs = [ 'MSXML2.XmlHttp', 'Microsoft.XmlHttp' ] ;
break ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckundo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckundo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckundo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckurlparams.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckurlparams.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckurlparams.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckxhtml.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -70,8 +70,13 @@
// Strip the "XHTML" root node.
sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).Trim() ;
- // Add a space in the tags with no closing tags, like <br/> -> <br />
- sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, ' />');
+ // According to the doctype set the proper end for self-closing tags
+ // HTML: <br>
+ // XHTML: Add a space, like <br/> -> <br />
+ if (FCKConfig.DocType.length > 0 && FCKRegexLib.HtmlDocType.test( FCKConfig.DocType ) )
+ sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, '>');
+ else
+ sXHTML = sXHTML.replace( FCKRegexLib.SpaceNoClose, ' />');
if ( FCKConfig.ForceSimpleAmpersand )
sXHTML = sXHTML.replace( FCKRegexLib.ForceSimpleAmpersand, '&' ) ;
@@ -199,9 +204,16 @@
// Ignore bogus BR nodes in the DOM.
if ( FCKBrowserInfo.IsGecko &&
- htmlNode.nextSibling &&
( htmlNode.hasAttribute('_moz_editor_bogus_node') || htmlNode.getAttribute( 'type' ) == '_moz' ) )
- return false ;
+ {
+ if ( htmlNode.nextSibling )
+ return false ;
+ else
+ {
+ htmlNode.removeAttribute( '_moz_editor_bogus_node' ) ;
+ htmlNode.removeAttribute( 'type' ) ;
+ }
+ }
// This is for elements that are instrumental to FCKeditor and
// must be removed from the final HTML.
@@ -284,7 +296,7 @@
// Append an item to the SpecialBlocks array and returns the tag to be used.
FCKXHtml._AppendSpecialItem = function( item )
{
- return '___FCKsi___' + FCKXHtml.SpecialBlocks.AddItem( item ) ;
+ return '___FCKsi___' + ( FCKXHtml.SpecialBlocks.push( item ) - 1 ) ;
}
FCKXHtml._AppendEntity = function( xmlNode, entity )
@@ -400,6 +412,13 @@
if ( sSavedUrl != null )
FCKXHtml._AppendAttribute( node, 'src', sSavedUrl ) ;
+ // Bug #768 : If the width and height are defined inline CSS,
+ // don't define it again in the HTML attributes.
+ if ( htmlNode.style.width )
+ node.removeAttribute( 'width' ) ;
+ if ( htmlNode.style.height )
+ node.removeAttribute( 'height' ) ;
+
return node ;
},
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckxhtml_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -99,3 +99,16 @@
return node ;
}
}
+
+if ( FCKBrowserInfo.IsGecko )
+{
+ // #2162, some Firefox extensions might add references to internal links
+ FCKXHtml.TagProcessors['link'] = function( node, htmlNode )
+ {
+ if ( htmlNode.href.substr(0, 9).toLowerCase() == 'chrome://' )
+ return false ;
+
+ return node ;
+ }
+
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckxhtml_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtml_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -29,7 +29,8 @@
FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node, nodeName )
{
- var aAttributes = htmlNode.attributes ;
+ var aAttributes = htmlNode.attributes,
+ bHasStyle ;
for ( var n = 0 ; n < aAttributes.length ; n++ )
{
@@ -47,9 +48,9 @@
// attribute. It returns "null" for the nodeValue.
else if ( sAttName == 'style' )
{
- var data = FCKTools.ProtectFormStyles( htmlNode ) ;
- sAttValue = htmlNode.style.cssText.replace( FCKRegexLib.StyleProperties, FCKTools.ToLowerCase ) ;
- FCKTools.RestoreFormStyles( htmlNode, data ) ;
+ // Just mark it to do it later in this function.
+ bHasStyle = true ;
+ continue ;
}
// There are two cases when the oAttribute.nodeValue must be used:
// - for the "class" attribute
@@ -80,6 +81,15 @@
this._AppendAttribute( node, sAttName, sAttValue || oAttribute.nodeValue ) ;
}
}
+
+ // IE loses the style attribute in JavaScript-created elements tags. (#2390)
+ if ( bHasStyle || htmlNode.style.cssText.length > 0 )
+ {
+ var data = FCKTools.ProtectFormStyles( htmlNode ) ;
+ var sStyleValue = htmlNode.style.cssText.replace( FCKRegexLib.StyleProperties, FCKTools.ToLowerCase ) ;
+ FCKTools.RestoreFormStyles( htmlNode, data ) ;
+ this._AppendAttribute( node, 'style', sStyleValue ) ;
+ }
}
// On very rare cases, IE is loosing the "align" attribute for DIV. (right align and apply bulleted list)
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtmlentities.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/_source/internals/fckxhtmlentities.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/_source/internals/fckxhtmlentities.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -150,7 +150,7 @@
'"':'quot',
// '&':'amp', // This entity is automatically handled by the XHTML parser.
// '<':'lt', // This entity is automatically handled by the XHTML parser.
- // '>':'gt', // This entity is automatically handled by the XHTML parser.
+ '>':'gt', // Opera and Safari don't encode it in their implementation
'Ë':'circ',
'Ë':'tilde',
'â':'ensp',
@@ -331,12 +331,15 @@
}
else
{
- FCKXHtmlEntities.Entities = {} ;
+ FCKXHtmlEntities.Entities = {
+ '>':'gt' // Opera and Safari don't encode it in their implementation
+ } ;
+ sChars = '>';
// Even if we are not processing the entities, we must render the
// correctly. As we don't want HTML entities, let's use its numeric
// representation ( ).
- sChars = 'Â ' ;
+ sChars += 'Â ' ;
}
// Create the Regex used to find entities in the text.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_editorarea.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/css/fck_editorarea.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_editorarea.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -26,10 +26,10 @@
* file.
*/
-/*
- The "body" styles should match your editor web site, mainly regarding
- background color and font family and size.
-*/
+/**
+ * The "body" styles should match your editor web site, mainly regarding
+ * background color and font family and size.
+ */
body
{
@@ -50,10 +50,10 @@
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
- paragraphs. Remember to apply the same style in your output front end page.
-*/
+/**
+ * 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.
+ */
/*
p, ul, li
@@ -63,12 +63,30 @@
}
*/
+/**
+ * Uncomment the following block, or only selected lines if appropriate,
+ * if you have some style items that would break the styles combo box.
+ * You can also write other CSS overrides inside the style block below
+ * as needed and they will be applied to inside the style combo only.
+ */
+
/*
- The following are some sample styles used in the "Styles" toolbar command.
- You should instead remove them, and include the styles used by the site
- you are using the editor in.
+.SC_Item *, .SC_ItemSelected *
+{
+ margin: 0px !important;
+ padding: 0px !important;
+ text-indent: 0px !important;
+ clip: auto !important;
+ position: static !important;
+}
*/
+/**
+ * The following are some sample styles used in the "Styles" toolbar command.
+ * You should instead remove them, and include the styles used by the site
+ * you are using the editor in.
+ */
+
.Bold
{
font-weight: bold;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_internal.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/css/fck_internal.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_internal.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_showtableborders_gecko.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/css/fck_showtableborders_gecko.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/css/fck_showtableborders_gecko.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/common/fck_dialog_common.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/common/fck_dialog_common.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/common/fck_dialog_common.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -57,7 +57,7 @@
// Attention: FCKConfig must be available in the page.
function GetCommonDialogCss( prefix )
{
- // CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
+ // CSS minified by http://iceyboard.no-ip.org/projects/css_compressor (see _dev/css_compression.txt).
return FCKConfig.BasePath + 'dialog/common/' + '|.ImagePreviewArea{border:#000 1px solid;overflow:auto;width:100%;height:170px;background-color:#fff}.FlashPreviewArea{border:#000 1px solid;padding:5px;overflow:auto;width:100%;height:170px;background-color:#fff}.BtnReset{float:left;background-position:center center;background-image:url(images/reset.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.BtnLocked,.BtnUnlocked{float:left;background-position:center center;background-image:url(images/locked.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.BtnUnlocked{background-image:url(images/unlocked.gif)}.BtnOver{border:outset 1px;cursor:pointer;cursor:hand}' ;
}
@@ -187,34 +187,7 @@
sOptions += ",left=" + iLeft ;
sOptions += ",top=" + iTop ;
- // 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
- // 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.
- try
- {
- var sTest = oWindow.name ; // Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.
- oWindow.opener = window ;
- }
- catch(e)
- {
- alert( oEditor.FCKLang.BrowseServerBlocked ) ;
- }
- }
- else
- alert( oEditor.FCKLang.BrowseServerBlocked ) ;
- }
- else
- window.open( url, 'FCKBrowseWindow', sOptions ) ;
+ window.open( url, 'FCKBrowseWindow', sOptions ) ;
}
/**
@@ -334,5 +307,41 @@
}
}
// The style:
- oDest.style.cssText = oSource.style.cssText ;
+ if ( oSource.style.cssText !== '' )
+ oDest.style.cssText = oSource.style.cssText ;
}
+
+/**
+* Replaces a tag with another one, keeping its contents:
+* for example TD --> TH, and TH --> TD.
+* input: the original node, and the new tag name
+* http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-renameNode
+*/
+function RenameNode( oNode , newTag )
+{
+ // TODO: if the browser natively supports document.renameNode call it.
+ // does any browser currently support it in order to test?
+
+ // Only rename element nodes.
+ if ( oNode.nodeType != 1 )
+ return null ;
+
+ // If it's already correct exit here.
+ if ( oNode.nodeName == newTag )
+ return oNode ;
+
+ var oDoc = oNode.ownerDocument ;
+ // Create the new node
+ var newNode = oDoc.createElement( newTag ) ;
+
+ // Copy all attributes
+ CopyAttributes( oNode, newNode, {} ) ;
+
+ // Move children to the new node
+ FCKDomTools.MoveChildren( oNode, newNode ) ;
+
+ // Finally replace the node and return the new one
+ oNode.parentNode.replaceChild( newNode, oNode ) ;
+
+ return newNode ;
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_about.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_about.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_about.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -78,8 +78,8 @@
border-left: #000000 1px solid; border-bottom: #000000 1px solid">
<span fcklang="DlgAboutVersion">version</span>
<br />
- <b>2.6</b><br />
- Build 18638</td>
+ <b>2.6.4.1</b><br />
+ Build 23187</td>
</tr>
</table>
</td>
@@ -105,7 +105,7 @@
<span fcklang="DlgAboutInfo">For further information go to</span> <a href="http://www.fckeditor.net/?About"
target="_blank">http://www.fckeditor.net/</a>.
<br />
- Copyright © 2003-2008 <a href="#" onclick="SendEMail();">Frederico Caldeira Knabben</a>
+ Copyright © 2003-2009 <a href="#" onclick="SendEMail();">Frederico Caldeira Knabben</a>
</td>
<td align="center">
<a href="http://www.fckeditor.net/sponsors/apply" target="_blank">Become a Sponsor</a>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_anchor.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_anchor.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_anchor.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -119,10 +119,7 @@
var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ;
if ( aNewAnchors.length == 0 )
- {
- // Nothing was selected, so now just create a normal A
- aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ;
- }
+ aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ;
else
{
// Remove the fake href
@@ -136,7 +133,18 @@
oAnchor = aNewAnchors[i] ;
// Set the name
- oAnchor.name = sNewName ;
+ if ( FCKBrowserInfo.IsIE )
+ {
+ // Setting anchor names directly in IE will trash the HTML code stored
+ // in FCKTempBin after undos. See #2263.
+ var replaceAnchor = oEditor.FCK.EditorDocument.createElement( '<a name="' +
+ FCKTools.HTMLEncode( sNewName ).replace( '"', '"' ) + '">' ) ;
+ oEditor.FCKDomTools.MoveChildren( oAnchor, replaceAnchor ) ;
+ oAnchor.parentNode.replaceChild( replaceAnchor, oAnchor ) ;
+ oAnchor = replaceAnchor ;
+ }
+ else
+ oAnchor.name = sNewName ;
// IE does require special processing to show the Anchor's image
// Opera doesn't allow to select empty anchors
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_button.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_button.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_button.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_checkbox.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_checkbox.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_checkbox.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_colorselector.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_colorselector.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_colorselector.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_div.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_div.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_div.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Form dialog 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 dialog = window.parent ;
+var oEditor = dialog.InnerDialogLoaded() ;
+var FCK = oEditor.FCK ;
+var FCKLang = oEditor.FCKLang ;
+var FCKBrowserInfo = oEditor.FCKBrowserInfo ;
+var FCKStyles = oEditor.FCKStyles ;
+var FCKElementPath = oEditor.FCKElementPath ;
+var FCKDomRange = oEditor.FCKDomRange ;
+var FCKDomTools = oEditor.FCKDomTools ;
+var FCKDomRangeIterator = oEditor.FCKDomRangeIterator ;
+var FCKListsLib = oEditor.FCKListsLib ;
+var AlwaysCreate = dialog.Args().CustomValue ;
+
+String.prototype.IEquals = function()
+{
+ var thisUpper = this.toUpperCase() ;
+
+ var aArgs = arguments ;
+
+ // The arguments could also be a single array.
+ if ( aArgs.length == 1 && aArgs[0].pop )
+ aArgs = aArgs[0] ;
+
+ for ( var i = 0 ; i < aArgs.length ; i++ )
+ {
+ if ( thisUpper == aArgs[i].toUpperCase() )
+ return true ;
+ }
+ return false ;
+}
+
+var CurrentContainers = [] ;
+if ( !AlwaysCreate )
+{
+ dialog.Selection.EnsureSelection() ;
+ CurrentContainers = FCKDomTools.GetSelectedDivContainers() ;
+}
+
+// Add some tabs
+dialog.AddTab( 'General', FCKLang.DlgDivGeneralTab );
+dialog.AddTab( 'Advanced', FCKLang.DlgDivAdvancedTab ) ;
+
+function AddStyleOption( styleName )
+{
+ var el = GetE( 'selStyle' ) ;
+ var opt = document.createElement( 'option' ) ;
+ opt.text = opt.value = styleName ;
+
+ if ( FCKBrowserInfo.IsIE )
+ el.add( opt ) ;
+ else
+ el.add( opt, null ) ;
+}
+
+function OnDialogTabChange( tabCode )
+{
+ ShowE( 'divGeneral', tabCode == 'General' ) ;
+ ShowE( 'divAdvanced', tabCode == 'Advanced' ) ;
+ dialog.SetAutoSize( true ) ;
+}
+
+function GetNearestAncestorDirection( node )
+{
+ var dir = 'ltr' ; // HTML default.
+ while ( ( node = node.parentNode ) )
+ {
+ if ( node.dir )
+ dir = node.dir ;
+ }
+ return dir ;
+}
+
+window.onload = function()
+{
+ // First of all, translate the dialog box texts
+ oEditor.FCKLanguageManager.TranslatePage(document) ;
+
+ dialog.SetOkButton( true ) ;
+ dialog.SetAutoSize( true ) ;
+
+ // Popuplate the style menu
+ var styles = FCKStyles.GetStyles() ;
+ var selectableStyles = {} ;
+ for ( var i in styles )
+ {
+ if ( ! /^_FCK_/.test( i ) && styles[i].Element == 'div' )
+ selectableStyles[i] = styles[i] ;
+ }
+ if ( CurrentContainers.length <= 1 )
+ {
+ var target = CurrentContainers[0] ;
+ var match = null ;
+ for ( var i in selectableStyles )
+ {
+ if ( target && styles[i].CheckElementRemovable( target, true ) )
+ match = i ;
+ }
+ if ( !match )
+ AddStyleOption( "" ) ;
+ for ( var i in selectableStyles )
+ AddStyleOption( i ) ;
+ if ( match )
+ GetE( 'selStyle' ).value = match ;
+
+ // Set the value for other inputs
+ if ( target )
+ {
+ GetE( 'txtClass' ).value = target.className ;
+ GetE( 'txtId' ).value = target.id ;
+ GetE( 'txtLang' ).value = target.lang ;
+ GetE( 'txtInlineStyle').value = target.style.cssText ;
+ GetE( 'txtTitle' ).value = target.title ;
+ GetE( 'selLangDir').value = target.dir || GetNearestAncestorDirection( target ) ;
+ }
+ }
+ else
+ {
+ GetE( 'txtId' ).disabled = true ;
+ AddStyleOption( "" ) ;
+ for ( var i in selectableStyles )
+ AddStyleOption( i ) ;
+ }
+}
+
+function CreateDiv()
+{
+ var newBlocks = [] ;
+ var range = new FCKDomRange( FCK.EditorWindow ) ;
+ range.MoveToSelection() ;
+
+ var bookmark = range.CreateBookmark() ;
+
+ // Kludge for #1592: if the bookmark nodes are in the beginning of
+ // $tagName, then move them to the nearest block element in the
+ // $tagName.
+ if ( FCKBrowserInfo.IsIE )
+ {
+ var bStart = range.GetBookmarkNode( bookmark, true ) ;
+ var bEnd = range.GetBookmarkNode( bookmark, false ) ;
+
+ var cursor ;
+
+ if ( bStart
+ && bStart.parentNode.nodeName.IEquals( 'div' )
+ && !bStart.previousSibling )
+ {
+ cursor = bStart ;
+ while ( ( cursor = cursor.nextSibling ) )
+ {
+ if ( FCKListsLib.BlockElements[ cursor.nodeName.toLowerCase() ] )
+ FCKDomTools.MoveNode( bStart, cursor, true ) ;
+ }
+ }
+
+ if ( bEnd
+ && bEnd.parentNode.nodeName.IEquals( 'div' )
+ && !bEnd.previousSibling )
+ {
+ cursor = bEnd ;
+ while ( ( cursor = cursor.nextSibling ) )
+ {
+ if ( FCKListsLib.BlockElements[ cursor.nodeName.toLowerCase() ] )
+ {
+ if ( cursor.firstChild == bStart )
+ FCKDomTools.InsertAfterNode( bStart, bEnd ) ;
+ else
+ FCKDomTools.MoveNode( bEnd, cursor, true ) ;
+ }
+ }
+ }
+ }
+
+ var iterator = new FCKDomRangeIterator( range ) ;
+ var block ;
+
+ var paragraphs = [] ;
+ while ( ( block = iterator.GetNextParagraph() ) )
+ paragraphs.push( block ) ;
+
+ // Make sure all paragraphs have the same parent.
+ var commonParent = paragraphs[0].parentNode ;
+ var tmp = [] ;
+ for ( var i = 0 ; i < paragraphs.length ; i++ )
+ {
+ block = paragraphs[i] ;
+ commonParent = FCKDomTools.GetCommonParents( block.parentNode, commonParent ).pop() ;
+ }
+
+ // The common parent must not be the following tags: table, tbody, tr, ol, ul.
+ while ( commonParent.nodeName.IEquals( 'table', 'tbody', 'tr', 'ol', 'ul' ) )
+ commonParent = commonParent.parentNode ;
+
+ // Reconstruct the block list to be processed such that all resulting blocks
+ // satisfy parentNode == commonParent.
+ var lastBlock = null ;
+ while ( paragraphs.length > 0 )
+ {
+ block = paragraphs.shift() ;
+ while ( block.parentNode != commonParent )
+ block = block.parentNode ;
+ if ( block != lastBlock )
+ tmp.push( block ) ;
+ lastBlock = block ;
+ }
+ paragraphs = tmp ;
+
+ // Split the paragraphs into groups depending on their BlockLimit element.
+ var groups = [] ;
+ var lastBlockLimit = null ;
+ for ( var i = 0 ; i < paragraphs.length ; i++ )
+ {
+ block = paragraphs[i] ;
+ var elementPath = new FCKElementPath( block ) ;
+ if ( elementPath.BlockLimit != lastBlockLimit )
+ {
+ groups.push( [] ) ;
+ lastBlockLimit = elementPath.BlockLimit ;
+ }
+ groups[groups.length - 1].push( block ) ;
+ }
+
+ // Create a DIV container for each group.
+ for ( var i = 0 ; i < groups.length ; i++ )
+ {
+ var divNode = FCK.EditorDocument.createElement( 'div' ) ;
+ groups[i][0].parentNode.insertBefore( divNode, groups[i][0] ) ;
+ for ( var j = 0 ; j < groups[i].length ; j++ )
+ FCKDomTools.MoveNode( groups[i][j], divNode ) ;
+ newBlocks.push( divNode ) ;
+ }
+
+ range.MoveToBookmark( bookmark ) ;
+ range.Select() ;
+
+ FCK.Focus() ;
+ FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+
+ return newBlocks ;
+}
+
+function Ok()
+{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
+ if ( CurrentContainers.length < 1 )
+ CurrentContainers = CreateDiv();
+
+ var setValue = function( attrName, inputName )
+ {
+ var val = GetE( inputName ).value ;
+ for ( var i = 0 ; i < CurrentContainers.length ; i++ )
+ {
+ if ( val == '' )
+ CurrentContainers[i].removeAttribute( attrName ) ;
+ else
+ CurrentContainers[i].setAttribute( attrName, val ) ;
+ }
+ }
+
+ // Apply modifications to the DIV container according to dialog inputs.
+ if ( CurrentContainers.length == 1 )
+ {
+ setValue( 'class', 'txtClass' ) ;
+ setValue( 'id', 'txtId' ) ;
+ }
+ setValue( 'lang', 'txtLang' ) ;
+ if ( FCKBrowserInfo.IsIE )
+ {
+ for ( var i = 0 ; i < CurrentContainers.length ; i++ )
+ CurrentContainers[i].style.cssText = GetE( 'txtInlineStyle' ).value ;
+ }
+ else
+ setValue( 'style', 'txtInlineStyle' ) ;
+ setValue( 'title', 'txtTitle' ) ;
+ for ( var i = 0 ; i < CurrentContainers.length ; i++ )
+ {
+ var dir = GetE( 'selLangDir' ).value ;
+ var styleName = GetE( 'selStyle' ).value ;
+ if ( GetNearestAncestorDirection( CurrentContainers[i] ) != dir )
+ CurrentContainers[i].dir = dir ;
+ else
+ CurrentContainers[i].removeAttribute( 'dir' ) ;
+
+ if ( styleName )
+ FCKStyles.GetStyle( styleName ).ApplyToObject( CurrentContainers[i] ) ;
+ }
+
+ return true ;
+}
+
+ </script>
+</head>
+<body style="overflow: hidden">
+ <div id="divGeneral">
+ <table cellspacing="0" cellpadding="0" width="100%" border="0">
+ <colgroup span="2">
+ <col width="49%" />
+ <col width="2%" />
+ <col width="49%" />
+ </colgroup>
+ <tr>
+ <td>
+ <span fcklang="DlgDivStyle">Style</span><br />
+ <select id="selStyle" style="width: 100%;">
+ </select>
+ </td>
+ <td> </td>
+ <td>
+ <span fcklang="DlgGenClass">Stylesheet Classes</span><br />
+ <input id="txtClass" style="width: 100%" type="text" />
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div id="divAdvanced" style="display: none">
+ <table cellspacing="0" cellpadding="0" width="100%" border="0">
+ <colgroup span="2">
+ <col width="49%" />
+ <col width="2%" />
+ <col width="49%" />
+ </colgroup>
+ <tr>
+ <td>
+ <span fcklang="DlgGenId">Id</span><br />
+ <input style="width: 100%" type="text" id="txtId" />
+ </td>
+ <td> </td>
+ <td>
+ <span fcklang="DlgGenLangCode">Language Code</span><br />
+ <input style="width: 100%" type="text" id="txtLang" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3"> </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <span fcklang="DlgDivInlineStyle">Inline Style</span><br />
+ <input style="width: 100%" type="text" id="txtInlineStyle" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3"> </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <span fcklang="DlgGenTitle">Advisory Title</span><br />
+ <input style="width: 100%" type="text" id="txtTitle" />
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>
+ <span fcklang="DlgGenLangDir">Language Direction</span><br />
+ <select id="selLangDir">
+ <option fcklang="DlgGenLangDirLtr" value="ltr">Left to Right (LTR)
+ <option fcklang="DlgGenLangDirRtl" value="rtl">Right to Left (RTL)
+ </select>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_docprops.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_docprops.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -456,7 +456,7 @@
<tr>
<td nowrap="nowrap">
<span fcklang="DlgDocDocType">Document Type Heading</span><br />
- <select id="selDocType" name="selDocType" onchange="CheckOther( this, 'txtDocType' );">
+ <select id="selDocType" onchange="CheckOther( this, 'txtDocType' );">
<option value="" selected="selected"></option>
<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'>HTML
4.01 Transitional</option>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_flash/fck_flash.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -236,6 +236,10 @@
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
+ // Remove animation
+ window.parent.Throbber.Hide() ;
+ GetE( 'divUpload' ).style.display = '' ;
+
switch ( errorNumber )
{
case 0 : // No errors
@@ -288,5 +292,9 @@
return false ;
}
+ // Show animation
+ window.parent.Throbber.Show( 100 ) ;
+ GetE( 'divUpload' ).style.display = 'none' ;
+
return true ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_flash.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_flash.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -97,8 +97,7 @@
<br />
<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
<script type="text/javascript">
- // XXX Edited for zope.html to escape templater
- document.write( '<iframe name="UploadWindow" style="DISPLAY: none" src="' + FCKTools.GetVoidUrl() + '"><' + '/iframe>' ) ;
+ document.write( '<iframe name="UploadWindow" style="DISPLAY: none" src="' + FCKTools.GetVoidUrl() + '"><\/iframe>' ) ;
</script>
</form>
</div>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_form.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_form.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_form.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_hiddenfield.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_hiddenfield.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_hiddenfield.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_image/fck_image.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -447,6 +447,10 @@
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
+ // Remove animation
+ window.parent.Throbber.Hide() ;
+ GetE( 'divUpload' ).style.display = '' ;
+
switch ( errorNumber )
{
case 0 : // No errors
@@ -500,5 +504,9 @@
return false ;
}
+ // Show animation
+ window.parent.Throbber.Show( 100 ) ;
+ GetE( 'divUpload' ).style.display = 'none' ;
+
return true ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_image/fck_image_preview.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image/fck_image_preview.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -34,9 +34,9 @@
var FCKTools = window.parent.FCKTools ;
var FCKConfig = window.parent.FCKConfig ;
-// Sets the Skin CSS
-document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
-document.write( FCKTools.GetStyleHtml( GetCommonDialogCss( '../' ) ) ) ;
+// Set the preview CSS
+document.write( FCKTools.GetStyleHtml( FCKConfig.EditorAreaCSS ) ) ;
+document.write( FCKTools.GetStyleHtml( FCKConfig.EditorAreaStyles ) ) ;
if ( window.parent.FCKConfig.BaseHref.length > 0 )
document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
@@ -50,7 +50,7 @@
</script>
</head>
-<body style="color: #000000; background-color: #ffffff">
+<body>
<div>
<a id="lnkPreview" onclick="return false;" style="cursor: default">
<img id="imgPreview" onload="window.parent.UpdateOriginal();"
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_image.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_image.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -165,8 +165,7 @@
<br />
<input id="btnUpload" type="submit" value="Send it to the Server" fcklang="DlgLnkBtnUpload" />
<script type="text/javascript">
- // XXX Edited for zope.html to escape templater
- document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"><' + '/iframe>' ) ;
+ document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"><\/iframe>' ) ;
</script>
</form>
</div>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_link/fck_link.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link/fck_link.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -77,36 +77,187 @@
var oParser = new Object() ;
-oParser.ParseEMailUrl = function( emailUrl )
+// This method simply returns the two inputs in numerical order. You can even
+// provide strings, as the method would parseInt() the values.
+oParser.SortNumerical = function(a, b)
{
+ return parseInt( a, 10 ) - parseInt( b, 10 ) ;
+}
+
+oParser.ParseEMailParams = function(sParams)
+{
+ // Initialize the oEMailParams object.
+ var oEMailParams = new Object() ;
+ oEMailParams.Subject = '' ;
+ oEMailParams.Body = '' ;
+
+ var aMatch = sParams.match( /(^|^\?|&)subject=([^&]+)/i ) ;
+ if ( aMatch ) oEMailParams.Subject = decodeURIComponent( aMatch[2] ) ;
+
+ aMatch = sParams.match( /(^|^\?|&)body=([^&]+)/i ) ;
+ if ( aMatch ) oEMailParams.Body = decodeURIComponent( aMatch[2] ) ;
+
+ return oEMailParams ;
+}
+
+// This method returns either an object containing the email info, or FALSE
+// if the parameter is not an email link.
+oParser.ParseEMailUri = function( sUrl )
+{
// Initializes the EMailInfo object.
var oEMailInfo = new Object() ;
- oEMailInfo.Address = '' ;
- oEMailInfo.Subject = '' ;
- oEMailInfo.Body = '' ;
+ oEMailInfo.Address = '' ;
+ oEMailInfo.Subject = '' ;
+ oEMailInfo.Body = '' ;
- var oParts = emailUrl.match( /^([^\?]+)\??(.+)?/ ) ;
- if ( oParts )
+ var aLinkInfo = sUrl.match( /^(\w+):(.*)$/ ) ;
+ if ( aLinkInfo && aLinkInfo[1] == 'mailto' )
{
- // Set the e-mail address.
- oEMailInfo.Address = oParts[1] ;
+ // This seems to be an unprotected email link.
+ var aParts = aLinkInfo[2].match( /^([^\?]+)\??(.+)?/ ) ;
+ if ( aParts )
+ {
+ // Set the e-mail address.
+ oEMailInfo.Address = aParts[1] ;
- // Look for the optional e-mail parameters.
- if ( oParts[2] )
+ // Look for the optional e-mail parameters.
+ if ( aParts[2] )
+ {
+ var oEMailParams = oParser.ParseEMailParams( aParts[2] ) ;
+ oEMailInfo.Subject = oEMailParams.Subject ;
+ oEMailInfo.Body = oEMailParams.Body ;
+ }
+ }
+ return oEMailInfo ;
+ }
+ else if ( aLinkInfo && aLinkInfo[1] == 'javascript' )
+ {
+ // This may be a protected email.
+
+ // Try to match the url against the EMailProtectionFunction.
+ var func = FCKConfig.EMailProtectionFunction ;
+ if ( func != null )
{
- var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;
- if ( oMatch ) oEMailInfo.Subject = decodeURIComponent( oMatch[2] ) ;
+ try
+ {
+ // Escape special chars.
+ func = func.replace( /([\/^$*+.?()\[\]])/g, '\\$1' ) ;
- oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;
- if ( oMatch ) oEMailInfo.Body = decodeURIComponent( oMatch[2] ) ;
+ // Define the possible keys.
+ var keys = new Array('NAME', 'DOMAIN', 'SUBJECT', 'BODY') ;
+
+ // Get the order of the keys (hold them in the array <pos>) and
+ // the function replaced by regular expression patterns.
+ var sFunc = func ;
+ var pos = new Array() ;
+ for ( var i = 0 ; i < keys.length ; i ++ )
+ {
+ var rexp = new RegExp( keys[i] ) ;
+ var p = func.search( rexp ) ;
+ if ( p >= 0 )
+ {
+ sFunc = sFunc.replace( rexp, '\'([^\']*)\'' ) ;
+ pos[pos.length] = p + ':' + keys[i] ;
+ }
+ }
+
+ // Sort the available keys.
+ pos.sort( oParser.SortNumerical ) ;
+
+ // Replace the excaped single quotes in the url, such they do
+ // not affect the regexp afterwards.
+ aLinkInfo[2] = aLinkInfo[2].replace( /\\'/g, '###SINGLE_QUOTE###' ) ;
+
+ // Create the regexp and execute it.
+ var rFunc = new RegExp( '^' + sFunc + '$' ) ;
+ var aMatch = rFunc.exec( aLinkInfo[2] ) ;
+ if ( aMatch )
+ {
+ var aInfo = new Array();
+ for ( var i = 1 ; i < aMatch.length ; i ++ )
+ {
+ var k = pos[i-1].match(/^\d+:(.+)$/) ;
+ aInfo[k[1]] = aMatch[i].replace(/###SINGLE_QUOTE###/g, '\'') ;
+ }
+
+ // Fill the EMailInfo object that will be returned
+ oEMailInfo.Address = aInfo['NAME'] + '@' + aInfo['DOMAIN'] ;
+ oEMailInfo.Subject = decodeURIComponent( aInfo['SUBJECT'] ) ;
+ oEMailInfo.Body = decodeURIComponent( aInfo['BODY'] ) ;
+
+ return oEMailInfo ;
+ }
+ }
+ catch (e)
+ {
+ }
}
+
+ // Try to match the email against the encode protection.
+ var aMatch = aLinkInfo[2].match( /^(?:void\()?location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'\)?$/ ) ;
+ if ( aMatch )
+ {
+ // The link is encoded
+ oEMailInfo.Address = eval( aMatch[1] ) ;
+ if ( aMatch[2] )
+ {
+ var oEMailParams = oParser.ParseEMailParams( aMatch[2] ) ;
+ oEMailInfo.Subject = oEMailParams.Subject ;
+ oEMailInfo.Body = oEMailParams.Body ;
+ }
+ return oEMailInfo ;
+ }
}
-
- return oEMailInfo ;
+ return false;
}
oParser.CreateEMailUri = function( address, subject, body )
{
+ // Switch for the EMailProtection setting.
+ switch ( FCKConfig.EMailProtection )
+ {
+ case 'function' :
+ var func = FCKConfig.EMailProtectionFunction ;
+ if ( func == null )
+ {
+ if ( FCKConfig.Debug )
+ {
+ alert('EMailProtection alert!\nNo function defined. Please set "FCKConfig.EMailProtectionFunction"') ;
+ }
+ return '';
+ }
+
+ // Split the email address into name and domain parts.
+ var aAddressParts = address.split( '@', 2 ) ;
+ if ( aAddressParts[1] == undefined )
+ {
+ aAddressParts[1] = '' ;
+ }
+
+ // Replace the keys by their values (embedded in single quotes).
+ func = func.replace(/NAME/g, "'" + aAddressParts[0].replace(/'/g, '\\\'') + "'") ;
+ func = func.replace(/DOMAIN/g, "'" + aAddressParts[1].replace(/'/g, '\\\'') + "'") ;
+ func = func.replace(/SUBJECT/g, "'" + encodeURIComponent( subject ).replace(/'/g, '\\\'') + "'") ;
+ func = func.replace(/BODY/g, "'" + encodeURIComponent( body ).replace(/'/g, '\\\'') + "'") ;
+
+ return 'javascript:' + func ;
+
+ case 'encode' :
+ var aParams = [] ;
+ var aAddressCode = [] ;
+
+ if ( subject.length > 0 )
+ aParams.push( 'subject='+ encodeURIComponent( subject ) ) ;
+ if ( body.length > 0 )
+ aParams.push( 'body=' + encodeURIComponent( body ) ) ;
+ for ( var i = 0 ; i < address.length ; i++ )
+ aAddressCode.push( address.charCodeAt( i ) ) ;
+
+ return 'javascript:void(location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&' ) + '\')' ;
+ }
+
+ // EMailProtection 'none'
+
var sBaseUri = 'mailto:' + address ;
var sParams = '' ;
@@ -263,28 +414,26 @@
// Search for the protocol.
var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
- if ( sProtocol )
+ // Search for a protected email link.
+ var oEMailInfo = oParser.ParseEMailUri( sHRef );
+
+ if ( oEMailInfo )
{
+ sType = 'email' ;
+
+ GetE('txtEMailAddress').value = oEMailInfo.Address ;
+ GetE('txtEMailSubject').value = oEMailInfo.Subject ;
+ GetE('txtEMailBody').value = oEMailInfo.Body ;
+ }
+ else if ( sProtocol )
+ {
sProtocol = sProtocol[0].toLowerCase() ;
GetE('cmbLinkProtocol').value = sProtocol ;
// Remove the protocol and get the remaining URL.
var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
-
- if ( sProtocol == 'mailto:' ) // It is an e-mail link.
- {
- sType = 'email' ;
-
- var oEMailInfo = oParser.ParseEMailUrl( sUrl ) ;
- GetE('txtEMailAddress').value = oEMailInfo.Address ;
- GetE('txtEMailSubject').value = oEMailInfo.Subject ;
- GetE('txtEMailBody').value = oEMailInfo.Body ;
- }
- else // It is a normal link.
- {
- sType = 'url' ;
- GetE('txtUrl').value = sUrl ;
- }
+ sType = 'url' ;
+ GetE('txtUrl').value = sUrl ;
}
else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 ) // It is an anchor link.
{
@@ -650,13 +799,17 @@
function SetUrl( url )
{
- document.getElementById('txtUrl').value = url ;
+ GetE('txtUrl').value = url ;
OnUrlChange() ;
dialog.SetSelectedTab( 'Info' ) ;
}
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
+ // Remove animation
+ window.parent.Throbber.Hide() ;
+ GetE( 'divUpload' ).style.display = '' ;
+
switch ( errorNumber )
{
case 0 : // No errors
@@ -709,6 +862,10 @@
return false ;
}
+ // Show animation
+ window.parent.Throbber.Show( 100 ) ;
+ GetE( 'divUpload' ).style.display = 'none' ;
+
return true ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_link.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_link.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -108,7 +108,9 @@
<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>
+ <script type="text/javascript">
+ document.write( '<iframe name="UploadWindow" style="display: none" src="' + FCKTools.GetVoidUrl() + '"><\/iframe>' ) ;
+ </script>
</form>
</div>
<div id="divTarget" style="DISPLAY: none">
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_listprop.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_listprop.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_listprop.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -67,7 +67,7 @@
dialog.SetOkButton( true ) ;
dialog.SetAutoSize( true ) ;
- SelectField( 'txtStartPosition' ) ;
+ SelectField( sListType == 'OL' ? 'txtStartPosition' : 'selBulleted' ) ;
}
function Ok()
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_paste.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_paste.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_paste.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -63,9 +63,8 @@
'})() )' ;
var eFrameSpace = document.getElementById( 'xFrameSpace' ) ;
- // XXX Edited for zope.html to escape templater
eFrameSpace.innerHTML = '<iframe id="frmData" src="' + sFrameUrl + '" ' +
- 'height="98%" width="99%" frameborder="0" style="border: #000000 1px; background-color: #ffffff"><' + '/iframe>' ;
+ 'height="98%" width="99%" frameborder="0" style="border: #000000 1px; background-color: #ffffff"><\/iframe>' ;
var oFrame = eFrameSpace.firstChild ;
@@ -88,6 +87,7 @@
else
{
document.getElementById('txtData').style.display = '' ;
+ SelectField( 'txtData' ) ;
}
if ( sPastingType != 'Word' )
@@ -188,7 +188,7 @@
var html = oNode.innerHTML ;
html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
- html = html.replace(/<o:p>.*?<\/o:p>/g, ' ') ;
+ html = html.replace(/<o:p>[\s\S]*?<\/o:p>/g, ' ') ;
// Remove mso-xxx styles.
html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;
@@ -225,6 +225,10 @@
if ( bRemoveStyles )
html = html.replace( /<(\w[^>]*) style="([^\"]*)"([^>]*)/gi, "<$1$3" ) ;
+ // Remove style, meta and link tags
+ html = html.replace( /<STYLE[^>]*>[\s\S]*?<\/STYLE[^>]*>/gi, '' ) ;
+ html = html.replace( /<(?:META|LINK)[^>]*>\s*/gi, '' ) ;
+
// Remove empty styles.
html = html.replace( /\s*style="\s*"/gi, '' ) ;
@@ -235,25 +239,28 @@
// Remove Lang attributes
html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
- html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
+ html = html.replace( /<SPAN\s*>([\s\S]*?)<\/SPAN>/gi, '$1' ) ;
- html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
+ html = html.replace( /<FONT\s*>([\s\S]*?)<\/FONT>/gi, '$1' ) ;
// Remove XML elements and declarations
html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;
+ // Remove w: tags with contents.
+ html = html.replace( /<w:[^>]*>[\s\S]*?<\/w:[^>]*>/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(/<\!--[\s\S]*?-->/g, '' ) ;
html = html.replace( /<(U|I|STRIKE)> <\/\1>/g, ' ' ) ;
html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
// Remove "display:none" tags.
- html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;
+ html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none[\s\S]*?<\/\1>/ig, '' ) ;
// Remove language tags
html = html.replace( /<(\w[^>]*) language=([^ |>]*)([^>]*)/gi, "<$1$3") ;
@@ -268,8 +275,8 @@
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[^>]*>([\s\S]*?)<\/FONT><\/\1>/gi, '<$1>$2<\/$1>' );
+ html = html.replace( /<(H\d)><EM>([\s\S]*?)<\/EM><\/\1>/gi, '<$1>$2<\/$1>' );
}
else
{
@@ -283,7 +290,7 @@
html = html.replace( /<\/H\d>/gi, '<\/font><\/b><\/div>' ) ;
// Transform <P> to <DIV>
- var re = new RegExp( '(<P)([^>]*>.*?)(<\/P>)', 'gi' ) ; // Different because of a IE 5.0 error
+ var re = new RegExp( '(<P)([^>]*>[\\s\\S]*?)(<\/P>)', 'gi' ) ; // Different because of a IE 5.0 error
html = html.replace( re, '<div$2<\/div>' ) ;
// Remove empty tags (three times, just to be sure).
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_radiobutton.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_radiobutton.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_radiobutton.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_replace.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_replace.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_replace.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -34,6 +34,12 @@
var dialogArguments = dialog.Args() ;
var FCKLang = oEditor.FCKLang ;
+var FCKDomTools = oEditor.FCKDomTools ;
+var FCKDomRange = oEditor.FCKDomRange ;
+var FCKListsLib = oEditor.FCKListsLib ;
+var FCKTools = oEditor.FCKTools ;
+var EditorDocument = oEditor.FCK.EditorDocument ;
+var HighlightStyle = oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ) ;
dialog.AddTab( 'Find', FCKLang.DlgFindTitle ) ;
dialog.AddTab( 'Replace', FCKLang.DlgReplaceTitle ) ;
@@ -51,189 +57,261 @@
dialog.SetAutoSize( true ) ;
}
-// Place a range at the start of document.
-// This will be the starting point of our search.
-var GlobalRange = new oEditor.FCKDomRange( oEditor.FCK.EditorWindow ) ;
-
-function ResetGlobalRange()
+GetNextNonEmptyTextNode = function( node, stopNode )
{
- GlobalRange.SetStart( oEditor.FCK.EditorDocument.body, 1 ) ;
- GlobalRange.SetEnd( oEditor.FCK.EditorDocument.body, 1 ) ;
- GlobalRange.Collapse( true ) ;
+ while ( ( node = FCKDomTools.GetNextSourceNode( node, false, 3, stopNode ) ) && node && node.length < 1 )
+ 1 ;
+ return node ;
}
-ResetGlobalRange() ;
-var HighlightRange = null ;
-function Highlight()
+CharacterCursor = function( arg )
{
- if ( HighlightRange )
- ClearHighlight() ;
- var cloneRange = GlobalRange.Clone() ;
- oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ).ApplyToRange( cloneRange, false, true ) ;
- HighlightRange = cloneRange ;
- GlobalRange = HighlightRange.Clone() ;
-}
-
-function ClearHighlight()
-{
- if ( HighlightRange )
+ if ( arg.nodeType && arg.nodeType == 9 )
{
- oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ).RemoveFromRange( HighlightRange, false, true ) ;
- HighlightRange = null ;
+ this._textNode = GetNextNonEmptyTextNode( arg.body, arg.documentElement ) ;
+ this._offset = 0 ;
+ this._doc = arg ;
}
+ else
+ {
+ this._textNode = arguments[0] ;
+ this._offset = arguments[1] ;
+ this._doc = FCKTools.GetElementDocument( arguments[0] ) ;
+ }
}
-
-function OnLoad()
+CharacterCursor.prototype =
{
- // First of all, translate the dialog box texts.
- oEditor.FCKLanguageManager.TranslatePage( document ) ;
+ GetCharacter : function()
+ {
+ return ( this._textNode && this._textNode.nodeValue.charAt( this._offset ) ) || null ;
+ },
- // Show the appropriate tab at startup.
- if ( dialogArguments.CustomValue == 'Find' )
+ // Non-normalized.
+ GetTextNode : function()
{
- dialog.SetSelectedTab( 'Find' ) ;
- dialog.SetAutoSize( true ) ;
- }
- else
- dialog.SetSelectedTab( 'Replace' ) ;
+ return this._textNode ;
+ },
- SelectField( 'txtFind' + dialogArguments.CustomValue ) ;
-}
+ // Non-normalized.
+ GetIndex : function()
+ {
+ return this._offset ;
+ },
-function btnStat()
-{
- GetE('btnReplace').disabled =
- GetE('btnReplaceAll').disabled =
- GetE('btnFind').disabled =
- ( GetE(idMap["FindText"]).value.length == 0 ) ;
-}
+ // Return value means whehther we've crossed a line break or a paragraph boundary.
+ MoveNext : function()
+ {
+ if ( this._offset < this._textNode.length - 1 )
+ {
+ this._offset++ ;
+ return false ;
+ }
-function btnStatDelayed()
-{
- setTimeout( btnStat, 1 ) ;
-}
+ var crossed = false ;
+ var curNode = this._textNode ;
+ while ( ( curNode = FCKDomTools.GetNextSourceNode( curNode ) )
+ && curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )
+ {
+ var tag = curNode.nodeName.toLowerCase() ;
+ if ( FCKListsLib.BlockElements[tag] || tag == 'br' )
+ crossed = true ;
+ }
-function GetSearchString()
-{
- return GetE(idMap['FindText']).value ;
-}
+ this._textNode = curNode ;
+ this._offset = 0 ;
+ return crossed ;
+ },
-function GetReplaceString()
-{
- return GetE("txtReplace").value ;
-}
+ // Return value means whehther we've crossed a line break or a paragraph boundary.
+ MoveBack : function()
+ {
+ if ( this._offset > 0 && this._textNode.length > 0 )
+ {
+ this._offset = Math.min( this._offset - 1, this._textNode.length - 1 ) ;
+ return false ;
+ }
-function GetCheckCase()
-{
- return !! ( GetE(idMap['CheckCase']).checked ) ;
-}
+ var crossed = false ;
+ var curNode = this._textNode ;
+ while ( ( curNode = FCKDomTools.GetPreviousSourceNode( curNode ) )
+ && curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )
+ {
+ var tag = curNode.nodeName.toLowerCase() ;
+ if ( FCKListsLib.BlockElements[tag] || tag == 'br' )
+ crossed = true ;
+ }
-function GetMatchWord()
+ this._textNode = curNode ;
+ this._offset = curNode && curNode.length - 1 ;
+ return crossed ;
+ },
+
+ Clone : function()
+ {
+ return new CharacterCursor( this._textNode, this._offset ) ;
+ }
+} ;
+
+CharacterRange = function( initCursor, maxLength )
{
- return !! ( GetE(idMap['CheckWord']).checked ) ;
+ this._cursors = initCursor.push ? initCursor : [initCursor] ;
+ this._maxLength = maxLength ;
+ this._highlightRange = null ;
}
-
-// Get the data pointed to by a bookmark.
-function GetData( bookmark )
+CharacterRange.prototype =
{
- var cursor = oEditor.FCK.EditorDocument.documentElement ;
- for ( var i = 0 ; i < bookmark.length ; i++ )
+ ToDomRange : function()
{
- var target = bookmark[i] ;
- var currentIndex = -1 ;
- if ( cursor.nodeType != 3 )
+ var firstCursor = this._cursors[0] ;
+ var lastCursor = this._cursors[ this._cursors.length - 1 ] ;
+ var domRange = new FCKDomRange( FCKTools.GetElementWindow( firstCursor.GetTextNode() ) ) ;
+ var w3cRange = domRange._Range = domRange.CreateRange() ;
+ w3cRange.setStart( firstCursor.GetTextNode(), firstCursor.GetIndex() ) ;
+ w3cRange.setEnd( lastCursor.GetTextNode(), lastCursor.GetIndex() + 1 ) ;
+ domRange._UpdateElementInfo() ;
+ return domRange ;
+ },
+
+ Highlight : function()
+ {
+ if ( this._cursors.length < 1 )
+ return ;
+
+ var domRange = this.ToDomRange() ;
+ HighlightStyle.ApplyToRange( domRange, false, true ) ;
+ this._highlightRange = domRange ;
+
+ var charRange = CharacterRange.CreateFromDomRange( domRange ) ;
+ var focusNode = domRange.StartNode ;
+ if ( focusNode.nodeType != 1 )
+ focusNode = focusNode.parentNode ;
+ FCKDomTools.ScrollIntoView( focusNode, false ) ;
+ this._cursors = charRange._cursors ;
+ },
+
+ RemoveHighlight : function()
+ {
+ if ( this._highlightRange )
{
- for (var j = 0 ; j < cursor.childNodes.length ; j++ )
- {
- 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 ;
+ HighlightStyle.RemoveFromRange( this._highlightRange, false, true ) ;
+ var charRange = CharacterRange.CreateFromDomRange( this._highlightRange ) ;
+ this._cursors = charRange._cursors ;
+ this._highlightRange = 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 ;
- }
+ },
+
+ GetHighlightDomRange : function()
+ {
+ return this._highlightRange;
+ },
+
+ MoveNext : function()
+ {
+ var next = this._cursors[ this._cursors.length - 1 ].Clone() ;
+ var retval = next.MoveNext() ;
+ if ( retval )
+ this._cursors = [] ;
+ this._cursors.push( next ) ;
+ if ( this._cursors.length > this._maxLength )
+ this._cursors.shift() ;
+ return retval ;
+ },
+
+ MoveBack : function()
+ {
+ var prev = this._cursors[0].Clone() ;
+ var retval = prev.MoveBack() ;
+ if ( retval )
+ this._cursors = [] ;
+ this._cursors.unshift( prev ) ;
+ if ( this._cursors.length > this._maxLength )
+ this._cursors.pop() ;
+ return retval ;
+ },
+
+ GetEndCharacter : function()
+ {
+ if ( this._cursors.length < 1 )
+ return null ;
+ var retval = this._cursors[ this._cursors.length - 1 ].GetCharacter() ;
+ return retval ;
+ },
+
+ GetNextRange : function( len )
+ {
+ if ( this._cursors.length == 0 )
+ return null ;
+ var cur = this._cursors[ this._cursors.length - 1 ].Clone() ;
+ cur.MoveNext() ;
+ return new CharacterRange( cur, len ) ;
+ },
+
+ GetCursors : function()
+ {
+ return this._cursors ;
}
- return cursor ;
-}
+} ;
-// With this function, we can treat the bookmark as an iterator for DFS.
-function NextPosition( bookmark )
+CharacterRange.CreateFromDomRange = function( domRange )
{
- // See if there's anything further down the tree.
- var next = bookmark.concat( [0] ) ;
- if ( GetData( next ) != null )
- return next ;
+ var w3cRange = domRange._Range ;
+ var startContainer = w3cRange.startContainer ;
+ var endContainer = w3cRange.endContainer ;
+ var startTextNode, startIndex, endTextNode, endIndex ;
- // 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 ( startContainer.nodeType == 3 )
+ {
+ startTextNode = startContainer ;
+ startIndex = w3cRange.startOffset ;
+ }
+ else if ( domRange.StartNode.nodeType == 3 )
+ {
+ startTextNode = domRange.StartNode ;
+ startIndex = 0 ;
+ }
+ else
+ {
+ startTextNode = GetNextNonEmptyTextNode( domRange.StartNode, domRange.StartNode.parentNode ) ;
+ if ( !startTextNode )
+ return null ;
+ startIndex = 0 ;
+ }
- // Nothing even next to me? See if there's anything next to my ancestors.
- for ( var i = bookmark.length - 1 ; i > 0 ; i-- )
+ if ( endContainer.nodeType == 3 && w3cRange.endOffset > 0 )
{
- var next = bookmark.slice( 0, i - 1 ).concat( [ bookmark[ i - 1 ] + 1 ] ) ;
- if ( GetData( next ) != null )
- return next ;
+ endTextNode = endContainer ;
+ endIndex = w3cRange.endOffset - 1 ;
}
+ else
+ {
+ endTextNode = domRange.EndNode ;
+ while ( endTextNode.nodeType != 3 )
+ endTextNode = endTextNode.lastChild ;
+ endIndex = endTextNode.length - 1 ;
+ }
- // 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 )
+ var cursors = [] ;
+ var current = new CharacterCursor( startTextNode, startIndex ) ;
+ cursors.push( current ) ;
+ if ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) && !domRange.CheckIsEmpty() )
{
- 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;
+ do
+ {
+ current = current.Clone() ;
+ current.MoveNext() ;
+ cursors.push( current ) ;
+ }
+ while ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) ) ;
}
+
+ return new CharacterRange( cursors, cursors.length ) ;
}
// Knuth-Morris-Pratt Algorithm for stream input
KMP_NOMATCH = 0 ;
KMP_ADVANCED = 1 ;
KMP_MATCHED = 2 ;
-function KmpMatch( pattern, ignoreCase )
+KmpMatch = function( pattern, ignoreCase )
{
var overlap = [ -1 ] ;
for ( var i = 0 ; i < pattern.length ; i++ )
@@ -251,7 +329,7 @@
this.Pattern = pattern ;
}
KmpMatch.prototype = {
- "FeedCharacter" : function( c )
+ FeedCharacter : function( c )
{
if ( this._IgnoreCase )
c = c.toLowerCase();
@@ -277,161 +355,190 @@
return null ;
},
- "Reset" : function()
+
+ Reset : function()
{
this._State = 0 ;
}
};
-function _Find()
+// Place a range at the start of document.
+function OnLoad()
{
- // Start from the end of the current selection.
- var matcher = new KmpMatch( GetSearchString(), ! GetCheckCase() ) ;
- var cursor = GlobalRange.CreateBookmark2().End ;
- var matchState = KMP_NOMATCH ;
- var matchBookmark = null ;
- var matchBookmarkStart = [] ;
+ // First of all, translate the dialog box texts.
+ oEditor.FCKLanguageManager.TranslatePage( document ) ;
- // Match finding.
- while ( true )
+ // Show the appropriate tab at startup.
+ if ( dialogArguments.CustomValue == 'Find' )
{
- // 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();
- matchBookmarkStart = [] ;
- }
- }
- else if ( data.charAt != undefined )
- {
- matchState = matcher.FeedCharacter(data) ;
+ dialog.SetSelectedTab( 'Find' ) ;
+ dialog.SetAutoSize( true ) ;
+ }
+ else
+ dialog.SetSelectedTab( 'Replace' ) ;
- // No possible match of any useful substring in the pattern for the currently scanned character.
- // So delete any positional information.
- if ( matchState == KMP_NOMATCH )
- matchBookmarkStart = [] ;
- // We've matched something, but it's not a complete match, so let's just mark down the position for backtracking later.
- else if ( matchState == KMP_ADVANCED )
- {
- matchBookmarkStart.push( cursor.concat( [] ) ) ;
- if ( matchBookmarkStart.length > matcher._State )
- matchBookmarkStart.shift() ;
- }
- // Found a complete match! Mark down the ending position as well.
- else if ( matchState == KMP_MATCHED )
- {
- // It is possible to get a KMP_MATCHED without KMP_ADVANCED when the match pattern is only 1 character.
- // So need to check and mark down the starting position as well.
- if ( matchBookmarkStart.length == 0 )
- matchBookmarkStart = [cursor.concat( [] )] ;
+ SelectField( 'txtFind' + dialogArguments.CustomValue ) ;
+}
- matchBookmark = { 'Start' : matchBookmarkStart.shift(), 'End' : cursor.concat( [] ) } ;
- matchBookmark.End[ matchBookmark.End.length - 1 ]++;
+function btnStat()
+{
+ GetE('btnReplace').disabled =
+ GetE('btnReplaceAll').disabled =
+ GetE('btnFind').disabled =
+ ( GetE(idMap["FindText"]).value.length == 0 ) ;
+}
- // Wait, do we have to match a whole word?
- // If yes, carry out additional checks on what we've got.
- 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 ;
- }
+function btnStatDelayed()
+{
+ setTimeout( btnStat, 1 ) ;
+}
- // 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 ;
+function GetSearchString()
+{
+ return GetE(idMap['FindText']).value ;
+}
- if ( startOk && endOk )
- break ;
- else
- matcher.Reset() ;
- }
- else
- break ;
- }
- }
- }
+function GetReplaceString()
+{
+ return GetE("txtReplace").value ;
+}
- // Perform DFS across the document, until we've reached the end.
- cursor = NextPosition( cursor ) ;
- if ( cursor == null )
- break;
+function GetCheckCase()
+{
+ return !! ( GetE(idMap['CheckCase']).checked ) ;
+}
+
+function GetMatchWord()
+{
+ return !! ( GetE(idMap['CheckWord']).checked ) ;
+}
+
+/* Is this character a unicode whitespace or a punctuation mark?
+ * References:
+ * http://unicode.org/Public/UNIDATA/PropList.txt (whitespaces)
+ * http://php.chinaunix.net/manual/tw/ref.regex.php (punctuation marks)
+ */
+function CheckIsWordSeparator( c )
+{
+ if ( !c )
+ return true;
+ 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 /[.,"'?!;:]/.test( c ) ;
+}
- // If we've found a match, highlight the match.
- if ( matchState == KMP_MATCHED )
+FindRange = null ;
+function _Find()
+{
+ var searchString = GetSearchString() ;
+ if ( !FindRange )
+ FindRange = new CharacterRange( new CharacterCursor( EditorDocument ), searchString.length ) ;
+ else
{
- GlobalRange.MoveToBookmark2( matchBookmark ) ;
- Highlight() ;
- var focus = GlobalRange._Range.endContainer ;
- while ( focus && focus.nodeType != 1 )
- focus = focus.parentNode ;
+ FindRange.RemoveHighlight() ;
+ FindRange = FindRange.GetNextRange( searchString.length ) ;
+ }
+ var matcher = new KmpMatch( searchString, ! GetCheckCase() ) ;
+ var matchState = KMP_NOMATCH ;
+ var character = '%' ;
- if ( focus )
+ while ( character != null )
+ {
+ while ( ( character = FindRange.GetEndCharacter() ) )
{
- if ( oEditor.FCKBrowserInfo.IsSafari )
- oEditor.FCKDomTools.ScrollIntoView( focus, false ) ;
- else
- focus.scrollIntoView( false ) ;
+ matchState = matcher.FeedCharacter( character ) ;
+ if ( matchState == KMP_MATCHED )
+ break ;
+ if ( FindRange.MoveNext() )
+ matcher.Reset() ;
}
- return true ;
+ if ( matchState == KMP_MATCHED )
+ {
+ if ( GetMatchWord() )
+ {
+ var cursors = FindRange.GetCursors() ;
+ var head = cursors[ cursors.length - 1 ].Clone() ;
+ var tail = cursors[0].Clone() ;
+ if ( !head.MoveNext() && !CheckIsWordSeparator( head.GetCharacter() ) )
+ continue ;
+ if ( !tail.MoveBack() && !CheckIsWordSeparator( tail.GetCharacter() ) )
+ continue ;
+ }
+
+ FindRange.Highlight() ;
+ return true ;
+ }
}
- else
- {
- ResetGlobalRange() ;
- return false ;
- }
+
+ FindRange = null ;
+ return false ;
}
function Find()
{
if ( ! _Find() )
- {
- ClearHighlight() ;
alert( FCKLang.DlgFindNotFoundMsg ) ;
- }
}
function Replace()
{
- if ( GlobalRange.CheckIsCollapsed() )
+ var saveUndoStep = function( selectRange )
{
- if (! _Find() )
+ var ieRange ;
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ ieRange = document.selection.createRange() ;
+
+ selectRange.Select() ;
+ oEditor.FCKUndo.SaveUndoStep() ;
+ var cloneRange = selectRange.Clone() ;
+ cloneRange.Collapse( false ) ;
+ cloneRange.Select() ;
+
+ if ( ieRange )
+ setTimeout( function(){ ieRange.select() ; }, 1 ) ;
+ }
+
+ if ( FindRange && FindRange.GetHighlightDomRange() )
+ {
+ var range = FindRange.GetHighlightDomRange() ;
+ var bookmark = range.CreateBookmark() ;
+ FindRange.RemoveHighlight() ;
+ range.MoveToBookmark( bookmark ) ;
+
+ saveUndoStep( range ) ;
+ range.DeleteContents() ;
+ range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;
+ range._UpdateElementInfo() ;
+
+ FindRange = CharacterRange.CreateFromDomRange( range ) ;
+ }
+ else
+ {
+ if ( ! _Find() )
{
- ClearHighlight() ;
+ FindRange && FindRange.RemoveHighlight() ;
alert( FCKLang.DlgFindNotFoundMsg ) ;
}
}
- else
- {
- oEditor.FCKUndo.SaveUndoStep() ;
- GlobalRange.DeleteContents() ;
- GlobalRange.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
- GlobalRange.Collapse( false ) ;
- }
}
function ReplaceAll()
@@ -441,21 +548,34 @@
while ( _Find() )
{
- dialog.Selection.EnsureSelection() ;
- GlobalRange.DeleteContents() ;
- GlobalRange.InsertNode( oEditor.FCK.EditorDocument.createTextNode( GetReplaceString() ) ) ;
- GlobalRange.Collapse( false ) ;
+ var range = FindRange.GetHighlightDomRange() ;
+ var bookmark = range.CreateBookmark() ;
+ FindRange.RemoveHighlight() ;
+ range.MoveToBookmark( bookmark) ;
+
+ range.DeleteContents() ;
+ range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;
+ range._UpdateElementInfo() ;
+
+ FindRange = CharacterRange.CreateFromDomRange( range ) ;
replaceCount++ ;
}
if ( replaceCount == 0 )
{
- ClearHighlight() ;
+ FindRange && FindRange.RemoveHighlight() ;
alert( FCKLang.DlgFindNotFoundMsg ) ;
}
dialog.Cancel() ;
}
-window.onunload = function(){ ClearHighlight() ; }
+window.onunload = function()
+{
+ if ( FindRange )
+ {
+ FindRange.RemoveHighlight() ;
+ FindRange.ToDomRange().Select() ;
+ }
+}
</script>
</head>
<body onload="OnLoad()" style="overflow: hidden">
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select/fck_select.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_select/fck_select.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select/fck_select.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_select.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_select.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -132,7 +132,7 @@
<tr>
<td nowrap><span fckLang="DlgSelectSize">Size</span> </td>
<td nowrap><input id="txtLines" type="text" size="2" value=""> <span fckLang="DlgSelectLines">lines</span></td>
- <td nowrap align="right"><input id="chkMultiple" name="chkMultiple" type="checkbox"><label for="chkMultiple" fckLang="DlgSelectChkMulti">Allow
+ <td nowrap align="right"><input id="chkMultiple" type="checkbox"><label for="chkMultiple" fckLang="DlgSelectChkMulti">Allow
multiple selections</label></td>
</tr>
</table>
@@ -143,20 +143,20 @@
<table width="100%">
<tr>
<td width="50%"><span fckLang="DlgSelectOpText">Text</span><br>
- <input id="txtText" style="WIDTH: 100%" type="text" name="txtText">
+ <input id="txtText" style="WIDTH: 100%" type="text">
</td>
<td width="50%"><span fckLang="DlgSelectOpValue">Value</span><br>
- <input id="txtValue" style="WIDTH: 100%" type="text" name="txtValue">
+ <input id="txtValue" style="WIDTH: 100%" type="text">
</td>
<td vAlign="bottom"><input onclick="Add();" type="button" fckLang="DlgSelectBtnAdd" value="Add"></td>
<td vAlign="bottom"><input onclick="Modify();" type="button" fckLang="DlgSelectBtnModify" value="Modify"></td>
</tr>
<tr>
<td rowSpan="2"><select id="cmbText" style="WIDTH: 100%" onchange="GetE('cmbValue').selectedIndex = this.selectedIndex;Select(this);"
- size="5" name="cmbText"></select>
+ size="5"></select>
</td>
<td rowSpan="2"><select id="cmbValue" style="WIDTH: 100%" onchange="GetE('cmbText').selectedIndex = this.selectedIndex;Select(this);"
- size="5" name="cmbValue"></select>
+ size="5"></select>
</td>
<td vAlign="top" colSpan="2">
</td>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_smiley.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_smiley.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_smiley.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_source.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_source.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_source.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_specialchar.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_specialchar.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_specialchar.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,181 +1,181 @@
-#!/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] );
- # Strip all tags for the text. (by FredCK - #339 / #681)
- $text =~ s/<[^>]+>/ /g;
- @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
+#!/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] );
+ # Strip all tags for the text. (by FredCK - #339 / #681)
+ $text =~ s/<[^>]+>/ /g;
+ @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
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_spellerpages.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_spellerpages.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -52,7 +52,12 @@
function oSpeller_OnFinished( numberOCorrections )
{
if ( numberOCorrections > 0 )
- oEditor.FCK.SetData( document.getElementById('txtHtml').value ) ;
+ {
+ oEditor.FCKUndo.SaveUndoStep() ;
+ oEditor.FCK.EditorDocument.body.innerHTML = document.getElementById('txtHtml').value ;
+ if ( oEditor.FCKBrowserInfo.IsIE )
+ oEditor.FCKSelection.Collapse( true ) ;
+ }
window.parent.Cancel() ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_table.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_table.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_table.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -31,14 +31,13 @@
var dialog = window.parent ;
var oEditor = dialog.InnerDialogLoaded() ;
-var dialogArguments = dialog.Args() ;
-// Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var FCKDomTools = oEditor.FCKDomTools ;
// Gets the table if there is one selected.
var table ;
var e = dialog.Selection.GetSelectedElement() ;
+var hasColumnHeaders ;
if ( ( !e && document.location.search.substr(1) == 'Parent' ) || ( e && e.tagName != 'TABLE' ) )
e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
@@ -88,6 +87,36 @@
var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
if ( eCaption ) document.getElementById('txtCaption').value = eCaption.innerHTML ;
+ hasColumnHeaders = true ;
+ // Check if all the first cells in every row are TH
+ for (var row=0; row<table.rows.length; row++)
+ {
+ // If just one cell isn't a TH then it isn't a header column
+ if ( table.rows[row].cells[0].nodeName != 'TH' )
+ {
+ hasColumnHeaders = false ;
+
+ break;
+ }
+ }
+
+ // Check if the table contains <thead>
+ if ((table.tHead !== null) )
+ {
+ if (hasColumnHeaders)
+ GetE('selHeaders').value = 'both' ;
+ else
+ GetE('selHeaders').value = 'row' ;
+ }
+ else
+ {
+ if (hasColumnHeaders)
+ GetE('selHeaders').value = 'col' ;
+ else
+ GetE('selHeaders').value = '' ;
+ }
+
+
document.getElementById('txtRows').disabled = true ;
document.getElementById('txtColumns').disabled = true ;
SelectField( 'txtWidth' ) ;
@@ -104,8 +133,11 @@
{
var bExists = ( table != null ) ;
+ var oDoc = oEditor.FCK.EditorDocument ;
+ oEditor.FCKUndo.SaveUndoStep() ;
+
if ( ! bExists )
- table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;
+ table = oDoc.createElement( "TABLE" ) ;
// Removes the Width and Height styles
if ( bExists && table.style.width ) table.style.width = null ; //.removeAttribute("width") ;
@@ -129,7 +161,7 @@
{
if ( !eCaption )
{
- eCaption = oEditor.FCK.EditorDocument.createElement( 'CAPTION' ) ;
+ eCaption = oDoc.createElement( 'CAPTION' ) ;
table.insertBefore( eCaption, table.firstChild ) ;
}
@@ -145,24 +177,133 @@
eCaption.parentNode.removeChild( eCaption ) ;
}
+ var headers = GetE('selHeaders').value ;
+ if ( bExists )
+ {
+ // Should we make a <thead>?
+ if ( table.tHead==null && (headers=='row' || headers=='both') )
+ {
+ var oThead = table.createTHead() ;
+ var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+ var theRow= FCKDomTools.GetFirstChild( tbody, 'TR' ) ;
+
+ //now change TD to TH:
+ for (var i = 0; i<theRow.childNodes.length ; i++)
+ {
+ var th = RenameNode(theRow.childNodes[i], 'TH') ;
+ if (th != null)
+ th.scope='col' ;
+ }
+ oThead.appendChild( theRow ) ;
+ }
+
+ if ( table.tHead!==null && !(headers=='row' || headers=='both') )
+ {
+ // Move the row out of the THead and put it in the TBody:
+ var tHead = table.tHead ;
+ var tbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+
+ var previousFirstRow = tbody.firstChild ;
+ while ( tHead.firstChild )
+ {
+ var theRow = tHead.firstChild ;
+ for (var i = 0; i < theRow.childNodes.length ; i++ )
+ {
+ var newCell = RenameNode( theRow.childNodes[i], 'TD' ) ;
+ if ( newCell != null )
+ newCell.removeAttribute( 'scope' ) ;
+ }
+ tbody.insertBefore( theRow, previousFirstRow ) ;
+ }
+ table.removeChild( tHead ) ;
+ }
+
+ // Should we make all first cells in a row TH?
+ if ( (!hasColumnHeaders) && (headers=='col' || headers=='both') )
+ {
+ for( var row=0 ; row < table.rows.length ; row++ )
+ {
+ var newCell = RenameNode(table.rows[row].cells[0], 'TH') ;
+ if ( newCell != null )
+ newCell.scope = 'row' ;
+ }
+ }
+
+ // Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-)
+ if ( (hasColumnHeaders) && !(headers=='col' || headers=='both') )
+ {
+ for( var row=0 ; row < table.rows.length ; row++ )
+ {
+ var oRow = table.rows[row] ;
+ if ( oRow.parentNode.nodeName == 'TBODY' )
+ {
+ var newCell = RenameNode(oRow.cells[0], 'TD') ;
+ if (newCell != null)
+ newCell.removeAttribute( 'scope' ) ;
+ }
+ }
+ }
+ }
+
if (! bExists)
{
- var iRows = document.getElementById('txtRows').value ;
- var iCols = document.getElementById('txtColumns').value ;
+ var iRows = GetE('txtRows').value ;
+ var iCols = GetE('txtColumns').value ;
- for ( var r = 0 ; r < iRows ; r++ )
+ var startRow = 0 ;
+ // Should we make a <thead> ?
+ if (headers=='row' || headers=='both')
{
+ startRow++ ;
+ var oThead = table.createTHead() ;
var oRow = table.insertRow(-1) ;
+ oThead.appendChild(oRow);
+
for ( var c = 0 ; c < iCols ; c++ )
{
- var oCell = oRow.insertCell(-1) ;
+ var oThcell = oDoc.createElement( 'TH' ) ;
+ oThcell.scope = 'col' ;
+ oRow.appendChild( oThcell ) ;
if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+ oEditor.FCKTools.AppendBogusBr( oThcell ) ;
+ }
+ }
+
+ // Opera automatically creates a tbody when a thead has been added
+ var oTbody = FCKDomTools.GetFirstChild( table, 'TBODY' ) ;
+ if ( !oTbody )
+ {
+ // make TBODY if it doesn't exist
+ oTbody = oDoc.createElement( 'TBODY' ) ;
+ table.appendChild( oTbody ) ;
+ }
+ for ( var r = startRow ; r < iRows; r++ )
+ {
+ var oRow = oDoc.createElement( 'TR' ) ;
+ oTbody.appendChild(oRow) ;
+
+ var startCol = 0 ;
+ // Is the first column a header?
+ if (headers=='col' || headers=='both')
+ {
+ var oThcell = oDoc.createElement( 'TH' ) ;
+ oThcell.scope = 'row' ;
+ oRow.appendChild( oThcell ) ;
+ if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+ oEditor.FCKTools.AppendBogusBr( oThcell ) ;
+
+ startCol++ ;
+ }
+ for ( var c = startCol ; c < iCols ; c++ )
+ {
+ // IE will leave the TH at the end of the row if we use now oRow.insertCell(-1)
+ var oCell = oDoc.createElement( 'TD' ) ;
+ oRow.appendChild( oCell ) ;
+ if ( oEditor.FCKBrowserInfo.IsGeckoLike )
oEditor.FCKTools.AppendBogusBr( oCell ) ;
}
}
- oEditor.FCKUndo.SaveUndoStep() ;
-
oEditor.FCK.InsertElement( table ) ;
}
@@ -178,39 +319,44 @@
<table cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top">
- <table cellspacing="0" cellpadding="0" border="0">
+ <table cellspacing="1" cellpadding="0" border="0">
<tr>
<td>
<span fcklang="DlgTableRows">Rows</span>:</td>
<td>
- <input id="txtRows" type="text" maxlength="3" size="2" value="3" name="txtRows"
+ <input id="txtRows" type="text" maxlength="3" size="2" value="3"
onkeypress="return IsDigit(event);" /></td>
</tr>
<tr>
<td>
<span fcklang="DlgTableColumns">Columns</span>:</td>
<td>
- <input id="txtColumns" type="text" maxlength="2" size="2" value="2" name="txtColumns"
+ <input id="txtColumns" type="text" maxlength="2" size="2" value="2"
onkeypress="return IsDigit(event);" /></td>
</tr>
<tr>
+ <td><span fcklang="DlgTableHeaders">Headers</span>:</td>
<td>
- </td>
- <td>
- </td>
+ <select id="selHeaders">
+ <option fcklang="DlgTableHeadersNone" value="">None</option>
+ <option fcklang="DlgTableHeadersRow" value="row">First row</option>
+ <option fcklang="DlgTableHeadersColumn" value="col">First column</option>
+ <option fcklang="DlgTableHeadersBoth" value="both">Both</option>
+ </select>
+ </td>
</tr>
<tr>
<td>
<span fcklang="DlgTableBorder">Border size</span>:</td>
<td>
- <input id="txtBorder" type="text" maxlength="2" size="2" value="1" name="txtBorder"
+ <input id="txtBorder" type="text" maxlength="2" size="2" value="1"
onkeypress="return IsDigit(event);" /></td>
</tr>
<tr>
<td>
<span fcklang="DlgTableAlign">Alignment</span>:</td>
<td>
- <select id="selAlignment" name="selAlignment">
+ <select id="selAlignment">
<option fcklang="DlgTableAlignNotSet" value="" selected="selected"><Not set></option>
<option fcklang="DlgTableAlignLeft" value="left">Left</option>
<option fcklang="DlgTableAlignCenter" value="center">Center</option>
@@ -227,10 +373,10 @@
<td>
<span fcklang="DlgTableWidth">Width</span>:</td>
<td>
- <input id="txtWidth" type="text" maxlength="4" size="3" value="200" name="txtWidth"
+ <input id="txtWidth" type="text" maxlength="4" size="3" value="200"
onkeypress="return IsDigit(event);" /></td>
<td>
- <select id="selWidthType" name="selWidthType">
+ <select id="selWidthType">
<option fcklang="DlgTableWidthPx" value="pixels" selected="selected">pixels</option>
<option fcklang="DlgTableWidthPc" value="percent">percent</option>
</select></td>
@@ -239,23 +385,18 @@
<td>
<span fcklang="DlgTableHeight">Height</span>:</td>
<td>
- <input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /></td>
+ <input id="txtHeight" type="text" maxlength="4" size="3" onkeypress="return IsDigit(event);" /></td>
<td>
<span fcklang="DlgTableWidthPx">pixels</span></td>
</tr>
<tr>
- <td>
- </td>
- <td>
- </td>
- <td>
- </td>
+ <td colspan="3"> </td>
</tr>
<tr>
<td nowrap="nowrap">
<span fcklang="DlgTableCellSpace">Cell spacing</span>:</td>
<td>
- <input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1" name="txtCellSpacing"
+ <input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1"
onkeypress="return IsDigit(event);" /></td>
<td>
</td>
@@ -264,7 +405,7 @@
<td nowrap="nowrap">
<span fcklang="DlgTableCellPad">Cell padding</span>:</td>
<td>
- <input id="txtCellPadding" type="text" maxlength="2" size="2" value="1" name="txtCellPadding"
+ <input id="txtCellPadding" type="text" maxlength="2" size="2" value="1"
onkeypress="return IsDigit(event);" /></td>
<td>
</td>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_tablecell.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_tablecell.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_tablecell.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -32,8 +32,7 @@
var dialog = window.parent ;
var oEditor = dialog.InnerDialogLoaded() ;
-// Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var FCKDomTools = oEditor.FCKDomTools ;
// Array of selected Cells
var aCells = oEditor.FCKTableHandler.GetSelectedCells() ;
@@ -74,13 +73,15 @@
GetE('txtCollSpan').value = GetAttribute( oCell, 'colSpan' ) ;
GetE('txtBackColor').value = GetAttribute( oCell, 'bgColor' ) ;
GetE('txtBorderColor').value = GetAttribute( oCell, 'borderColor' ) ;
-// GetE('cmbFontStyle').value = oCell.className ;
+ GetE('selCellType').value = oCell.nodeName.toLowerCase() ;
}
}
// Fired when the user press the OK button
function Ok()
{
+ oEditor.FCKUndo.SaveUndoStep() ;
+
for( i = 0 ; i < aCells.length ; i++ )
{
if ( GetE('txtWidth').value.length > 0 )
@@ -100,9 +101,27 @@
SetAttribute( aCells[i], 'colSpan' , GetE('txtCollSpan').value ) ;
SetAttribute( aCells[i], 'bgColor' , GetE('txtBackColor').value ) ;
SetAttribute( aCells[i], 'borderColor' , GetE('txtBorderColor').value ) ;
-// SetAttribute( aCells[i], 'className' , GetE('cmbFontStyle').value ) ;
+
+ var cellType = GetE('selCellType').value ;
+ if ( aCells[i].nodeName.toLowerCase() != cellType )
+ aCells[i] = RenameNode( aCells[i], cellType ) ;
}
+ // The cells need to be reselected, otherwise the caret will appear inside the table borders (Gecko)
+ // or sent back to the beginning of the document (Opera and Safari).
+ // Strangely, IE works ok so no change is needed for IE.
+ if ( !oEditor.FCKBrowserInfo.IsIE )
+ {
+ var selection = oEditor.FCK.EditorWindow.getSelection() ;
+ selection.removeAllRanges() ;
+ for ( var i = 0 ; i < aCells.length ; i++ )
+ {
+ var range = oEditor.FCK.EditorDocument.createRange() ;
+ range.selectNode( aCells[i] ) ;
+ selection.addRange( range ) ;
+ }
+ }
+
return true ;
}
@@ -138,7 +157,7 @@
<span fcklang="DlgCellWidth">Width</span>:</td>
<td>
<input onkeypress="return IsDigit(event);" id="txtWidth" type="text" maxlength="4"
- size="3" name="txtWidth" /> <select id="selWidthType" name="selWidthType">
+ size="3" /> <select id="selWidthType">
<option fcklang="DlgCellWidthPx" value="pixels" selected="selected">pixels</option>
<option fcklang="DlgCellWidthPc" value="percent">percent</option>
</select></td>
@@ -147,7 +166,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellHeight">Height</span>:</td>
<td>
- <input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /> <span
+ <input id="txtHeight" type="text" maxlength="4" size="3" onkeypress="return IsDigit(event);" /> <span
fcklang="DlgCellWidthPx">pixels</span></td>
</tr>
<tr>
@@ -160,7 +179,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellWordWrap">Word Wrap</span>:</td>
<td>
- <select id="selWordWrap" name="selAlignment">
+ <select id="selWordWrap">
<option fcklang="DlgCellWordWrapYes" value="true" selected="selected">Yes</option>
<option fcklang="DlgCellWordWrapNo" value="false">No</option>
</select></td>
@@ -175,7 +194,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellHorAlign">Horizontal Alignment</span>:</td>
<td>
- <select id="selHAlign" name="selAlignment">
+ <select id="selHAlign">
<option fcklang="DlgCellHorAlignNotSet" value="" selected><Not set></option>
<option fcklang="DlgCellHorAlignLeft" value="left">Left</option>
<option fcklang="DlgCellHorAlignCenter" value="center">Center</option>
@@ -186,7 +205,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellVerAlign">Vertical Alignment</span>:</td>
<td>
- <select id="selVAlign" name="selAlignment">
+ <select id="selVAlign">
<option fcklang="DlgCellVerAlignNotSet" value="" selected><Not set></option>
<option fcklang="DlgCellVerAlignTop" value="top">Top</option>
<option fcklang="DlgCellVerAlignMiddle" value="middle">Middle</option>
@@ -202,11 +221,28 @@
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td nowrap="nowrap">
+ <span fcklang="DlgCellType">Cell Type</span>:</td>
+ <td colspan="2">
+ <select id="selCellType">
+ <option fcklang="DlgCellTypeData" value="td" />Data
+ <option fcklang="DlgCellTypeHeader" value="th" />Header
+ </select>
+ </tr>
+ <tr>
+ <td>
+ </td>
+ <td>
+ </td>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
<span fcklang="DlgCellRowSpan">Rows Span</span>:</td>
<td>
<input onkeypress="return IsDigit(event);" id="txtRowSpan" type="text" maxlength="3" size="2"
- name="txtRows"></td>
+ ></td>
<td>
</td>
</tr>
@@ -216,7 +252,7 @@
<td>
<input onkeypress="return IsDigit(event);" id="txtCollSpan" type="text" maxlength="2"
- size="2" name="txtColumns"></td>
+ size="2"></td>
<td>
</td>
</tr>
@@ -232,7 +268,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellBackColor">Background Color</span>:</td>
<td>
- <input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>
+ <input id="txtBackColor" type="text" size="8" /></td>
<td>
<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>
@@ -241,7 +277,7 @@
<td nowrap="nowrap">
<span fcklang="DlgCellBorderColor">Border Color</span>:</td>
<td>
- <input id="txtBorderColor" type="text" size="8" name="txtCellPadding" /></td>
+ <input id="txtBorderColor" type="text" size="8" /></td>
<td>
<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )" /></td>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_template.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_template.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_template.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textarea.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_textarea.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textarea.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textfield.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dialog/fck_textfield.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dialog/fck_textfield.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10strict.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dtd/fck_xhtml10strict.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10strict.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10transitional.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/dtd/fck_xhtml10transitional.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/dtd/fck_xhtml10transitional.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdebug.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/fckdebug.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdebug.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdialog.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/fckdialog.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckdialog.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -27,6 +27,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="robots" content="noindex, nofollow" />
<script type="text/javascript">
+// <![CDATA[
+
// Domain relaxation logic.
(function()
{
@@ -84,7 +86,7 @@
document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
// Sets the language direction.
-var langDir = document.documentElement.dir = E.FCKLang.Dir ;
+var langDir = E.FCKLang.Dir ;
// For IE6-, the fck_dialog_ie6.js is loaded, used to fix limitations in the browser.
if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
@@ -190,6 +192,19 @@
}
}
+ /**
+ * IE6 has a similar bug where it sometimes thinks $('contents') has an
+ * offsetHeight of 0 (#2114).
+ */
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
+ {
+ var originalRefreshContainerSize = retval.RefreshContainerSize ;
+ retval.RefreshContainerSize = function()
+ {
+ FCKTools.SetTimeout( originalRefreshContainerSize, 1, retval ) ;
+ }
+ }
+
window.onresize = function()
{
retval.RefreshContainerSize() ;
@@ -232,10 +247,13 @@
var throbberParent = $( 'throbberBlock' ) ;
- // Create the throbber blocks.
- var classIds = [ 1,2,3,4,5,4,3,2 ] ;
- while ( classIds.length > 0 )
- throbberParent.appendChild( document.createElement( 'div' ) ).className = ' throbber_' + classIds.shift() ;
+ if (throbberParent.childNodes.length == 0)
+ {
+ // Create the throbber blocks.
+ var classIds = [ 1,2,3,4,5,4,3,2 ] ;
+ while ( classIds.length > 0 )
+ throbberParent.appendChild( document.createElement( 'div' ) ).className = ' throbber_' + classIds.shift() ;
+ }
// Center the throbber.
var frm = $( 'contents' ) ;
@@ -248,6 +266,10 @@
// Show it.
throbberParent.style.visibility = '' ;
+ // Hide tabs and buttons:
+ $( 'Tabs' ).style.visibility = 'hidden' ;
+ $( 'PopupButtons' ).style.visibility = 'hidden' ;
+
// Setup the animation interval.
timer = setInterval( updateThrobber, 100 ) ;
},
@@ -260,9 +282,11 @@
timer = null ;
}
- var throbberParent = document.getElementById( 'throbberBlock' ) ;
- if ( throbberParent )
- FCKDomTools.RemoveNode( throbberParent ) ;
+ $( 'throbberBlock' ).style.visibility = 'hidden' ;
+
+ // Show tabs and buttons:
+ $( 'Tabs' ).style.visibility = '' ;
+ $( 'PopupButtons' ).style.visibility = '' ;
}
} ;
}() ;
@@ -385,6 +409,11 @@
*/
EnsureSelection : function()
{
+ // Move the focus to the Cancel button so even if the dialog contains a
+ // contentEditable element the selection is properly restored in the editor #2496
+ window.focus() ;
+ $( 'btnCancel' ).focus() ;
+
FCK.Selection.Restore() ;
},
@@ -549,6 +578,8 @@
// Program entry point.
window.Init = function()
{
+ $( 'contents' ).dir = langDir;
+
// Start the throbber timer.
Throbber.Show( 1000 ) ;
@@ -617,8 +648,7 @@
E.FCKLanguageManager.TranslatePage( document ) ;
// Create the IFRAME that holds the dialog contents.
- // XXX Edited for zope.html to escape templater
- $( 'innerContents' ).innerHTML = '<iframe id="frmMain" src="' + Args().Page + '" name="frmMain" frameborder="0" width="100%" height="100%" scrolling="auto" style="visibility: hidden;" allowtransparency="true"><' + '/iframe>' ;
+ $( 'innerContents' ).innerHTML = '<iframe id="frmMain" src="' + Args().Page + '" name="frmMain" frameborder="0" width="100%" height="100%" scrolling="auto" style="visibility: hidden;" allowtransparency="true"><\/iframe>' ;
} ;
window.InnerDialogLoaded = function()
@@ -728,6 +758,7 @@
}
} ;
})() ;
+// ]]>
</script>
</head>
<body onload="Init();" class="PopupBody">
@@ -735,7 +766,9 @@
<div id="header">
<div id="TitleArea" class="PopupTitle PopupTitleBorder">
<script type="text/javascript">
+// <![CDATA[
document.write( Args().Title ) ;
+// ]]>
</script>
<div id="closeButton" onclick="Cancel();"></div>
</div>
@@ -773,12 +806,14 @@
<div class="cover" id="cover" style="display:none"></div>
<div id="throbberBlock" style="position: absolute; visibility: hidden"></div>
<script type="text/javascript">
+// <![CDATA[
// Set the class name for language direction.
document.body.className += ' ' + langDir ;
var cover = $( 'cover' ) ;
cover.style.backgroundColor = FCKConfig.BackgroundBlockerColor ;
FCKDomTools.SetOpacity( cover, FCKConfig.BackgroundBlockerOpacity ) ;
+// ]]>
</script>
</body>
</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/fckeditor.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -29,6 +29,37 @@
<meta http-equiv="Cache-Control" content="public">
<script type="text/javascript">
+// #1645: Alert the user if opening FCKeditor in FF3 from local filesystem
+// without security.fileuri.strict_origin_policy disabled.
+if ( document.location.protocol == 'file:' )
+{
+ try
+ {
+ window.parent.document.domain ;
+ }
+ catch ( e )
+ {
+ window.addEventListener( 'load', function()
+ {
+ document.body.innerHTML = '\
+ <div style="border: 1px red solid; font-family: arial; font-size: 12px; color: red; padding:10px;">\
+ <p>\
+ <b>Your browser security settings don\'t allow FCKeditor to be opened from\
+ the local filesystem.<\/b>\
+ <\/p>\
+ <p>\
+ Please open the <b>about:config<\/b> page and disable the\
+ "security.fileuri.strict_origin_policy" option; then load this page again.\
+ <\/p>\
+ <p>\
+ Check our <a href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/FAQ#ff3perms">FAQ<\/a>\
+ for more information.\
+ <\/p>\
+ <\/div>' ;
+ }, false ) ;
+ }
+}
+
// Save a reference to the default domain.
var FCK_ORIGINAL_DOMAIN ;
@@ -134,10 +165,17 @@
FCKConfig_PreProcess() ;
-// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
-var FCK_InternalCSS = FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url
(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{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{backg
round-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)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
-var FCK_ShowTableBordersCSS = FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', '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,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > 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}' ) ;
+// Load the full debug script.
+if ( FCKConfig.Debug )
+ LoadScript( '_source/internals/fckdebug.js' ) ;
+ </script>
+ <script type="text/javascript">
+
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor (see _dev/css_compression.txt).
+var FCK_InternalCSS = FCKTools.FixCssUrls( FCKConfig.BasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__UnknownObject{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_plugin.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position
:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{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)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
+var FCK_ShowTableBordersCSS = FCKTools.FixCssUrls( FCKConfig.BasePath + 'css/', '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,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > 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}' ) ;
+
// Popup the debug window if debug mode is set to true. It guarantees that the
// first debug message will not be lost.
if ( FCKConfig.Debug )
@@ -215,7 +253,8 @@
if ( FCKBrowserInfo.IsGecko )
FCKTools.RunFunction( window.onresize ) ;
- _AttachFormSubmitToAPI() ;
+ if ( !FCKConfig.PreventSubmitHandler )
+ _AttachFormSubmitToAPI() ;
FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.original.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/fckeditor.original.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/fckeditor.original.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -31,6 +31,37 @@
@Packager.RemoveLine -->
<script type="text/javascript">
+// #1645: Alert the user if opening FCKeditor in FF3 from local filesystem
+// without security.fileuri.strict_origin_policy disabled.
+if ( document.location.protocol == 'file:' )
+{
+ try
+ {
+ window.parent.document.domain ;
+ }
+ catch ( e )
+ {
+ window.addEventListener( 'load', function()
+ {
+ document.body.innerHTML = '\
+ <div style="border: 1px red solid; font-family: arial; font-size: 12px; color: red; padding:10px;">\
+ <p>\
+ <b>Your browser security settings don\'t allow FCKeditor to be opened from\
+ the local filesystem.<\/b>\
+ <\/p>\
+ <p>\
+ Please open the <b>about:config<\/b> page and disable the\
+ "security.fileuri.strict_origin_policy" option; then load this page again.\
+ <\/p>\
+ <p>\
+ Check our <a href="http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/FAQ#ff3perms">FAQ<\/a>\
+ for more information.\
+ <\/p>\
+ <\/div>' ;
+ }, false ) ;
+ }
+}
+
// Save a reference to the default domain.
var FCK_ORIGINAL_DOMAIN ;
@@ -103,7 +134,7 @@
LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ;
LoadScript( '_source/internals/fckconfig.js' ) ;
-LoadScript( '_source/internals/fckdebug.js' ) ;
+LoadScript( '_source/internals/fckdebug_empty.js' ) ;
LoadScript( '_source/internals/fckdomtools.js' ) ;
LoadScript( '_source/internals/fcktools.js' ) ;
LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
@@ -237,12 +268,19 @@
FCKConfig_PreProcess() ;
-var FCK_InternalCSS = FCKConfig.FullBasePath + 'css/fck_internal.css' ; // @Packager.RemoveLine
-var FCK_ShowTableBordersCSS = FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ; // @Packager.RemoveLine
+// Load the full debug script.
+if ( FCKConfig.Debug )
+ LoadScript( '_source/internals/fckdebug.js' ) ;
+
+ </script>
+ <script type="text/javascript">
+
+var FCK_InternalCSS = FCKConfig.BasePath + 'css/fck_internal.css' ; // @Packager.RemoveLine
+var FCK_ShowTableBordersCSS = FCKConfig.BasePath + 'css/fck_showtableborders_gecko.css' ; // @Packager.RemoveLine
/* @Packager.RemoveLine
-// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
-var FCK_InternalCSS = FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url
(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{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{backg
round-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)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
-var FCK_ShowTableBordersCSS = FCKTools.FixCssUrls( FCKConfig.FullBasePath + 'css/', '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,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > 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}' ) ;
+// CSS minified by http://iceyboard.no-ip.org/projects/css_compressor (see _dev/css_compression.txt).
+var FCK_InternalCSS = FCKTools.FixCssUrls( FCKConfig.BasePath + 'css/', 'html{min-height:100%}table.FCK__ShowTableBorders,table.FCK__ShowTableBorders td,table.FCK__ShowTableBorders th{border:#d3d3d3 1px solid}form{border:1px dotted #F00;padding:2px}.FCK__Flash{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_flashlogo.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__UnknownObject{border:#a9a9a9 1px solid;background-position:center center;background-image:url(images/fck_plugin.gif);background-repeat:no-repeat;width:80px;height:80px}.FCK__Anchor{border:1px dotted #00F;background-position:center center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;width:16px;height:15px;vertical-align:middle}.FCK__AnchorC{border:1px dotted #00F;background-position:1px center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}a[name]{border:1px dotted #00F;background-position
:0 center;background-image:url(images/fck_anchor.gif);background-repeat:no-repeat;padding-left:18px}.FCK__PageBreak{background-position:center center;background-image:url(images/fck_pagebreak.gif);background-repeat:no-repeat;clear:both;display:block;float:none;width:100%;border-top:#999 1px dotted;border-bottom:#999 1px dotted;border-right:0;border-left:0;height:5px}.FCK__InputHidden{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)}.FCK__ShowBlocks h6{background-image:url(images/block_h6.png)}' ) ;
+var FCK_ShowTableBordersCSS = FCKTools.FixCssUrls( FCKConfig.BasePath + 'css/', '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,table:not([border]) > tfoot > tr > td,table:not([border]) > tfoot > 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}' ) ;
@Packager.RemoveLine */
// Popup the debug window if debug mode is set to true. It guarantees that the
@@ -322,7 +360,8 @@
if ( FCKBrowserInfo.IsGecko )
FCKTools.RunFunction( window.onresize ) ;
- _AttachFormSubmitToAPI() ;
+ if ( !FCKConfig.PreventSubmitHandler )
+ _AttachFormSubmitToAPI() ;
FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/browser.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -24,27 +24,24 @@
body
{
background-color: #f1f1e3;
+ margin-top:0;
+ margin-bottom:0;
}
form
{
- margin: 0px 0px 0px 0px ;
- padding: 0px 0px 0px 0px ;
+ margin: 0;
+ padding: 0;
}
.Frame
{
background-color: #f1f1e3;
- border-color: #f1f1e3;
- border-right: thin inset;
- border-top: thin inset;
- border-left: thin inset;
- border-bottom: thin inset;
+ border: thin inset #f1f1e3;
}
body.FileArea
{
-
background-color: #ffffff;
margin: 10px;
}
@@ -70,11 +67,8 @@
.Button, button
{
- border-right: #737357 1px solid;
- border-top: #737357 1px solid;
- border-left: #737357 1px solid;
color: #3b3b1f;
- border-bottom: #737357 1px solid;
+ border: #737357 1px solid;
background-color: #c7c78f;
}
@@ -87,3 +81,7 @@
{
background-image: url(images/Folder.gif);
}
+
+.fullHeight {
+ height: 100%;
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/browser.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/browser.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,8 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+ "http://www.w3.org/TR/html4/frameset.dtd">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -27,7 +28,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/fckxml.js"></script>
- <script language="javascript">
+ <script type="text/javascript">
// Automatically detect the correct document.domain (#1919).
(function()
{
@@ -41,7 +42,8 @@
var test = window.opener.document.domain ;
break ;
}
- catch( e ) {}
+ catch( e )
+ {}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmactualfolder.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmactualfolder.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -23,6 +23,7 @@
-->
<html>
<head>
+ <title>Folder path</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
@@ -39,7 +40,8 @@
var test = window.top.opener.document.domain ;
break ;
}
- catch( e ) {}
+ catch( e )
+ {}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' ) ;
@@ -58,12 +60,6 @@
}
})() ;
-function OnResize()
-{
- divName.style.width = "1px" ;
- divName.style.width = tdName.offsetWidth + "px" ;
-}
-
function SetCurrentFolder( resourceType, folderPath )
{
document.getElementById('tdName').innerHTML = folderPath ;
@@ -76,8 +72,8 @@
</script>
</head>
- <body bottomMargin="0" topMargin="0">
- <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+ <body>
+ <table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button style="WIDTH: 100%" type="button">
@@ -87,7 +83,7 @@
<td> </td>
<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
<td> </td>
- <td><img height="8" src="images/ButtonArrow.gif" width="12"></td>
+ <td><img height="8" src="images/ButtonArrow.gif" width="12" alt=""></td>
<td> </td>
</tr>
</table>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -23,10 +23,11 @@
-->
<html>
<head>
+ <title>Create Folder</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/common.js"></script>
- <script language="javascript">
+ <script type="text/javascript">
function SetCurrentFolder( resourceType, folderPath )
{
@@ -93,8 +94,8 @@
}
</script>
</head>
- <body bottomMargin="0" topMargin="0">
- <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+ <body>
+ <table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmfolders.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmfolders.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmfolders.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -24,10 +24,11 @@
-->
<html>
<head>
+ <title>Folders</title>
<link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
- <script language="javascript">
+ <script type="text/javascript">
var sActiveFolder ;
@@ -66,12 +67,12 @@
// Add the folder icon cell.
var oCell = oRow.insertCell(-1) ;
oCell.width = 16 ;
- oCell.innerHTML = sLink + '<img alt="" src="images/spacer.gif" width="16" height="16" border="0"></a>' ;
+ oCell.innerHTML = sLink + '<img alt="" src="images/spacer.gif" width="16" height="16" border="0"><\/a>' ;
// Add the folder name cell.
oCell = oRow.insertCell(-1) ;
oCell.noWrap = true ;
- oCell.innerHTML = ' ' + sLink + folderName + '</a>' ;
+ oCell.innerHTML = ' ' + sLink + folderName + '<\/a>' ;
this.TableRows[ folderPath ] = oRow ;
}
@@ -186,7 +187,7 @@
}
</script>
</head>
- <body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
+ <body class="FileArea">
<table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr id="trUp" style="DISPLAY: none">
<td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmresourceslist.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourceslist.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,9 +21,10 @@
*
* This page shows all resources available in a folder in the File Browser.
-->
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
- <link href="browser.css" type="text/css" rel="stylesheet" />
+ <title>Resources</title>
+ <link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmresourcetype.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmresourcetype.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -23,10 +23,11 @@
-->
<html>
<head>
+ <title>Available types</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/common.js"></script>
- <script language="javascript">
+ <script type="text/javascript">
function SetResourceType( type )
{
@@ -42,21 +43,24 @@
window.onload = function()
{
+ var oCombo = document.getElementById('cmbType') ;
+ oCombo.innerHTML = '' ;
for ( var i = 0 ; i < aTypes.length ; i++ )
{
if ( oConnector.ShowAllTypes || aTypes[i][0] == oConnector.ResourceType )
- AddSelectOption( document.getElementById('cmbType'), aTypes[i][1], aTypes[i][0] ) ;
+ AddSelectOption( oCombo, aTypes[i][1], aTypes[i][0] ) ;
}
}
</script>
</head>
- <body bottomMargin="0" topMargin="0">
- <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
+ <body>
+ <table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td nowrap>
Resource Type<BR>
<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
+ <option>
</select>
</td>
</tr>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/frmupload.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/frmupload.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,11 +21,11 @@
*
* Page used to upload new files in the current folder.
-->
-<html xmlns="http://www.w3.org/1999/xhtml">
+<html>
<head>
<title>File Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link href="browser.css" type="text/css" rel="stylesheet" />
+ <link href="browser.css" type="text/css" rel="stylesheet" >
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
@@ -95,9 +95,9 @@
}
</script>
</head>
- <body bottommargin="0" topmargin="0">
+ <body>
<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
- <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+ <table class="fullHeight" cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td nowrap="nowrap">
<span id="eUploadMessage">Upload a new file in this folder</span><br>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/common.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/js/common.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/common.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -35,7 +35,8 @@
var test = window.top.opener.document.domain ;
break ;
}
- catch( e ) {}
+ catch( e )
+ {}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/browser/default/js/fckxml.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/browser/default/js/fckxml.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -61,8 +61,26 @@
{
if ( oXmlHttp.readyState == 4 )
{
- if ( ( oXmlHttp.status != 200 && oXmlHttp.status != 304 ) || oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null )
+ var oXml ;
+ try
{
+ // this is the same test for an FF2 bug as in fckxml_gecko.js
+ // but we've moved the responseXML assignment into the try{}
+ // so we don't even have to check the return status codes.
+ var test = oXmlHttp.responseXML.firstChild ;
+ oXml = oXmlHttp.responseXML ;
+ }
+ catch ( e )
+ {
+ try
+ {
+ oXml = (new DOMParser()).parseFromString( oXmlHttp.responseText, 'text/xml' ) ;
+ }
+ catch ( e ) {}
+ }
+
+ if ( !oXml || !oXml.firstChild || oXml.firstChild.nodeName == 'parsererror' )
+ {
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' +
@@ -70,7 +88,7 @@
return ;
}
- oFCKXml.DOMDocument = oXmlHttp.responseXML ;
+ oFCKXml.DOMDocument = oXml ;
asyncFunctionPointer( oFCKXml ) ;
}
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/basexml.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/basexml.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/basexml.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -30,6 +30,7 @@
Response.CacheControl = "no-cache"
' Set the response format.
+ Response.CodePage = 65001
Response.CharSet = "UTF-8"
Response.ContentType = "text/xml"
End Sub
@@ -55,7 +56,11 @@
' Create the XML document header.
Response.Write "<?xml version=""1.0"" encoding=""utf-8"" ?>"
+ If text <> "" then
Response.Write "<Connector><Error number=""" & number & """ text=""" & Server.HTMLEncode( text ) & """ /></Connector>"
+ else
+ Response.Write "<Connector><Error number=""" & number & """ /></Connector>"
+ end if
Response.End
End Sub
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/class_upload.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/class_upload.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/class_upload.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -350,4 +350,4 @@
Class NetRube_FileInfo
Dim FormName, ClientPath, Path, Name, Ext, Content, Size, MIME, Start
End Class
-%>
+%>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/commands.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/commands.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/commands.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -103,7 +103,7 @@
Else
' Map the virtual path to the local server path of the current folder.
Dim sServerDir
- sServerDir = ServerMapFolder( resourceType, CombinePaths(currentFolder, sNewFolderName), "CreateFolder" )
+ sServerDir = ServerMapFolder( resourceType, CombineLocalPaths(currentFolder, sNewFolderName), "CreateFolder" )
On Error Resume Next
@@ -130,7 +130,7 @@
End If
' Create the "Error" node.
- Response.Write "<Error number=""" & sErrorNumber & """ originalNumber=""" & iErrNumber & """ originalDescription=""" & ConvertToXmlAttribute( sErrDescription ) & """ />"
+ Response.Write "<Error number=""" & sErrorNumber & """ />"
End Sub
Sub FileUpload( resourceType, currentFolder, sCommand )
@@ -171,7 +171,7 @@
Do While ( True )
Dim sFilePath
- sFilePath = sServerDir & sFileName
+ sFilePath = CombineLocalPaths(sServerDir, sFileName)
If ( oFSO.FileExists( sFilePath ) ) Then
iCounter = iCounter + 1
@@ -192,7 +192,11 @@
sFileUrl = CombinePaths( GetResourceTypePath( resourceType, sCommand ) , currentFolder )
sFileUrl = CombinePaths( sFileUrl, sFileName )
- SendUploadResults sErrorNumber, sFileUrl, sFileName, ""
+ If ( sErrorNumber = "0" or sErrorNumber = "201" ) then
+ SendUploadResults sErrorNumber, sFileUrl, sFileName, ""
+ Else
+ SendUploadResults sErrorNumber, "", "", ""
+ End If
End Sub
%>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/config.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/config.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/config.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/connector.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/connector.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/connector.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -5,7 +5,7 @@
%>
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -57,7 +57,7 @@
' Check if it is an allowed resource type.
if ( Not IsAllowedType( sResourceType ) ) Then
- SendError 1, "The """ & sResourceType & """ resource type isn't allowed"
+ SendError 1, "Invalid type specified"
end if
' File Upload doesn't have to Return XML, so it must be intercepted before anything.
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/io.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/io.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/io.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -22,9 +22,16 @@
%>
<%
function CombinePaths( sBasePath, sFolder)
+ sFolder = replace(sFolder, "\", "/")
CombinePaths = RemoveFromEnd( sBasePath, "/" ) & "/" & RemoveFromStart( sFolder, "/" )
end function
+function CombineLocalPaths( sBasePath, sFolder)
+ sFolder = replace(sFolder, "/", "\")
+ ' The RemoveFrom* functions use RegExp, so we must escape the \
+ CombineLocalPaths = RemoveFromEnd( sBasePath, "\\" ) & "\" & RemoveFromStart( sFolder, "\\" )
+end function
+
Function GetResourceTypePath( resourceType, sCommand )
if ( sCommand = "QuickUpload") then
GetResourceTypePath = ConfigQuickUploadPath.Item( resourceType )
@@ -69,7 +76,7 @@
CreateServerFolder sResourceTypePath
' Return the resource type directory combined with the required path.
- ServerMapFolder = CombinePaths( sResourceTypePath, folderPath )
+ ServerMapFolder = CombineLocalPaths( sResourceTypePath, folderPath )
End Function
Sub CreateServerFolder( folderPath )
@@ -79,6 +86,10 @@
Dim sParent
sParent = oFSO.GetParentFolderName( folderPath )
+ ' If folderPath is a network path (\\server\folder\) then sParent is an empty string.
+ ' Get out.
+ if (sParent = "") then exit sub
+
' Check if the parent exists, or create it.
If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent )
@@ -141,7 +152,7 @@
Function IsAllowedType( resourceType )
Dim oRE
Set oRE = New RegExp
- oRE.IgnoreCase = True
+ oRE.IgnoreCase = False
oRE.Global = True
oRE.Pattern = "^(" & ConfigAllowedTypes & ")$"
@@ -164,6 +175,8 @@
function GetCurrentFolder()
dim sCurrentFolder
+ dim oRegex
+
sCurrentFolder = Request.QueryString("CurrentFolder")
If ( sCurrentFolder = "" ) Then sCurrentFolder = "/"
@@ -176,6 +189,14 @@
SendError 102, ""
End If
+ Set oRegex = New RegExp
+ oRegex.Global = True
+ oRegex.Pattern = "(/\.)|(//)|([\\:\*\?\""\<\>\|]|[\u0000-\u001F]|\u007F)"
+
+ if (oRegex.Test(sCurrentFolder)) Then
+ SendError 102, ""
+ End If
+
GetCurrentFolder = sCurrentFolder
end function
@@ -214,38 +235,10 @@
Sub SendUploadResults( errorNumber, fileUrl, fileName, customMsg )
Response.Clear
Response.Write "<script type=""text/javascript"">"
- Response.Write "(function()"
- Response.Write "{"
- Response.Write "var d = document.domain ;"
+ ' Minified version of the document.domain automatic fix script (#1919).
+ ' The original script can be found at _dev/domain_fix_template.js
+ Response.Write "(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();"
- Response.Write " while ( true )"
- Response.Write " {"
- ' Test if we can access a parent property.
- Response.Write " try"
- Response.Write " {"
- Response.Write " var test = window.top.opener.document.domain ;"
- Response.Write " break ;"
- Response.Write " }"
- Response.Write " catch( e ) {}"
-
- ' Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- Response.Write " d = d.replace( /.*?(?:\.|$)/, '' ) ;"
-
- Response.Write " if ( d.length == 0 )"
- ' It was not able to detect the domain.
- Response.Write " break ;"
- Response.Write ""
- Response.Write " try"
- Response.Write " {"
- Response.Write " document.domain = d ;"
- Response.Write " }"
- Response.Write " catch (e)"
- Response.Write " {"
- Response.Write " break ;"
- Response.Write " }"
- Response.Write " }"
- Response.Write "})() ;"
-
Response.Write "window.parent.OnUploadCompleted(" & errorNumber & ",""" & Replace( fileUrl, """", "\""" ) & """,""" & Replace( fileName, """", "\""" ) & """,""" & Replace( customMsg , """", "\""" ) & """) ;"
Response.Write "</script>"
Response.End
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/upload.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/upload.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/upload.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -5,7 +5,7 @@
%>
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
@@ -48,7 +48,7 @@
sResourceType = Request.QueryString("Type")
If ( sResourceType = "" ) Then sResourceType = "File"
- sCurrentFolder = GetCurrentFolder()
+ sCurrentFolder = "/"
' Is Upload enabled?
if ( Not IsAllowedCommand( sCommand ) ) then
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/util.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/asp/util.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/asp/util.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
' FCKeditor - The text editor for Internet - http://www.fckeditor.net
- ' Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ ' Copyright (C) 2003-2009 Frederico Caldeira Knabben
'
' == BEGIN LICENSE ==
'
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/config.ascx
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/aspx/config.ascx 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/config.ascx 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<%@ Control Language="C#" EnableViewState="false" AutoEventWireup="false" Inherits="FredCK.FCKeditorV2.FileBrowser.Config" %>
<%--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/connector.aspx
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/aspx/connector.aspx 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/connector.aspx 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<%@ Register Src="config.ascx" TagName="Config" TagPrefix="FCKeditor" %>
<%--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/upload.aspx
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/aspx/upload.aspx 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/aspx/upload.aspx 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<%@ Register Src="config.ascx" TagName="Config" TagPrefix="FCKeditor" %>
<%--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="yes" showdebugoutput="no">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -102,8 +102,33 @@
rootPath = left( serverPath, Len(serverPath) - Len(userFilesPath) ) ;
xmlContent = ""; // append to this string to build content
+ invalidName = false;
</cfscript>
+
+<cfif not config.enabled>
+
+ <cfset xmlContent = "<Error number=""1"" text=""This connector is disabled. Please check the 'editor/filemanager/connectors/cfm/config.cfm' file"" />">
+
+<cfelseif find("..",url.currentFolder) or find("\",url.currentFolder) or REFind('(/\.)|(//)|[[:cntrl:]]|([\\:\*\?\"<>])', url.currentFolder)>
+
+ <cfset invalidName = true>
+ <cfset xmlContent = "<Error number=""102"" />">
+
+<cfelseif isDefined("Config.ConfigAllowedCommands") and not ListFind(Config.ConfigAllowedCommands, url.command)>
+
+ <cfset invalidName = true>
+ <cfset xmlContent = '<Error number="1" text="The "' & HTMLEditFormat(url.command) & '" command isn''t allowed" />'>
+
+<cfelseif isDefined("Config.ConfigAllowedTypes") and not ListFind(Config.ConfigAllowedTypes, url.type)>
+
+ <cfset invalidName = true>
+ <cfset xmlContent = '<Error number="1" text="Invalid type specified" />'>
+
+</cfif>
+
+<cfset resourceTypeUrl = "">
+<cfif not len(xmlContent)>
<cfset resourceTypeUrl = rereplace( replace( Config.FileTypesPath[url.type], fs, "/", "all"), "/$", "") >
<cfif isDefined( "Config.FileTypesAbsolutePath" )
@@ -125,26 +150,9 @@
<!--- get rid of double directory separators --->
<cfset userFilesServerPath = replace( userFilesServerPath, fs & fs, fs, "all") >
-<cfif not config.enabled>
-
- <cfset xmlContent = "<Error number=""1"" text=""This connector is disabled. Please check the 'editor/filemanager/connectors/cfm/config.cfm' file"" />">
-
-<cfelseif find("..",url.currentFolder) or find("\",url.currentFolder)>
-
- <cfset xmlContent = "<Error number=""102"" />">
-
-<cfelseif isDefined("Config.ConfigAllowedCommands") and not ListFind(Config.ConfigAllowedCommands, url.command)>
-
- <cfset xmlContent = '<Error number="1" text="The "' & url.command & '" command isn''t allowed" />'>
-
-<cfelseif isDefined("Config.ConfigAllowedTypes") and not ListFind(Config.ConfigAllowedTypes, url.type)>
-
- <cfset xmlContent = '<Error number="1" text="The "' & url.type & '" type isn''t allowed" />'>
-
+<cfset resourceTypeDirectory = left( userFilesServerPath, Len(userFilesServerPath) - Len(url.currentFolder) )>
</cfif>
-<cfset resourceTypeDirectory = left( userFilesServerPath, Len(userFilesServerPath) - Len(url.currentFolder) )>
-
<cfif not len(xmlContent) and not directoryexists(resourceTypeDirectory)>
<!--- create directories in physical path if they don't already exist --->
<cfset currentPath = "">
@@ -263,6 +271,7 @@
newFolderName = reReplace(newFolderName, "_{2,}", "_", "all");
newFolderName = reReplace(newFolderName, "([^_]+)_+$", "\1", "all");
newFolderName = reReplace(newFolderName, "$_([^_]+)$", "\1", "all");
+ newFolderName = reReplace(newFolderName, '\.+', "_", "all" );
}
</cfscript>
@@ -271,7 +280,7 @@
<cfelseif directoryExists(currentFolderPath & newFolderName)>
<cfset errorNumber = 101>
<cfelseif reFind("^\.\.",newFolderName)>
- <cfset errorNumber = 103>
+ <cfset errorNumber = 102>
<cfelse>
<cfset errorNumber = 0>
@@ -303,8 +312,14 @@
</cfif>
<cfscript>
- xmlHeader = '<?xml version="1.0" encoding="utf-8" ?><Connector command="#url.command#" resourceType="#url.type#">';
- xmlHeader = xmlHeader & '<CurrentFolder path="#url.currentFolder#" url="#resourceTypeUrl##url.currentFolder#" />';
+ xmlHeader = '<?xml version="1.0" encoding="utf-8" ?>';
+ if (invalidName) {
+ xmlHeader = xmlHeader & '<Connector>';
+ }
+ else {
+ xmlHeader = xmlHeader & '<Connector command="#url.command#" resourceType="#url.type#">';
+ xmlHeader = xmlHeader & '<CurrentFolder path="#url.currentFolder#" url="#resourceTypeUrl##url.currentFolder#" />';
+ }
xmlFooter = '</Connector>';
</cfscript>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -39,6 +39,10 @@
<cfparam name="url.type" default="File">
<cfparam name="url.currentFolder" default="/">
+<cfif url.command eq "QuickUpload">
+ <cfset url.currentFolder = "/">
+</cfif>
+
<cfif not isDefined("config_included")>
<cfinclude template="config.cfm">
</cfif>
@@ -47,38 +51,9 @@
function SendUploadResults(errorNumber, fileUrl, fileName, customMsg)
{
WriteOutput('<script type="text/javascript">');
- WriteOutput("(function()"&
-"{"&
-" var d = document.domain ;"&
-""&
-" while ( true )"&
-" {"&
- // Test if we can access a parent property.
-" try"&
-" {"&
-" var test = window.top.opener.document.domain ;"&
-" break ;"&
-" }"&
-" catch( e ) {}"&
-""&
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
-" d = d.replace( /.*?(?:\.|$)/, '' ) ;"&
-""&
-" if ( d.length == 0 )"&
- // It was not able to detect the domain.
-" break ;"&
-""&
-" try"&
-" {"&
-" document.domain = d ;"&
-" }"&
-" catch (e)"&
-" {"&
-" break ;"&
-" }"&
-" }"&
-"})() ;");
-
+ // Minified version of the document.domain automatic fix script (#1919).
+ // The original script can be found at _dev/domain_fix_template.js
+ WriteOutput("(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();");
WriteOutput('window.parent.OnUploadCompleted(' & errorNumber & ', "' & JSStringFormat(fileUrl) & '", "' & JSStringFormat(fileName) & '", "' & JSStringFormat(customMsg) & '");' );
WriteOutput('</script>');
}
@@ -104,6 +79,12 @@
<cfabort>
</cfif>
+<cfif REFind('(/\.)|(//)|[[:cntrl:]]|([\\:\*\?\"<>])', url.currentFolder)>
+ <cfset SendUploadResults(102)>
+ <cfabort>
+</cfif>
+
+
<cfscript>
userFilesPath = config.userFilesPath;
@@ -167,7 +148,7 @@
</cfcatch>
</cftry>
</cfif>
-<cfelse>
+<cfelseif url.command eq "FileUpload">
<cfset resourceTypeUrl = rereplace( replace( Config.FileTypesPath[url.type], fs, "/", "all"), "/$", "") >
<cfif isDefined( "Config.FileTypesAbsolutePath" )
and structkeyexists( Config.FileTypesAbsolutePath, url.type )
@@ -315,7 +296,7 @@
<cfif errorNumber EQ 0>
<!--- file was uploaded succesfully --->
- <cfset SendUploadResults(errorNumber, '#resourceTypeUrl##url.currentFolder##fileName#.#fileExt#', "", "")>
+ <cfset SendUploadResults(errorNumber, '#resourceTypeUrl##url.currentFolder##fileName#.#fileExt#', replace( fileName & "." & fileExt, "'", "\'", "ALL"), "")>
<cfabort>
<cfelseif errorNumber EQ 201>
<!--- file was changed (201), submit the new filename --->
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -64,5 +64,9 @@
<cffunction name="SendErrorNode" returntype="void" output="true">
<cfargument name="number" required="true" type="Numeric">
<cfargument name="text" required="true">
- <cfoutput><Error number="#ARGUMENTS.number#" text="#htmleditformat(ARGUMENTS.text)#" /></cfoutput>
+ <cfif Len(ARGUMENTS.text)>
+ <cfoutput><Error number="#ARGUMENTS.number#" text="#htmleditformat(ARGUMENTS.text)#" /></cfoutput>
+ <cfelse>
+ <cfoutput><Error number="#ARGUMENTS.number#" /></cfoutput>
+ </cfif>
</cffunction>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -35,7 +35,7 @@
<cfset var sTempDir = "">
<cfset var sTempFilePath = "">
<cfset var errorNumber = 0>
- <cfset var customMsg = 0>
+ <cfset var customMsg = "">
<cfset var counter = 0>
<cfset var destination = "">
@@ -226,5 +226,5 @@
</cftry>
</cfif>
- <cfoutput><Error number="#errorNumber#" originalDescription="#HTMLEditFormat(sErrorMsg)#" /></cfoutput>
+ <cfoutput><Error number="#errorNumber#" /></cfoutput>
</cffunction>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="yes" showdebugoutput="no">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -193,8 +193,12 @@
<!--- Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms --->
<cfset sCurrentFolder = rereplace( sCurrentFolder, "//+", "/", "all" )>
- <cfif find( "..", sCurrentFolder) or find( "\", sCurrentFolder) >
- <cfset SendError( 102, "" )>
+ <cfif find( "..", sCurrentFolder) or find( "\", sCurrentFolder) or REFind('(/\.)|(//)|[[:cntrl:]]|([\\:\*\?\"<>])', sCurrentFolder)>
+ <cfif URL.Command eq "FileUpload" or URL.Command eq "QuickUpload">
+ <cfset SendUploadResults( 102, "", "", "") >
+ <cfelse>
+ <cfset SendError( 102, "" )>
+ </cfif>
</cfif>
<cfreturn sCurrentFolder>
@@ -265,41 +269,17 @@
<cfargument name="fileName" required="false" type="String" default="">
<cfargument name="customMsg" required="false" type="String" default="">
+ <cfif errorNumber and errorNumber neq 201>
+ <cfset fileUrl = "">
+ <cfset fileName = "">
+ </cfif>
+ <!--- Minified version of the document.domain automatic fix script (#1919).
+ The original script can be found at _dev/domain_fix_template.js --->
<cfoutput>
<script type="text/javascript">
-(function()
-{
- var d = document.domain ;
-
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
-
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\.|$)/, '' ) ;
-
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
- }
-})() ;
-
- window.parent.OnUploadCompleted( #errorNumber#, "#JSStringFormat(fileUrl)#", "#JSStringFormat(fileName)#", "#JSStringFormat(customMsg)#" );
- </script>
+(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
+window.parent.OnUploadCompleted( #errorNumber#, "#JSStringFormat(fileUrl)#", "#JSStringFormat(fileName)#", "#JSStringFormat(customMsg)#" );
+</script>
</cfoutput>
<cfabort>
</cffunction>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="yes" showdebugoutput="no">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -24,7 +24,6 @@
--->
<cfparam name="url.type" default="File">
-<cfparam name="url.currentFolder" default="/">
<!--- note: no serverPath url parameter - see config.cfm if you need to set the serverPath manually --->
@@ -36,7 +35,7 @@
<cffunction name="SendError" returntype="void" output="true">
<cfargument name="number" required="true" type="Numeric">
<cfargument name="text" required="true">
- <cfreturn SendUploadResults( "#ARGUMENTS.number#", "", "", "ARGUMENTS.text" )>
+ <cfreturn SendUploadResults( "#ARGUMENTS.number#", "", "", "#ARGUMENTS.text#" )>
</cffunction>
<cfset REQUEST.Config = Config>
@@ -57,7 +56,7 @@
<cfset sType = URL.Type>
</cfif>
-<cfset sCurrentFolder = GetCurrentFolder()>
+<cfset sCurrentFolder = "/">
<!--- Is enabled the upload? --->
<cfif not IsAllowedCommand( sCommand )>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/config.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/config.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/config.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -28,7 +28,6 @@
// SECURITY: You must explicitly enable this "connector". (Set enabled to "true")
Config.Enabled = false ;
-
// Path to uploaded files relative to the document root.
Config.UserFilesPath = "/userfiles/" ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/connector.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/connector.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/connector.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/upload.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/cfm/upload.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/cfm/upload.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/config.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/lasso/config.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/config.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/connector.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/lasso/connector.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/connector.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -38,8 +38,8 @@
Convert query string parameters to variables and initialize output.
*/
var(
- 'Command' = action_param('Command'),
- 'Type' = action_param('Type'),
+ 'Command' = (Encode_HTML: action_param('Command')),
+ 'Type' = (Encode_HTML: action_param('Type')),
'CurrentFolder' = action_param('CurrentFolder'),
'ServerPath' = action_param('ServerPath'),
'NewFolderName' = action_param('NewFolderName'),
@@ -70,45 +70,16 @@
);
$__html_reply__ = '\
<script type="text/javascript">
-(function()
-{
- var d = document.domain ;
-
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
-
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\\.|$)/, "" ) ;
-
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
- }
-})() ;
+(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,\'\');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
';
if($uploadResult == '0' || $uploadResult == '201');
$__html_reply__ = $__html_reply__ + '\
- window.parent.OnUploadCompleted(' + $uploadResult + ',\'' + $NewFilePath + '\',\'' + $NewFilePath->split('/')->last + '\');
+ window.parent.OnUploadCompleted(' + $uploadResult + ',"' + $NewFilePath + '","' + $NewFilePath->split('/')->last + '");
</script>
';
else;
$__html_reply__ = $__html_reply__ + '\
- window.parent.OnUploadCompleted(' + $uploadResult + ');
+ window.parent.OnUploadCompleted(' + $uploadResult + ',"","");
</script>
';
/if;
@@ -125,9 +96,22 @@
+ $CurrentFolder
);
- if($CurrentFolder->(Find: '..') || $CurrentFolder->(Find: '\\'));
+ $currentFolderURL = string_replace($currentFolderURL, -find='//', -replace='/');
+
+ if (!$config->find('Subdirectories')->find(action_param('Type')));
if($Command == 'FileUpload');
$responseType = 'html';
+ $uploadResult = '1';
+ fck_htmlreply(
+ -uploadResult=$uploadResult
+ );
+ else;
+ $errorNumber = 1;
+ $commandData += '<Error number="' + $errorNumber + '" text="Invalid type specified" />\n';
+ /if;
+ else if($CurrentFolder->(Find: '..') || (String_FindRegExp: $CurrentFolder, -Find='(/\\.)|(//)|[\\\\:\\*\\?\\""\\<\\>\\|]|\\000|[\u007F]|[\u0001-\u001F]'));
+ if($Command == 'FileUpload');
+ $responseType = 'html';
$uploadResult = '102';
fck_htmlreply(
-uploadResult=$uploadResult
@@ -142,7 +126,8 @@
Build the appropriate response per the 'Command' parameter. Wrap the
entire process in an inline for file tag permissions.
*/
- inline($connection);
+ if($config->find('Enabled'));
+ inline($connection);
select($Command);
/*.............................................................
List all subdirectories in the 'Current Folder' directory.
@@ -166,7 +151,13 @@
if(#this->endswith('/'));
$folders += '\t\t<Folder name="' + #this->removetrailing('/')& + '" />\n';
else;
- local('size') = file_getsize($currentFolderURL + #this) / 1024;
+ local('size') = file_getsize($currentFolderURL + #this);
+ if($size>0);
+ $size = $size/1024;
+ if ($size==0);
+ $size = 1;
+ /if;
+ /if;
$files += '\t\t<File name="' + #this + '" size="' + #size + '" />\n';
/if;
/iterate;
@@ -181,7 +172,7 @@
Create a directory 'NewFolderName' within the 'Current Folder.'
*/
case('CreateFolder');
- $NewFolderName = (String_ReplaceRegExp: $NewFolderName, -find='\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_');
+ $NewFolderName = (String_ReplaceRegExp: $NewFolderName, -find='\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|\\000|[\u007F]|[\u0001-\u001F]', -replace='_');
var('newFolder' = $currentFolderURL + $NewFolderName + '/');
file_create($newFolder);
@@ -233,19 +224,24 @@
files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
*/
$NewFileName = $NewFile->find('OrigName');
- $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_');
+ $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|\\000|[\u007F]|[\u0001-\u001F]', -replace='_');
+ $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\.(?![^.]*$)', -replace='_');
$OrigFilePath = $currentFolderURL + $NewFileName;
$NewFilePath = $OrigFilePath;
local('fileExtension') = '.' + $NewFile->find('OrigExtension');
- #fileExtension = (String_ReplaceRegExp: #fileExtension, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_');
+ #fileExtension = (String_ReplaceRegExp: #fileExtension, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|\\000|[\u007F]|[\u0001-\u001F]', -replace='_');
local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
/*.....................................................
Make sure the file extension is allowed.
*/
- if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+ local('allowedExt') = $config->find('AllowedExtensions')->find($Type);
+ local('deniedExt') = $config->find('DeniedExtensions')->find($Type);
+ if($allowedExt->Size > 0 && $allowedExt !>> $NewFile->find('OrigExtension'));
$uploadResult = '202';
+ else($deniedExt->Size > 0 && $deniedExt >> $NewFile->find('OrigExtension'));
+ $uploadResult = '202';
else;
/*.................................................
Rename the target path until it is unique.
@@ -277,8 +273,15 @@
-uploadResult=$uploadResult,
-NewFilePath=$NewFilePath
);
+ case;
+ $errorNumber = 1;
+ $commandData += '<Error number="' + $errorNumber + '" text="Command isn\'t allowed" />\n';
/select;
- /inline;
+ /inline;
+ else;
+ $errorNumber = 1;
+ $commandData += '<Error number="' + $errorNumber + '" text="This file uploader is disabled. Please check the editor/filemanager/upload/lasso/config.lasso file." />\n';
+ /if;
/if;
/*.....................................................................
@@ -309,13 +312,18 @@
Wrap the response as XML and output.
*/
$__html_reply__ = '\
-<?xml version="1.0" encoding="utf-8" ?>
-<Connector command="' + $Command + '" resourceType="' + $Type + '">';
+<?xml version="1.0" encoding="utf-8" ?>';
if($errorNumber != '102');
- $__html_reply__ += '<CurrentFolder path="' + $CurrentFolder + '" url="' + $currentFolderURL + '" />';
+ $__html_reply__ += '<Connector command="' + (Encode_HTML: $Command) + '" resourceType="' + (Encode_HTML: $Type) + '">';
+ else;
+ $__html_reply__ += '<Connector>';
/if;
+ if($errorNumber != '102');
+ $__html_reply__ += '<CurrentFolder path="' + (Encode_HTML: $CurrentFolder) + '" url="' + (Encode_HTML: $currentFolderURL) + '" />';
+ /if;
+
$__html_reply__ += $commandData + '
</Connector>';
/if;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/upload.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/lasso/upload.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/lasso/upload.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -32,8 +32,8 @@
Convert query string parameters to variables and initialize output.
*/
var(
- 'Type' = action_param('Type'),
- 'CurrentFolder' = action_param('CurrentFolder'),
+ 'Type' = (Encode_HTML: action_param('Type')),
+ 'CurrentFolder' = "/",
'ServerPath' = action_param('ServerPath'),
'NewFile' = null,
'NewFileName' = string,
@@ -53,9 +53,11 @@
var('currentFolderURL' = $ServerPath
+ $config->find('Subdirectories')->find(action_param('Type'))
- + action_param('CurrentFolder')
+ + $CurrentFolder
);
+ $currentFolderURL = string_replace($currentFolderURL, -find='//', -replace='/');
+
/*.....................................................................
Custom tag sets the HTML response.
*/
@@ -74,47 +76,24 @@
-type='string',
-description='Sets the HTML response for the FCKEditor Quick Upload feature.'
);
- $__html_reply__ = '\
-<script type="text/javascript">
-(function()
-{
- var d = document.domain ;
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
+ $__html_reply__ = '<script type="text/javascript">';
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\\.|$)/, "" ) ;
+ // Minified version of the document.domain automatic fix script (#1919).
+ // The original script can be found at _dev/domain_fix_template.js
+ // Note: in Lasso replace \ with \\
+ $__html_reply__ = $__html_reply__ + "(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();";
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
- }
-})() ;
+ $__html_reply__ = $__html_reply__ + '\
window.parent.OnUploadCompleted(' + #errorNumber + ',"'
- + string_replace(#fileUrl, -find='"', -replace='\\"') + '","'
- + string_replace(#fileName, -find='"', -replace='\\"') + '","'
- + string_replace(#customMsg, -find='"', -replace='\\"') + '");
+ + string_replace((Encode_HTML: #fileUrl), -find='"', -replace='\\"') + '","'
+ + string_replace((Encode_HTML: #fileUrl->split('/')->last), -find='"', -replace='\\"') + '","'
+ + string_replace((Encode_HTML: #customMsg), -find='"', -replace='\\"') + '");
</script>
';
/define_tag;
- if($CurrentFolder->(Find: '..') || $CurrentFolder->(Find: '\\'));
+ if($CurrentFolder->(Find: '..') || (String_FindRegExp: $CurrentFolder, -Find='(/\\.)|(//)|[\\\\:\\*\\?\\""\\<\\>\\|]|\\000|[\u007F]|[\u0001-\u001F]'));
$errorNumber = 102;
/if;
@@ -137,6 +116,8 @@
files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
*/
$NewFileName = $NewFile->find('OrigName');
+ $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|\\000|[\u007F]|[\u0001-\u001F]', -replace='_');
+ $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\.(?![^.]*$)', -replace='_');
$OrigFilePath = $currentFolderURL + $NewFileName;
$NewFilePath = $OrigFilePath;
local('fileExtension') = '.' + $NewFile->find('OrigExtension');
@@ -147,8 +128,12 @@
Make sure the file extension is allowed.
*/
- if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
+ local('allowedExt') = $config->find('AllowedExtensions')->find($Type);
+ local('deniedExt') = $config->find('DeniedExtensions')->find($Type);
+ if($allowedExt->Size > 0 && $allowedExt !>> $NewFile->find('OrigExtension'));
$errorNumber = 202;
+ else($deniedExt->Size > 0 && $deniedExt >> $NewFile->find('OrigExtension'));
+ $errorNumber = 202;
else;
/*.....................................................
Rename the target path until it is unique.
@@ -176,6 +161,9 @@
/select;
/if;
/if;
+ if ($errorNumber != 0 && $errorNumber != 201);
+ $NewFilePath = "";
+ /if;
/inline;
else;
$errorNumber = 1;
@@ -185,7 +173,6 @@
fck_sendresults(
-errorNumber=$errorNumber,
-fileUrl=$NewFilePath,
- -fileName=$NewFileName,
-customMsg=$customMsg
);
]
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/basexml.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/basexml.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/basexml.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,63 +1,68 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-sub CreateXmlHeader
-{
- local($command,$resourceType,$currentFolder) = @_;
-
- # Create the XML document header.
- print '<?xml version="1.0" encoding="utf-8" ?>';
-
- # Create the main "Connector" node.
- print '<Connector command="' . $command . '" resourceType="' . $resourceType . '">';
-
- # Add the current folder node.
- print '<CurrentFolder path="' . ConvertToXmlAttribute($currentFolder) . '" url="' . ConvertToXmlAttribute(GetUrlFromPath($resourceType,$currentFolder)) . '" />';
-}
-
-sub CreateXmlFooter
-{
- print '</Connector>';
-}
-
-sub SendError
-{
- local( $number, $text ) = @_;
-
- print << "_HTML_HEAD_";
-Content-Type:text/xml; charset=utf-8
-Pragma: no-cache
-Cache-Control: no-cache
-Expires: Thu, 01 Dec 1994 16:00:00 GMT
-
-_HTML_HEAD_
-
- # Create the XML document header
- print '<?xml version="1.0" encoding="utf-8" ?>' ;
-
- print '<Connector><Error number="' . $number . '" text="' . &specialchar_cnv( $text ) . '" /></Connector>' ;
-
- exit ;
-}
-
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+sub CreateXmlHeader
+{
+ local($command,$resourceType,$currentFolder) = @_;
+
+ # Create the XML document header.
+ print '<?xml version="1.0" encoding="utf-8" ?>';
+
+ # Create the main "Connector" node.
+ print '<Connector command="' . $command . '" resourceType="' . $resourceType . '">';
+
+ # Add the current folder node.
+ print '<CurrentFolder path="' . ConvertToXmlAttribute($currentFolder) . '" url="' . ConvertToXmlAttribute(GetUrlFromPath($resourceType,$currentFolder)) . '" />';
+}
+
+sub CreateXmlFooter
+{
+ print '</Connector>';
+}
+
+sub SendError
+{
+ local( $number, $text ) = @_;
+
+ print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+ # Create the XML document header
+ print '<?xml version="1.0" encoding="utf-8" ?>' ;
+
+ if ($text) {
+ print '<Connector><Error number="' . $number . '" text="' . &specialchar_cnv( $text ) . '" /></Connector>' ;
+ }
+ else {
+ print '<Connector><Error number="' . $number . '" /></Connector>' ;
+ }
+
+ exit ;
+}
+
+1;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/commands.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/commands.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/commands.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,214 +1,200 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-sub GetFolders
-{
-
- local($resourceType, $currentFolder) = @_;
-
- # Map the virtual path to the local server path.
- $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
- print "<Folders>"; # Open the "Folders" node.
-
- opendir(DIR,"$sServerDir");
- @files = grep(!/^\.\.?$/,readdir(DIR));
- closedir(DIR);
-
- foreach $sFile (@files) {
- if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {
- $cnv_filename = &ConvertToXmlAttribute($sFile);
- print '<Folder name="' . $cnv_filename . '" />';
- }
- }
- print "</Folders>"; # Close the "Folders" node.
-}
-
-sub GetFoldersAndFiles
-{
-
- local($resourceType, $currentFolder) = @_;
- # Map the virtual path to the local server path.
- $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
-
- # Initialize the output buffers for "Folders" and "Files".
- $sFolders = '<Folders>';
- $sFiles = '<Files>';
-
- opendir(DIR,"$sServerDir");
- @files = grep(!/^\.\.?$/,readdir(DIR));
- closedir(DIR);
-
- foreach $sFile (@files) {
- if($sFile ne '.' && $sFile ne '..') {
- if(-d "$sServerDir$sFile") {
- $cnv_filename = &ConvertToXmlAttribute($sFile);
- $sFolders .= '<Folder name="' . $cnv_filename . '" />' ;
- } else {
- ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];
- if($iFileSize > 0) {
- $iFileSize = int($iFileSize / 1024);
- if($iFileSize < 1) {
- $iFileSize = 1;
- }
- }
- $cnv_filename = &ConvertToXmlAttribute($sFile);
- $sFiles .= '<File name="' . $cnv_filename . '" size="' . $iFileSize . '" />' ;
- }
- }
- }
- print $sFolders ;
- print '</Folders>'; # Close the "Folders" node.
- print $sFiles ;
- print '</Files>'; # Close the "Files" node.
-}
-
-sub CreateFolder
-{
-
- local($resourceType, $currentFolder) = @_;
- $sErrorNumber = '0' ;
- $sErrorMsg = '' ;
-
- if($FORM{'NewFolderName'} ne "") {
- $sNewFolderName = $FORM{'NewFolderName'};
- $sNewFolderName =~ s/\.|\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g;
- # Map the virtual path to the local server path of the current folder.
- $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
- if(-w $sServerDir) {
- $sServerDir .= $sNewFolderName;
- $sErrorMsg = &CreateServerFolder($sServerDir);
- if($sErrorMsg == 0) {
- $sErrorNumber = '0';
- } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {
- $sErrorNumber = '102'; #// Path too long.
- } else {
- $sErrorNumber = '110';
- }
- } else {
- $sErrorNumber = '103';
- }
- } else {
- $sErrorNumber = '102' ;
- }
- # Create the "Error" node.
- $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);
- print '<Error number="' . $sErrorNumber . '" originalDescription="' . $cnv_errmsg . '" />';
-}
-
-sub FileUpload
-{
-eval("use File::Copy;");
-
- local($resourceType, $currentFolder) = @_;
-
- $sErrorNumber = '0' ;
- $sFileName = '' ;
- if($new_fname) {
- # Map the virtual path to the local server path.
- $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
-
- # Get the uploaded file name.
- $sFileName = $new_fname;
- $sFileName =~ s/\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g;
- $sOriginalFileName = $sFileName;
-
- $iCounter = 0;
- while(1) {
- $sFilePath = $sServerDir . $sFileName;
- if(-e $sFilePath) {
- $iCounter++ ;
- ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);
- $sFileName = $BaseName . '(' . $iCounter . ').' . $ext;
- $sErrorNumber = '201';
- } else {
- copy("$img_dir/$new_fname","$sFilePath");
- if (defined $CHMOD_ON_UPLOAD) {
- if ($CHMOD_ON_UPLOAD) {
- umask(000);
- chmod($CHMOD_ON_UPLOAD,$sFilePath);
- }
- }
- else {
- umask(000);
- chmod(0777,$sFilePath);
- }
- unlink("$img_dir/$new_fname");
- last;
- }
- }
- } else {
- $sErrorNumber = '202' ;
- }
- $sFileName =~ s/"/\\"/g;
-
- SendUploadResults($sErrorNumber, $resourceType.$currentFolder.$sFileName, $sFileName, '');
-}
-
-sub SendUploadResults
-{
-
- local($sErrorNumber, $sFileUrl, $sFileName, $customMsg) = @_;
-
- print <<EOF;
-Content-type: text/html
-
-<script type="text/javascript">
-// Automatically detect the correct document.domain (#1919).
-(function()
-{
- var d = document.domain ;
-
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
-
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\\.|\$)/, '' ) ;
-
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
- }
-})() ;
-
-EOF
- print 'window.parent.OnUploadCompleted(' . $sErrorNumber . ',"' . JS_cnv($sFileUrl) . '","' . JS_cnv($sFileName) . '","' . JS_cnv($customMsg) . '") ;';
- print '</script>';
- exit ;
-}
-
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+sub GetFolders
+{
+
+ local($resourceType, $currentFolder) = @_;
+
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+ print "<Folders>"; # Open the "Folders" node.
+
+ opendir(DIR,"$sServerDir");
+ @files = grep(!/^\.\.?$/,readdir(DIR));
+ closedir(DIR);
+
+ foreach $sFile (@files) {
+ if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ print '<Folder name="' . $cnv_filename . '" />';
+ }
+ }
+ print "</Folders>"; # Close the "Folders" node.
+}
+
+sub GetFoldersAndFiles
+{
+
+ local($resourceType, $currentFolder) = @_;
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+ # Initialize the output buffers for "Folders" and "Files".
+ $sFolders = '<Folders>';
+ $sFiles = '<Files>';
+
+ opendir(DIR,"$sServerDir");
+ @files = grep(!/^\.\.?$/,readdir(DIR));
+ closedir(DIR);
+
+ foreach $sFile (@files) {
+ if($sFile ne '.' && $sFile ne '..') {
+ if(-d "$sServerDir$sFile") {
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ $sFolders .= '<Folder name="' . $cnv_filename . '" />' ;
+ } else {
+ ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];
+ if($iFileSize > 0) {
+ $iFileSize = int($iFileSize / 1024);
+ if($iFileSize < 1) {
+ $iFileSize = 1;
+ }
+ }
+ $cnv_filename = &ConvertToXmlAttribute($sFile);
+ $sFiles .= '<File name="' . $cnv_filename . '" size="' . $iFileSize . '" />' ;
+ }
+ }
+ }
+ print $sFolders ;
+ print '</Folders>'; # Close the "Folders" node.
+ print $sFiles ;
+ print '</Files>'; # Close the "Files" node.
+}
+
+sub CreateFolder
+{
+
+ local($resourceType, $currentFolder) = @_;
+ $sErrorNumber = '0' ;
+ $sErrorMsg = '' ;
+
+ if($FORM{'NewFolderName'} ne "") {
+ $sNewFolderName = $FORM{'NewFolderName'};
+ $sNewFolderName =~ s/\.|\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g;
+ # Map the virtual path to the local server path of the current folder.
+ $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
+ if(-w $sServerDir) {
+ $sServerDir .= $sNewFolderName;
+ $sErrorMsg = &CreateServerFolder($sServerDir);
+ if($sErrorMsg == 0) {
+ $sErrorNumber = '0';
+ } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {
+ $sErrorNumber = '102'; #// Path too long.
+ } else {
+ $sErrorNumber = '110';
+ }
+ } else {
+ $sErrorNumber = '103';
+ }
+ } else {
+ $sErrorNumber = '102' ;
+ }
+ # Create the "Error" node.
+ $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);
+ print '<Error number="' . $sErrorNumber . '" />';
+}
+
+sub FileUpload
+{
+eval("use File::Copy;");
+
+ local($resourceType, $currentFolder) = @_;
+ $allowedExtensions = $allowedExtensions{$resourceType};
+
+ $sErrorNumber = '0' ;
+ $sFileName = '' ;
+ if($new_fname) {
+ # Map the virtual path to the local server path.
+ $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
+
+ # Get the uploaded file name.
+ $sFileName = $new_fname;
+ $sFileName =~ s/\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g;
+ $sFileName =~ s/\.(?![^.]*$)/_/g;
+
+ $ext = '';
+ if($sFileName =~ /([^\\\/]*)\.(.*)$/) {
+ $ext = $2;
+ }
+
+ $allowedRegex = qr/^($allowedExtensions)$/i;
+ if (!($ext =~ $allowedRegex)) {
+ SendUploadResults('202', '', '', '');
+ }
+
+ $sOriginalFileName = $sFileName;
+
+ $iCounter = 0;
+ while(1) {
+ $sFilePath = $sServerDir . $sFileName;
+ if(-e $sFilePath) {
+ $iCounter++ ;
+ ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);
+ $sFileName = $BaseName . '(' . $iCounter . ').' . $ext;
+ $sErrorNumber = '201';
+ } else {
+ copy("$img_dir/$new_fname","$sFilePath");
+ if (defined $CHMOD_ON_UPLOAD) {
+ if ($CHMOD_ON_UPLOAD) {
+ umask(000);
+ chmod($CHMOD_ON_UPLOAD,$sFilePath);
+ }
+ }
+ else {
+ umask(000);
+ chmod(0777,$sFilePath);
+ }
+ unlink("$img_dir/$new_fname");
+ last;
+ }
+ }
+ } else {
+ $sErrorNumber = '202' ;
+ }
+ $sFileName =~ s/"/\\"/g;
+
+ SendUploadResults($sErrorNumber, $GLOBALS{'UserFilesPath'}.$resourceType.$currentFolder.$sFileName, $sFileName, '');
+}
+
+sub SendUploadResults
+{
+
+ local($sErrorNumber, $sFileUrl, $sFileName, $customMsg) = @_;
+
+ # Minified version of the document.domain automatic fix script (#1919).
+ # The original script can be found at _dev/domain_fix_template.js
+ # Note: in Perl replace \ with \\ and $ with \$
+ print <<EOF;
+Content-type: text/html
+
+<script type="text/javascript">
+(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|\$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
+
+EOF
+ print 'window.parent.OnUploadCompleted(' . $sErrorNumber . ',"' . JS_cnv($sFileUrl) . '","' . JS_cnv($sFileName) . '","' . JS_cnv($customMsg) . '") ;';
+ print '</script>';
+ exit ;
+}
+
+1;
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/config.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/config.pl (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/config.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,39 @@
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+##
+# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
+##
+&SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/config.cgi" file' ) ;
+
+$GLOBALS{'UserFilesPath'} = '/userfiles/';
+
+# Map the "UserFiles" path to a local directory.
+$rootpath = &GetRootPath();
+$GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
+
+%allowedExtensions = ("File", "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",
+"Image", "bmp|gif|jpeg|jpg|png",
+"Flash", "swf|flv",
+"Media", "aiff|asf|avi|bmp|fla|flv|gif|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|png|qt|ram|rm|rmi|rmvb|swf|tif|tiff|wav|wma|wmv"
+);
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/connector.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/connector.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/connector.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,136 +1,129 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-##
-# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.
-##
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require 'util.pl';
-require 'io.pl';
-require 'basexml.pl';
-require 'commands.pl';
-require 'upload_fck.pl';
-
-##
-# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
-##
- &SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/connector.cgi" file' ) ;
-
- &read_input();
-
- if($FORM{'ServerPath'} ne "") {
- $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};
- if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) {
- $GLOBALS{'UserFilesPath'} .= '/' ;
- }
- } else {
- $GLOBALS{'UserFilesPath'} = '/userfiles/';
- }
-
- # Map the "UserFiles" path to a local directory.
- $rootpath = &GetRootPath();
- $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
-
- &DoResponse();
-
-sub DoResponse
-{
-
- if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {
- return ;
- }
- # Get the main request informaiton.
- $sCommand = $FORM{'Command'};
- $sResourceType = $FORM{'Type'};
- $sCurrentFolder = $FORM{'CurrentFolder'};
-
- # Check the current folder syntax (must begin and start with a slash).
- if(!($sCurrentFolder =~ /\/$/)) {
- $sCurrentFolder .= '/';
- }
- if(!($sCurrentFolder =~ /^\//)) {
- $sCurrentFolder = '/' . $sCurrentFolder;
- }
-
- # Check for invalid folder paths (..)
- if ( $sCurrentFolder =~ /(?:\.\.|\\)/ ) {
- SendError( 102, "" ) ;
- }
-
- # File Upload doesn't have to Return XML, so it must be intercepted before anything.
- if($sCommand eq 'FileUpload') {
- FileUpload($sResourceType,$sCurrentFolder);
- return ;
- }
-
- print << "_HTML_HEAD_";
-Content-Type:text/xml; charset=utf-8
-Pragma: no-cache
-Cache-Control: no-cache
-Expires: Thu, 01 Dec 1994 16:00:00 GMT
-
-_HTML_HEAD_
-
- &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
-
- # Execute the required command.
- if($sCommand eq 'GetFolders') {
- &GetFolders($sResourceType,$sCurrentFolder);
- } elsif($sCommand eq 'GetFoldersAndFiles') {
- &GetFoldersAndFiles($sResourceType,$sCurrentFolder);
- } elsif($sCommand eq 'CreateFolder') {
- &CreateFolder($sResourceType,$sCurrentFolder);
- }
-
- &CreateXmlFooter();
-
- exit ;
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+##
+# ATTENTION: To enable this connector, look for the "SECURITY" comment in config.pl.
+##
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require 'util.pl';
+require 'io.pl';
+require 'basexml.pl';
+require 'commands.pl';
+require 'upload_fck.pl';
+require 'config.pl';
+
+&read_input();
+&DoResponse();
+
+sub DoResponse
+{
+
+ if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {
+ return ;
+ }
+ # Get the main request informaiton.
+ $sCommand = &specialchar_cnv($FORM{'Command'});
+ $sResourceType = &specialchar_cnv($FORM{'Type'});
+ $sCurrentFolder = $FORM{'CurrentFolder'};
+
+ if ( !($sCommand =~ /^(FileUpload|GetFolders|GetFoldersAndFiles|CreateFolder)$/) ) {
+ SendError( 1, "Command not allowed" ) ;
+ }
+
+ if ( !($sResourceType =~ /^(File|Image|Flash|Media)$/) ) {
+ SendError( 1, "Invalid type specified" ) ;
+ }
+
+ # Check the current folder syntax (must begin and start with a slash).
+ if(!($sCurrentFolder =~ /\/$/)) {
+ $sCurrentFolder .= '/';
+ }
+ if(!($sCurrentFolder =~ /^\//)) {
+ $sCurrentFolder = '/' . $sCurrentFolder;
+ }
+
+ # Check for invalid folder paths (..)
+ if ( $sCurrentFolder =~ /(?:\.\.|\\)/ ) {
+ SendError( 102, "" ) ;
+ }
+ if ( $sCurrentFolder =~ /(\/\.)|[[:cntrl:]]|(\/\/)|(\\\\)|([\:\*\?\"\<\>\|])/ ) {
+ SendError( 102, "" ) ;
+ }
+
+ # File Upload doesn't have to Return XML, so it must be intercepted before anything.
+ if($sCommand eq 'FileUpload') {
+ FileUpload($sResourceType,$sCurrentFolder);
+ return ;
+ }
+
+ print << "_HTML_HEAD_";
+Content-Type:text/xml; charset=utf-8
+Pragma: no-cache
+Cache-Control: no-cache
+Expires: Thu, 01 Dec 1994 16:00:00 GMT
+
+_HTML_HEAD_
+
+ &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
+
+ # Execute the required command.
+ if($sCommand eq 'GetFolders') {
+ &GetFolders($sResourceType,$sCurrentFolder);
+ } elsif($sCommand eq 'GetFoldersAndFiles') {
+ &GetFoldersAndFiles($sResourceType,$sCurrentFolder);
+ } elsif($sCommand eq 'CreateFolder') {
+ &CreateFolder($sResourceType,$sCurrentFolder);
+ }
+
+ &CreateXmlFooter();
+
+ exit ;
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/io.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/io.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/io.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,141 +1,141 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-sub GetUrlFromPath
-{
- local($resourceType, $folderPath) = @_;
-
- if($resourceType eq '') {
- $rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/');
- return("$rmpath$folderPath");
- } else {
- return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath");
- }
-}
-
-sub RemoveExtension
-{
- local($fileName) = @_;
- local($path, $base, $ext);
- if($fileName !~ /\./) {
- $fileName .= '.';
- }
- if($fileName =~ /([^\\\/]*)\.(.*)$/) {
- $base = $1;
- $ext = $2;
- if($fileName =~ /(.*)$base\.$ext$/) {
- $path = $1;
- }
- }
- return($path,$base,$ext);
-
-}
-
-sub ServerMapFolder
-{
- local($resourceType,$folderPath) = @_;
-
- # Get the resource type directory.
- $sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/';
-
- # Ensure that the directory exists.
- &CreateServerFolder($sResourceTypePath);
-
- # Return the resource type directory combined with the required path.
- $rmpath = &RemoveFromStart($folderPath,'/');
- return("$sResourceTypePath$rmpath");
-}
-
-sub GetParentFolder
-{
- local($folderPath) = @_;
-
- $folderPath =~ s/[\/][^\/]+[\/]?$//g;
- return $folderPath;
-}
-
-sub CreateServerFolder
-{
- local($folderPath) = @_;
-
- $sParent = &GetParentFolder($folderPath);
- # Check if the parent exists, or create it.
- if(!(-e $sParent)) {
- $sErrorMsg = &CreateServerFolder($sParent);
- if($sErrorMsg == 1) {
- return(1);
- }
- }
- if(!(-e $folderPath)) {
- if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) {
- mkdir("$folderPath");
- }
- else {
- umask(000);
- if (defined $CHMOD_ON_FOLDER_CREATE) {
- mkdir("$folderPath",$CHMOD_ON_FOLDER_CREATE);
- }
- else {
- mkdir("$folderPath",0777);
- }
- }
-
- return(0);
- } else {
- return(1);
- }
-}
-
-sub GetRootPath
-{
-#use Cwd;
-
-# my $dir = getcwd;
-# print $dir;
-# $dir =~ s/$ENV{'DOCUMENT_ROOT'}//g;
-# print $dir;
-# return($dir);
-
-# $wk = $0;
-# $wk =~ s/\/connector\.cgi//g;
-# if($wk) {
-# $current_dir = $wk;
-# } else {
-# $current_dir = `pwd`;
-# }
-# return($current_dir);
-use Cwd;
-
- if($ENV{'DOCUMENT_ROOT'}) {
- $dir = $ENV{'DOCUMENT_ROOT'};
- } else {
- my $dir = getcwd;
- $workdir =~ s/\/connector\.cgi//g;
- $dir =~ s/$workdir//g;
- }
- return($dir);
-
-
-
-}
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+sub GetUrlFromPath
+{
+ local($resourceType, $folderPath) = @_;
+
+ if($resourceType eq '') {
+ $rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/');
+ return("$rmpath$folderPath");
+ } else {
+ return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath");
+ }
+}
+
+sub RemoveExtension
+{
+ local($fileName) = @_;
+ local($path, $base, $ext);
+ if($fileName !~ /\./) {
+ $fileName .= '.';
+ }
+ if($fileName =~ /([^\\\/]*)\.(.*)$/) {
+ $base = $1;
+ $ext = $2;
+ if($fileName =~ /(.*)$base\.$ext$/) {
+ $path = $1;
+ }
+ }
+ return($path,$base,$ext);
+
+}
+
+sub ServerMapFolder
+{
+ local($resourceType,$folderPath) = @_;
+
+ # Get the resource type directory.
+ $sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/';
+
+ # Ensure that the directory exists.
+ &CreateServerFolder($sResourceTypePath);
+
+ # Return the resource type directory combined with the required path.
+ $rmpath = &RemoveFromStart($folderPath,'/');
+ return("$sResourceTypePath$rmpath");
+}
+
+sub GetParentFolder
+{
+ local($folderPath) = @_;
+
+ $folderPath =~ s/[\/][^\/]+[\/]?$//g;
+ return $folderPath;
+}
+
+sub CreateServerFolder
+{
+ local($folderPath) = @_;
+
+ $sParent = &GetParentFolder($folderPath);
+ # Check if the parent exists, or create it.
+ if(!(-e $sParent)) {
+ $sErrorMsg = &CreateServerFolder($sParent);
+ if($sErrorMsg == 1) {
+ return(1);
+ }
+ }
+ if(!(-e $folderPath)) {
+ if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) {
+ mkdir("$folderPath");
+ }
+ else {
+ umask(000);
+ if (defined $CHMOD_ON_FOLDER_CREATE) {
+ mkdir("$folderPath",$CHMOD_ON_FOLDER_CREATE);
+ }
+ else {
+ mkdir("$folderPath",0777);
+ }
+ }
+
+ return(0);
+ } else {
+ return(1);
+ }
+}
+
+sub GetRootPath
+{
+#use Cwd;
+
+# my $dir = getcwd;
+# print $dir;
+# $dir =~ s/$ENV{'DOCUMENT_ROOT'}//g;
+# print $dir;
+# return($dir);
+
+# $wk = $0;
+# $wk =~ s/\/connector\.cgi//g;
+# if($wk) {
+# $current_dir = $wk;
+# } else {
+# $current_dir = `pwd`;
+# }
+# return($current_dir);
+use Cwd;
+
+ if($ENV{'DOCUMENT_ROOT'}) {
+ $dir = $ENV{'DOCUMENT_ROOT'};
+ } else {
+ my $dir = getcwd;
+ $workdir =~ s/\/connector\.cgi//g;
+ $dir =~ s/$workdir//g;
+ }
+ return($dir);
+
+
+
+}
+1;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/upload.cgi 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload.cgi 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,117 +1,87 @@
-#!/usr/bin/env perl
-
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-##
-# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.
-##
-
-## START: Hack for Windows (Not important to understand the editor code... Perl specific).
-if(Windows_check()) {
- chdir(GetScriptPath($0));
-}
-
-sub Windows_check
-{
- # IIS,PWS(NT/95)
- $www_server_os = $^O;
- # Win98 & NT(SP4)
- if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
- # AnHTTPd/Omni/IIS
- if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
- # Win Apache
- if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
- if($www_server_os=~ /win/i) { return(1); }
- return(0);
-}
-
-sub GetScriptPath {
- local($path) = @_;
- if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
- $path;
-}
-## END: Hack for IIS
-
-require 'util.pl';
-require 'io.pl';
-require 'basexml.pl';
-require 'commands.pl';
-require 'upload_fck.pl';
-
-##
-# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
-##
- &SendUploadResults(1, '', '', 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/upload.cgi" file' ) ;
-
- &read_input();
-
- if($FORM{'ServerPath'} ne "") {
- $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};
- if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) {
- $GLOBALS{'UserFilesPath'} .= '/' ;
- }
- } else {
- $GLOBALS{'UserFilesPath'} = '/userfiles/';
- }
-
- # Map the "UserFiles" path to a local directory.
- $rootpath = &GetRootPath();
- $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
-
- &DoResponse();
-
-sub DoResponse
-{
- # Get the main request information.
- $sCommand = 'FileUpload'; #$FORM{'Command'};
- $sResourceType = $FORM{'Type'};
- $sCurrentFolder = $FORM{'CurrentFolder'};
-
- if ($sResourceType eq '') {
- $sResourceType = 'File' ;
- }
- if ($sCurrentFolder eq '') {
- $sCurrentFolder = '/' ;
- }
-
- # Check the current folder syntax (must begin and start with a slash).
- if(!($sCurrentFolder =~ /\/$/)) {
- $sCurrentFolder .= '/';
- }
- if(!($sCurrentFolder =~ /^\//)) {
- $sCurrentFolder = '/' . $sCurrentFolder;
- }
-
- # Check for invalid folder paths (..)
- if ( $sCurrentFolder =~ /(?:\.\.|\\)/ ) {
- SendError( 102, "" ) ;
- }
-
- # File Upload doesn't have to Return XML, so it must be intercepted before anything.
- if($sCommand eq 'FileUpload') {
- FileUpload($sResourceType,$sCurrentFolder);
- return ;
- }
-
-}
+#!/usr/bin/env perl
+
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+##
+# ATTENTION: To enable this connector, look for the "SECURITY" comment in config.pl.
+##
+
+## START: Hack for Windows (Not important to understand the editor code... Perl specific).
+if(Windows_check()) {
+ chdir(GetScriptPath($0));
+}
+
+sub Windows_check
+{
+ # IIS,PWS(NT/95)
+ $www_server_os = $^O;
+ # Win98 & NT(SP4)
+ if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
+ # AnHTTPd/Omni/IIS
+ if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; }
+ # Win Apache
+ if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
+ if($www_server_os=~ /win/i) { return(1); }
+ return(0);
+}
+
+sub GetScriptPath {
+ local($path) = @_;
+ if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; }
+ $path;
+}
+## END: Hack for IIS
+
+require 'util.pl';
+require 'io.pl';
+require 'basexml.pl';
+require 'commands.pl';
+require 'upload_fck.pl';
+require 'config.pl';
+
+&read_input();
+&DoResponse();
+
+sub DoResponse
+{
+ # Get the main request information.
+ $sCommand = 'FileUpload';
+ $sResourceType = &specialchar_cnv($FORM{'Type'});
+ $sCurrentFolder = "/";
+
+ if ($sResourceType eq '') {
+ $sResourceType = 'File' ;
+ }
+
+ if ( !($sResourceType =~ /^(File|Image|Flash|Media)$/) ) {
+ SendError( 1, "Invalid type specified" ) ;
+ }
+
+ # File Upload doesn't have to Return XML, so it must be intercepted before anything.
+ if($sCommand eq 'FileUpload') {
+ FileUpload($sResourceType,$sCurrentFolder);
+ return ;
+ }
+
+}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,686 +1,686 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-# image data save dir
-$img_dir = './temp/';
-
-
-# File size max(unit KB)
-$MAX_CONTENT_SIZE = 30000;
-
-# After file is uploaded, sometimes it is required to change its permissions
-# so that it was possible to access it at the later time.
-# If possible, it is recommended to set more restrictive permissions, like 0755.
-# Set to 0 to disable this feature.
-$CHMOD_ON_UPLOAD = 0777;
-
-# See comments above.
-# Used when creating folders that does not exist.
-$CHMOD_ON_FOLDER_CREATE = 0755;
-
-# Filelock (1=use,0=not use)
-$PM{'flock'} = '1';
-
-
-# upload Content-Type list
-my %UPLOAD_CONTENT_TYPE_LIST = (
- 'image/(x-)?png' => 'png', # PNG image
- 'image/p?jpe?g' => 'jpg', # JPEG image
- 'image/gif' => 'gif', # GIF image
- 'image/x-xbitmap' => 'xbm', # XBM image
-
- 'image/(x-(MS-)?)?bmp' => 'bmp', # Windows BMP image
- 'image/pict' => 'pict', # Macintosh PICT image
- 'image/tiff' => 'tif', # TIFF image
- 'application/pdf' => 'pdf', # PDF image
- 'application/x-shockwave-flash' => 'swf', # Shockwave Flash
-
- 'video/(x-)?msvideo' => 'avi', # Microsoft Video
- 'video/quicktime' => 'mov', # QuickTime Video
- 'video/mpeg' => 'mpeg', # MPEG Video
- 'video/x-mpeg2' => 'mpv2', # MPEG2 Video
-
- 'audio/(x-)?midi?' => 'mid', # MIDI Audio
- 'audio/(x-)?wav' => 'wav', # WAV Audio
- 'audio/basic' => 'au', # ULAW Audio
- 'audio/mpeg' => 'mpga', # MPEG Audio
-
- 'application/(x-)?zip(-compressed)?' => 'zip', # ZIP Compress
-
- 'text/html' => 'html', # HTML
- 'text/plain' => 'txt', # TEXT
- '(?:application|text)/(?:rtf|richtext)' => 'rtf', # RichText
-
- 'application/msword' => 'doc', # Microsoft Word
- 'application/vnd.ms-excel' => 'xls', # Microsoft Excel
-
- ''
-);
-
-# Upload is permitted.
-# A regular expression is possible.
-my %UPLOAD_EXT_LIST = (
- 'png' => 'PNG image',
- 'p?jpe?g|jpe|jfif|pjp' => 'JPEG image',
- 'gif' => 'GIF image',
- 'xbm' => 'XBM image',
-
- 'bmp|dib|rle' => 'Windows BMP image',
- 'pi?ct' => 'Macintosh PICT image',
- 'tiff?' => 'TIFF image',
- 'pdf' => 'PDF image',
- 'swf' => 'Shockwave Flash',
-
- 'avi' => 'Microsoft Video',
- 'moo?v|qt' => 'QuickTime Video',
- 'm(p(e?gv?|e|v)|1v)' => 'MPEG Video',
- 'mp(v2|2v)' => 'MPEG2 Video',
-
- 'midi?|kar|smf|rmi|mff' => 'MIDI Audio',
- 'wav' => 'WAVE Audio',
- 'au|snd' => 'ULAW Audio',
- 'mp(e?ga|2|a|3)|abs' => 'MPEG Audio',
-
- 'zip' => 'ZIP Compress',
- 'lzh' => 'LZH Compress',
- 'cab' => 'CAB Compress',
-
- 'd?html?' => 'HTML',
- 'rtf|rtx' => 'RichText',
- 'txt|text' => 'Text',
-
- ''
-);
-
-
-# sjis or euc
-my $CHARCODE = 'sjis';
-
-$TRANS_2BYTE_CODE = 0;
-
-##############################################################################
-# Summary
-#
-# Form Read input
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-sub read_input
-{
-eval("use File::Copy;");
-eval("use File::Path;");
-
- my ($FORM) = @_;
-
- if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) {
- mkdir("$img_dir");
- }
- else {
- umask(000);
- if (defined $CHMOD_ON_FOLDER_CREATE) {
- mkdir("$img_dir",$CHMOD_ON_FOLDER_CREATE);
- }
- else {
- mkdir("$img_dir",0777);
- }
- }
-
- undef $img_data_exists;
- undef @NEWFNAMES;
- undef @NEWFNAME_DATA;
-
- if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {
- &upload_error(
- 'Size Error',
- sprintf(
- "Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",
- $MAX_CONTENT_SIZE,
- int($ENV{'CONTENT_LENGTH'} / 1024),
- $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024
- )
- );
- }
-
- my $Buffer;
- if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {
- # METHOD POST only
- return unless($ENV{'CONTENT_LENGTH'});
-
- binmode(STDIN);
- # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)
- my $Boundary = <STDIN>;
- $Boundary =~ s/\x0D\x0A//;
- $Boundary = quotemeta($Boundary);
- while(<STDIN>) {
- if(/^\s*Content-Disposition:/i) {
- my($name,$ContentType,$FileName);
- # form data get
- if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {
- $name = $1;
- $name =~ tr/+/ /;
- $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- &Encode(\$name);
- }
- if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {
- $FileName = $1 || 'unknown';
- }
- # head read
- while(<STDIN>) {
- last if(! /\w/);
- if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {
- $ContentType = $1;
- }
- }
- # body read
- $value = "";
- while(<STDIN>) {
- last if(/^$Boundary/o);
- $value .= $_;
- };
- $lastline = $_;
- $value =~s /\x0D\x0A$//;
- if($value ne '') {
- if($FileName || $ContentType) {
- $img_data_exists = 1;
- (
- $FileName, #
- $Ext, #
- $Length, #
- $ImageWidth, #
- $ImageHeight, #
- $ContentName #
- ) = &CheckContentType(\$value,$FileName,$ContentType);
-
- $FORM{$name} = $FileName;
- $new_fname = $FileName;
- push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");
-
- # Multi-upload correspondence
- push(@NEWFNAMES,$new_fname);
- open(OUT,">$img_dir/$new_fname");
- binmode(OUT);
- eval "flock(OUT,2);" if($PM{'flock'} == 1);
- print OUT $value;
- eval "flock(OUT,8);" if($PM{'flock'} == 1);
- close(OUT);
-
- } elsif($name) {
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- &Encode(\$value,'trans');
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
- }
- }
- };
- last if($lastline =~ /^$Boundary\-\-/o);
- }
- } elsif($ENV{'CONTENT_LENGTH'}) {
- read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});
- }
- foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {
- my($name, $value) = split(/=/);
- $name =~ tr/+/ /;
- $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $value =~ tr/+/ /;
- $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
-
- &Encode(\$name);
- &Encode(\$value,'trans');
- $FORM{$name} .= "\0" if(defined($FORM{$name}));
- $FORM{$name} .= $value;
-
- }
-
-}
-
-##############################################################################
-# Summary
-#
-# CheckContentType
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-sub CheckContentType
-{
-
- my($DATA,$FileName,$ContentType) = @_;
- my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);
- my $DataLength = length($$DATA);
-
- # An unknown file type
-
- $_ = $ContentType;
- my $UnknownType = (
- !$_
- || /^application\/(x-)?macbinary$/i
- || /^application\/applefile$/i
- || /^application\/octet-stream$/i
- || /^text\/plane$/i
- || /^x-unknown-content-type/i
- );
-
- # MacBinary(Mac Unnecessary data are deleted.)
- if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {
- if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {
- my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4)); # ForkLength Get
- my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));
- if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128
- && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) { # DATA TOP 128byte MacBinary!!
- $$DATA = substr($$DATA,128,$MacBinary_ForkLength);
- my $ResourceLength = $DataLength - $MacBinary_ForkLength - 128;
- $DataLength = $MacBinary_ForkLength;
- }
- }
- }
-
- # A file name is changed into EUC.
-# &jcode::convert(\$FileName,'euc',$FormCodeDefault);
-# &jcode::h2z_euc(\$FileName);
- $FileName =~ s/^.*\\//; # Windows, Mac
- $FileName =~ s/^.*\///; # UNIX
- $FileName =~ s/&/&/g;
- $FileName =~ s/"/"/g;
- $FileName =~ s/</</g;
- $FileName =~ s/>/>/g;
-#
-# if($CHARCODE ne 'euc') {
-# &jcode::convert(\$FileName,$CHARCODE,'euc');
-# }
-
- # An extension is extracted and it changes into a small letter.
- my $FileExt;
- if($FileName =~ /\.(\w+)$/) {
- $FileExt = $1;
- $FileExt =~ tr/A-Z/a-z/;
- }
-
- # Executable file detection (ban on upload)
- if($$DATA =~ /^MZ/) {
- $Ext = 'exe';
- }
- # text
- if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)
- && ! $$DATA =~ /[\000-\006\177\377]/) {
-# $$DATA =~ s/\x0D\x0A/\n/g;
-# $$DATA =~ tr/\x0D\x0A/\n\n/;
-#
-# if(
-# $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i
-# ) {
-# $Infomation = '(JavaScript contains)';
-# }
-# if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i
-# || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i
-# ) {
-# $Infomation = '(the HTML tag which is not safe is included)';
-# }
-
- if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) { # Text File
- $Ext = 'txt';
- } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) { # HTML File
- $Ext = 'html';
- } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) { # XBM(x-BitMap) Image
- my $XbmName = $1;
- my ($XbmWidth, $XbmHeight);
- if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {
- $XbmWidth = $1;
- }
- if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {
- $XbmHeight = $1;
- }
- if($XbmWidth && $XbmHeight) {
- $Ext = 'xbm';
- $ImageWidth = $XbmWidth;
- $ImageHeight = $XbmHeight;
- }
- } else { #
- $Ext = 'txt';
- }
- }
-
- # image
- if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {
- # PNG
- if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {
- if(substr($$DATA, 12, 4) eq 'IHDR') {
- $Ext = 'png';
- ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));
- }
- } elsif($$DATA =~ /^GIF8(?:9|7)a/) { # GIF89a(modified), GIF89a, GIF87a
- $Ext = 'gif';
- ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));
- } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) { # TIFF
- $Ext = 'tif';
- } elsif($$DATA =~ /^BM/) { # BMP
- $Ext = 'bmp';
- } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) { # JPEG
- my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);
- my $Point = $HeaderPoint + 2;
- while($Point < $DataLength) {
- my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));
- if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {
- last;
- } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {
- $Ext = 'jpg';
- ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));
- if($HeaderPoint > 0) {
- $$DATA = substr($$DATA, $HeaderPoint);
- $DataLength = length($$DATA);
- }
- last;
- } else {
- $Point += $MakerLength + 2;
- }
- }
- }
- }
-
- # audio
- if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {
- # MIDI Audio
- if($$DATA =~ /^MThd/) {
- $Ext = 'mid';
- } elsif($$DATA =~ /^\x2esnd/) { # ULAW Audio
- $Ext = 'au';
- } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
- my $HeaderPoint = index($$DATA, "RIFF", 0);
- $_ = substr($$DATA, $HeaderPoint + 8, 8);
- if(/^WAVEfmt $/) {
- # WAVE
- if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {
- $Ext = 'wav';
- } else { # RIFF WAVE MP3
- $Ext = 'mp3';
- }
- } elsif(/^RMIDdata$/) { # RIFF MIDI
- $Ext = 'rmi';
- } elsif(/^RMP3data$/) { # RIFF MP3
- $Ext = 'rmp';
- }
- if($ContentType =~ /^audio\//i) {
- $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
- }
- }
- }
-
- # a binary file
- unless ($Ext) {
- # PDF image
- if($$DATA =~ /^\%PDF/) {
- # Picture size is not measured.
- $Ext = 'pdf';
- } elsif($$DATA =~ /^FWS/) { # Shockwave Flash
- $Ext = 'swf';
- } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
- my $HeaderPoint = index($$DATA, "RIFF", 0);
- $_ = substr($$DATA,$HeaderPoint + 8, 8);
- # AVI
- if(/^AVI LIST$/) {
- $Ext = 'avi';
- }
- if($ContentType =~ /^video\//i) {
- $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
- }
- } elsif($$DATA =~ /^PK/) { # ZIP Compress File
- $Ext = 'zip';
- } elsif($$DATA =~ /^MSCF/) { # CAB Compress File
- $Ext = 'cab';
- } elsif($$DATA =~ /^Rar\!/) { # RAR Compress File
- $Ext = 'rar';
- } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) { # LHA Compress File
- $Infomation .= "(lh$1)";
- $Ext = 'lzh';
- } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {
- # QuickTime
- $Ext = 'mov';
- }
- }
-
- # Header analysis failure
- unless ($Ext) {
- # It will be followed if it applies for the MIME type from the browser.
- foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {
- next unless ($_);
- if($ContentType =~ /^$_$/i) {
- $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};
- $ContentName = &CheckContentExt($Ext);
- if(
- grep {$_ eq $Ext;} (
- 'png',
- 'gif',
- 'jpg',
- 'xbm',
- 'tif',
- 'bmp',
- 'pdf',
- 'swf',
- 'mov',
- 'zip',
- 'cab',
- 'lzh',
- 'rar',
- 'mid',
- 'rmi',
- 'au',
- 'wav',
- 'avi',
- 'exe'
- )
- ) {
- $Infomation .= ' / Header analysis failure';
- }
- if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {
- $Ext = $FileExt;
- }
- last;
- }
- }
- # a MIME type is unknown--It judges from an extension.
- unless ($Ext) {
- $ContentName = &CheckContentExt($FileExt);
- if($ContentName) {
- $Ext = $FileExt;
- $Infomation .= ' / MIME type is unknown('. $ContentType. ')';
- last;
- }
- }
- }
-
-# $ContentName = &CheckContentExt($Ext) unless($ContentName);
-# if($Ext && $ContentName) {
-# $ContentName .= $Infomation;
-# } else {
-# &upload_error(
-# 'Extension Error',
-# "$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))
-# );
-# }
-
-# # SSI Tag Deletion
-# if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {
-# foreach (
-# 'config',
-# 'echo',
-# 'exec',
-# 'flastmod',
-# 'fsize',
-# 'include'
-# ) {
-# $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig
-# }
-# }
-
- return (
- $FileName,
- $Ext,
- int($DataLength / 1024 + 1),
- $ImageWidth,
- $ImageHeight,
- $ContentName
- );
-}
-
-##############################################################################
-# Summary
-#
-# Extension discernment
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-
-sub CheckContentExt
-{
-
- my($Ext) = @_;
- my $ContentName;
- foreach (keys %UPLOAD_EXT_LIST) {
- next unless ($_);
- if($_ && $Ext =~ /^$_$/) {
- $ContentName = $UPLOAD_EXT_LIST{$_};
- last;
- }
- }
- return $ContentName;
-
-}
-
-##############################################################################
-# Summary
-#
-# Form decode
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-sub Encode
-{
-
- my($value,$Trans) = @_;
-
-# my $FormCode = &jcode::getcode($value) || $FormCodeDefault;
-# $FormCodeDefault ||= $FormCode;
-#
-# if($Trans && $TRANS_2BYTE_CODE) {
-# if($FormCode ne 'euc') {
-# &jcode::convert($value, 'euc', $FormCode);
-# }
-# &jcode::tr(
-# $value,
-# "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",
-# '0-9A-Za-z'
-# );
-# if($CHARCODE ne 'euc') {
-# &jcode::convert($value,$CHARCODE,'euc');
-# }
-# } else {
-# if($CHARCODE ne $FormCode) {
-# &jcode::convert($value,$CHARCODE,$FormCode);
-# }
-# }
-# if($CHARCODE eq 'euc') {
-# &jcode::h2z_euc($value);
-# } elsif($CHARCODE eq 'sjis') {
-# &jcode::h2z_sjis($value);
-# }
-
-}
-
-##############################################################################
-# Summary
-#
-# Error Msg
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-
-sub upload_error
-{
-
- local($error_message) = $_[0];
- local($error_message2) = $_[1];
-
- print "Content-type: text/html\n\n";
- print<<EOF;
-<HTML>
-<HEAD>
-<TITLE>Error Message</TITLE></HEAD>
-<BODY>
-<table border="1" cellspacing="10" cellpadding="10">
- <TR bgcolor="#0000B0">
- <TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>
- </TR>
-</table>
-<UL>
-<H4> $error_message </H4>
-$error_message2 <BR>
-</UL>
-</BODY>
-</HTML>
-EOF
- &rm_tmp_uploaded_files; # Image Temporary deletion
- exit;
-}
-
-##############################################################################
-# Summary
-#
-# Image Temporary deletion
-#
-# Parameters
-# Returns
-# Memo
-##############################################################################
-
-sub rm_tmp_uploaded_files
-{
- if($img_data_exists == 1){
- sleep 1;
- foreach $fname_list(@NEWFNAMES) {
- if(-e "$img_dir/$fname_list") {
- unlink("$img_dir/$fname_list");
- }
- }
- }
-
-}
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+# image data save dir
+$img_dir = './temp/';
+
+
+# File size max(unit KB)
+$MAX_CONTENT_SIZE = 30000;
+
+# After file is uploaded, sometimes it is required to change its permissions
+# so that it was possible to access it at the later time.
+# If possible, it is recommended to set more restrictive permissions, like 0755.
+# Set to 0 to disable this feature.
+$CHMOD_ON_UPLOAD = 0777;
+
+# See comments above.
+# Used when creating folders that does not exist.
+$CHMOD_ON_FOLDER_CREATE = 0755;
+
+# Filelock (1=use,0=not use)
+$PM{'flock'} = '1';
+
+
+# upload Content-Type list
+my %UPLOAD_CONTENT_TYPE_LIST = (
+ 'image/(x-)?png' => 'png', # PNG image
+ 'image/p?jpe?g' => 'jpg', # JPEG image
+ 'image/gif' => 'gif', # GIF image
+ 'image/x-xbitmap' => 'xbm', # XBM image
+
+ 'image/(x-(MS-)?)?bmp' => 'bmp', # Windows BMP image
+ 'image/pict' => 'pict', # Macintosh PICT image
+ 'image/tiff' => 'tif', # TIFF image
+ 'application/pdf' => 'pdf', # PDF image
+ 'application/x-shockwave-flash' => 'swf', # Shockwave Flash
+
+ 'video/(x-)?msvideo' => 'avi', # Microsoft Video
+ 'video/quicktime' => 'mov', # QuickTime Video
+ 'video/mpeg' => 'mpeg', # MPEG Video
+ 'video/x-mpeg2' => 'mpv2', # MPEG2 Video
+
+ 'audio/(x-)?midi?' => 'mid', # MIDI Audio
+ 'audio/(x-)?wav' => 'wav', # WAV Audio
+ 'audio/basic' => 'au', # ULAW Audio
+ 'audio/mpeg' => 'mpga', # MPEG Audio
+
+ 'application/(x-)?zip(-compressed)?' => 'zip', # ZIP Compress
+
+ 'text/html' => 'html', # HTML
+ 'text/plain' => 'txt', # TEXT
+ '(?:application|text)/(?:rtf|richtext)' => 'rtf', # RichText
+
+ 'application/msword' => 'doc', # Microsoft Word
+ 'application/vnd.ms-excel' => 'xls', # Microsoft Excel
+
+ ''
+);
+
+# Upload is permitted.
+# A regular expression is possible.
+my %UPLOAD_EXT_LIST = (
+ 'png' => 'PNG image',
+ 'p?jpe?g|jpe|jfif|pjp' => 'JPEG image',
+ 'gif' => 'GIF image',
+ 'xbm' => 'XBM image',
+
+ 'bmp|dib|rle' => 'Windows BMP image',
+ 'pi?ct' => 'Macintosh PICT image',
+ 'tiff?' => 'TIFF image',
+ 'pdf' => 'PDF image',
+ 'swf' => 'Shockwave Flash',
+
+ 'avi' => 'Microsoft Video',
+ 'moo?v|qt' => 'QuickTime Video',
+ 'm(p(e?gv?|e|v)|1v)' => 'MPEG Video',
+ 'mp(v2|2v)' => 'MPEG2 Video',
+
+ 'midi?|kar|smf|rmi|mff' => 'MIDI Audio',
+ 'wav' => 'WAVE Audio',
+ 'au|snd' => 'ULAW Audio',
+ 'mp(e?ga|2|a|3)|abs' => 'MPEG Audio',
+
+ 'zip' => 'ZIP Compress',
+ 'lzh' => 'LZH Compress',
+ 'cab' => 'CAB Compress',
+
+ 'd?html?' => 'HTML',
+ 'rtf|rtx' => 'RichText',
+ 'txt|text' => 'Text',
+
+ ''
+);
+
+
+# sjis or euc
+my $CHARCODE = 'sjis';
+
+$TRANS_2BYTE_CODE = 0;
+
+##############################################################################
+# Summary
+#
+# Form Read input
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub read_input
+{
+eval("use File::Copy;");
+eval("use File::Path;");
+
+ my ($FORM) = @_;
+
+ if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) {
+ mkdir("$img_dir");
+ }
+ else {
+ umask(000);
+ if (defined $CHMOD_ON_FOLDER_CREATE) {
+ mkdir("$img_dir",$CHMOD_ON_FOLDER_CREATE);
+ }
+ else {
+ mkdir("$img_dir",0777);
+ }
+ }
+
+ undef $img_data_exists;
+ undef @NEWFNAMES;
+ undef @NEWFNAME_DATA;
+
+ if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) {
+ &upload_error(
+ 'Size Error',
+ sprintf(
+ "Transmitting size is too large.MAX <strong>%d KB</strong> Now Size <strong>%d KB</strong>(<strong>%d bytes</strong> Over)",
+ $MAX_CONTENT_SIZE,
+ int($ENV{'CONTENT_LENGTH'} / 1024),
+ $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024
+ )
+ );
+ }
+
+ my $Buffer;
+ if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) {
+ # METHOD POST only
+ return unless($ENV{'CONTENT_LENGTH'});
+
+ binmode(STDIN);
+ # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.)
+ my $Boundary = <STDIN>;
+ $Boundary =~ s/\x0D\x0A//;
+ $Boundary = quotemeta($Boundary);
+ while(<STDIN>) {
+ if(/^\s*Content-Disposition:/i) {
+ my($name,$ContentType,$FileName);
+ # form data get
+ if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) {
+ $name = $1;
+ $name =~ tr/+/ /;
+ $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ &Encode(\$name);
+ }
+ if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) {
+ $FileName = $1 || 'unknown';
+ }
+ # head read
+ while(<STDIN>) {
+ last if(! /\w/);
+ if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) {
+ $ContentType = $1;
+ }
+ }
+ # body read
+ $value = "";
+ while(<STDIN>) {
+ last if(/^$Boundary/o);
+ $value .= $_;
+ };
+ $lastline = $_;
+ $value =~s /\x0D\x0A$//;
+ if($value ne '') {
+ if($FileName || $ContentType) {
+ $img_data_exists = 1;
+ (
+ $FileName, #
+ $Ext, #
+ $Length, #
+ $ImageWidth, #
+ $ImageHeight, #
+ $ContentName #
+ ) = &CheckContentType(\$value,$FileName,$ContentType);
+
+ $FORM{$name} = $FileName;
+ $new_fname = $FileName;
+ push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName");
+
+ # Multi-upload correspondence
+ push(@NEWFNAMES,$new_fname);
+ open(OUT,">$img_dir/$new_fname");
+ binmode(OUT);
+ eval "flock(OUT,2);" if($PM{'flock'} == 1);
+ print OUT $value;
+ eval "flock(OUT,8);" if($PM{'flock'} == 1);
+ close(OUT);
+
+ } elsif($name) {
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ &Encode(\$value,'trans');
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+ }
+ }
+ };
+ last if($lastline =~ /^$Boundary\-\-/o);
+ }
+ } elsif($ENV{'CONTENT_LENGTH'}) {
+ read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'});
+ }
+ foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) {
+ my($name, $value) = split(/=/);
+ $name =~ tr/+/ /;
+ $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $value =~ tr/+/ /;
+ $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+
+ &Encode(\$name);
+ &Encode(\$value,'trans');
+ $FORM{$name} .= "\0" if(defined($FORM{$name}));
+ $FORM{$name} .= $value;
+
+ }
+
+}
+
+##############################################################################
+# Summary
+#
+# CheckContentType
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub CheckContentType
+{
+
+ my($DATA,$FileName,$ContentType) = @_;
+ my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation);
+ my $DataLength = length($$DATA);
+
+ # An unknown file type
+
+ $_ = $ContentType;
+ my $UnknownType = (
+ !$_
+ || /^application\/(x-)?macbinary$/i
+ || /^application\/applefile$/i
+ || /^application\/octet-stream$/i
+ || /^text\/plane$/i
+ || /^x-unknown-content-type/i
+ );
+
+ # MacBinary(Mac Unnecessary data are deleted.)
+ if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) {
+ if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) {
+ my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4)); # ForkLength Get
+ my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1))));
+ if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128
+ && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) { # DATA TOP 128byte MacBinary!!
+ $$DATA = substr($$DATA,128,$MacBinary_ForkLength);
+ my $ResourceLength = $DataLength - $MacBinary_ForkLength - 128;
+ $DataLength = $MacBinary_ForkLength;
+ }
+ }
+ }
+
+ # A file name is changed into EUC.
+# &jcode::convert(\$FileName,'euc',$FormCodeDefault);
+# &jcode::h2z_euc(\$FileName);
+ $FileName =~ s/^.*\\//; # Windows, Mac
+ $FileName =~ s/^.*\///; # UNIX
+ $FileName =~ s/&/&/g;
+ $FileName =~ s/"/"/g;
+ $FileName =~ s/</</g;
+ $FileName =~ s/>/>/g;
+#
+# if($CHARCODE ne 'euc') {
+# &jcode::convert(\$FileName,$CHARCODE,'euc');
+# }
+
+ # An extension is extracted and it changes into a small letter.
+ my $FileExt;
+ if($FileName =~ /\.(\w+)$/) {
+ $FileExt = $1;
+ $FileExt =~ tr/A-Z/a-z/;
+ }
+
+ # Executable file detection (ban on upload)
+ if($$DATA =~ /^MZ/) {
+ $Ext = 'exe';
+ }
+ # text
+ if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i)
+ && ! $$DATA =~ /[\000-\006\177\377]/) {
+# $$DATA =~ s/\x0D\x0A/\n/g;
+# $$DATA =~ tr/\x0D\x0A/\n\n/;
+#
+# if(
+# $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i
+# ) {
+# $Infomation = '(JavaScript contains)';
+# }
+# if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i
+# || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i
+# ) {
+# $Infomation = '(the HTML tag which is not safe is included)';
+# }
+
+ if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) { # Text File
+ $Ext = 'txt';
+ } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) { # HTML File
+ $Ext = 'html';
+ } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) { # XBM(x-BitMap) Image
+ my $XbmName = $1;
+ my ($XbmWidth, $XbmHeight);
+ if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) {
+ $XbmWidth = $1;
+ }
+ if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) {
+ $XbmHeight = $1;
+ }
+ if($XbmWidth && $XbmHeight) {
+ $Ext = 'xbm';
+ $ImageWidth = $XbmWidth;
+ $ImageHeight = $XbmHeight;
+ }
+ } else { #
+ $Ext = 'txt';
+ }
+ }
+
+ # image
+ if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) {
+ # PNG
+ if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) {
+ if(substr($$DATA, 12, 4) eq 'IHDR') {
+ $Ext = 'png';
+ ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8));
+ }
+ } elsif($$DATA =~ /^GIF8(?:9|7)a/) { # GIF89a(modified), GIF89a, GIF87a
+ $Ext = 'gif';
+ ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4));
+ } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) { # TIFF
+ $Ext = 'tif';
+ } elsif($$DATA =~ /^BM/) { # BMP
+ $Ext = 'bmp';
+ } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) { # JPEG
+ my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0);
+ my $Point = $HeaderPoint + 2;
+ while($Point < $DataLength) {
+ my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4));
+ if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) {
+ last;
+ } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) {
+ $Ext = 'jpg';
+ ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4));
+ if($HeaderPoint > 0) {
+ $$DATA = substr($$DATA, $HeaderPoint);
+ $DataLength = length($$DATA);
+ }
+ last;
+ } else {
+ $Point += $MakerLength + 2;
+ }
+ }
+ }
+ }
+
+ # audio
+ if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) {
+ # MIDI Audio
+ if($$DATA =~ /^MThd/) {
+ $Ext = 'mid';
+ } elsif($$DATA =~ /^\x2esnd/) { # ULAW Audio
+ $Ext = 'au';
+ } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+ my $HeaderPoint = index($$DATA, "RIFF", 0);
+ $_ = substr($$DATA, $HeaderPoint + 8, 8);
+ if(/^WAVEfmt $/) {
+ # WAVE
+ if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) {
+ $Ext = 'wav';
+ } else { # RIFF WAVE MP3
+ $Ext = 'mp3';
+ }
+ } elsif(/^RMIDdata$/) { # RIFF MIDI
+ $Ext = 'rmi';
+ } elsif(/^RMP3data$/) { # RIFF MP3
+ $Ext = 'rmp';
+ }
+ if($ContentType =~ /^audio\//i) {
+ $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+ }
+ }
+ }
+
+ # a binary file
+ unless ($Ext) {
+ # PDF image
+ if($$DATA =~ /^\%PDF/) {
+ # Picture size is not measured.
+ $Ext = 'pdf';
+ } elsif($$DATA =~ /^FWS/) { # Shockwave Flash
+ $Ext = 'swf';
+ } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) {
+ my $HeaderPoint = index($$DATA, "RIFF", 0);
+ $_ = substr($$DATA,$HeaderPoint + 8, 8);
+ # AVI
+ if(/^AVI LIST$/) {
+ $Ext = 'avi';
+ }
+ if($ContentType =~ /^video\//i) {
+ $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')';
+ }
+ } elsif($$DATA =~ /^PK/) { # ZIP Compress File
+ $Ext = 'zip';
+ } elsif($$DATA =~ /^MSCF/) { # CAB Compress File
+ $Ext = 'cab';
+ } elsif($$DATA =~ /^Rar\!/) { # RAR Compress File
+ $Ext = 'rar';
+ } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) { # LHA Compress File
+ $Infomation .= "(lh$1)";
+ $Ext = 'lzh';
+ } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") {
+ # QuickTime
+ $Ext = 'mov';
+ }
+ }
+
+ # Header analysis failure
+ unless ($Ext) {
+ # It will be followed if it applies for the MIME type from the browser.
+ foreach (keys %UPLOAD_CONTENT_TYPE_LIST) {
+ next unless ($_);
+ if($ContentType =~ /^$_$/i) {
+ $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_};
+ $ContentName = &CheckContentExt($Ext);
+ if(
+ grep {$_ eq $Ext;} (
+ 'png',
+ 'gif',
+ 'jpg',
+ 'xbm',
+ 'tif',
+ 'bmp',
+ 'pdf',
+ 'swf',
+ 'mov',
+ 'zip',
+ 'cab',
+ 'lzh',
+ 'rar',
+ 'mid',
+ 'rmi',
+ 'au',
+ 'wav',
+ 'avi',
+ 'exe'
+ )
+ ) {
+ $Infomation .= ' / Header analysis failure';
+ }
+ if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) {
+ $Ext = $FileExt;
+ }
+ last;
+ }
+ }
+ # a MIME type is unknown--It judges from an extension.
+ unless ($Ext) {
+ $ContentName = &CheckContentExt($FileExt);
+ if($ContentName) {
+ $Ext = $FileExt;
+ $Infomation .= ' / MIME type is unknown('. $ContentType. ')';
+ last;
+ }
+ }
+ }
+
+# $ContentName = &CheckContentExt($Ext) unless($ContentName);
+# if($Ext && $ContentName) {
+# $ContentName .= $Infomation;
+# } else {
+# &upload_error(
+# 'Extension Error',
+# "$FileName A not corresponding extension ($Ext)<BR>The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST))
+# );
+# }
+
+# # SSI Tag Deletion
+# if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) {
+# foreach (
+# 'config',
+# 'echo',
+# 'exec',
+# 'flastmod',
+# 'fsize',
+# 'include'
+# ) {
+# $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig
+# }
+# }
+
+ return (
+ $FileName,
+ $Ext,
+ int($DataLength / 1024 + 1),
+ $ImageWidth,
+ $ImageHeight,
+ $ContentName
+ );
+}
+
+##############################################################################
+# Summary
+#
+# Extension discernment
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub CheckContentExt
+{
+
+ my($Ext) = @_;
+ my $ContentName;
+ foreach (keys %UPLOAD_EXT_LIST) {
+ next unless ($_);
+ if($_ && $Ext =~ /^$_$/) {
+ $ContentName = $UPLOAD_EXT_LIST{$_};
+ last;
+ }
+ }
+ return $ContentName;
+
+}
+
+##############################################################################
+# Summary
+#
+# Form decode
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+sub Encode
+{
+
+ my($value,$Trans) = @_;
+
+# my $FormCode = &jcode::getcode($value) || $FormCodeDefault;
+# $FormCodeDefault ||= $FormCode;
+#
+# if($Trans && $TRANS_2BYTE_CODE) {
+# if($FormCode ne 'euc') {
+# &jcode::convert($value, 'euc', $FormCode);
+# }
+# &jcode::tr(
+# $value,
+# "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA",
+# '0-9A-Za-z'
+# );
+# if($CHARCODE ne 'euc') {
+# &jcode::convert($value,$CHARCODE,'euc');
+# }
+# } else {
+# if($CHARCODE ne $FormCode) {
+# &jcode::convert($value,$CHARCODE,$FormCode);
+# }
+# }
+# if($CHARCODE eq 'euc') {
+# &jcode::h2z_euc($value);
+# } elsif($CHARCODE eq 'sjis') {
+# &jcode::h2z_sjis($value);
+# }
+
+}
+
+##############################################################################
+# Summary
+#
+# Error Msg
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub upload_error
+{
+
+ local($error_message) = $_[0];
+ local($error_message2) = $_[1];
+
+ print "Content-type: text/html\n\n";
+ print<<EOF;
+<HTML>
+<HEAD>
+<TITLE>Error Message</TITLE></HEAD>
+<BODY>
+<table border="1" cellspacing="10" cellpadding="10">
+ <TR bgcolor="#0000B0">
+ <TD bgcolor="#0000B0" NOWRAP><font size="-1" color="white"><B>Error Message</B></font></TD>
+ </TR>
+</table>
+<UL>
+<H4> $error_message </H4>
+$error_message2 <BR>
+</UL>
+</BODY>
+</HTML>
+EOF
+ &rm_tmp_uploaded_files; # Image Temporary deletion
+ exit;
+}
+
+##############################################################################
+# Summary
+#
+# Image Temporary deletion
+#
+# Parameters
+# Returns
+# Memo
+##############################################################################
+
+sub rm_tmp_uploaded_files
+{
+ if($img_data_exists == 1){
+ sleep 1;
+ foreach $fname_list(@NEWFNAMES) {
+ if(-e "$img_dir/$fname_list") {
+ unlink("$img_dir/$fname_list");
+ }
+ }
+ }
+
+}
+1;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/util.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/perl/util.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/perl/util.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,68 +1,66 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 File Manager Connector for Perl.
-#####
-
-sub RemoveFromStart
-{
- local($sourceString, $charToRemove) = @_;
- $sPattern = '^' . $charToRemove . '+' ;
- $sourceString =~ s/^$charToRemove+//g;
- return $sourceString;
-}
-
-sub RemoveFromEnd
-{
- local($sourceString, $charToRemove) = @_;
- $sPattern = $charToRemove . '+$' ;
- $sourceString =~ s/$charToRemove+$//g;
- return $sourceString;
-}
-
-sub ConvertToXmlAttribute
-{
- local($value) = @_;
- return $value;
-# return utf8_encode(htmlspecialchars($value));
-
-}
-
-sub specialchar_cnv
-{
- local($ch) = @_;
-
- $ch =~ s/&/&/g; # &
- $ch =~ s/\"/"/g; #"
- $ch =~ s/\'/'/g; # '
- $ch =~ s/</</g; # <
- $ch =~ s/>/>/g; # >
- return($ch);
-}
-
-sub JS_cnv
-{
- local($ch) = @_;
-
- $ch =~ s/\"/\\\"/g; #"
- return($ch);
-}
-
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 File Manager Connector for Perl.
+#####
+
+sub RemoveFromStart
+{
+ local($sourceString, $charToRemove) = @_;
+ $sPattern = '^' . $charToRemove . '+' ;
+ $sourceString =~ s/^$charToRemove+//g;
+ return $sourceString;
+}
+
+sub RemoveFromEnd
+{
+ local($sourceString, $charToRemove) = @_;
+ $sPattern = $charToRemove . '+$' ;
+ $sourceString =~ s/$charToRemove+$//g;
+ return $sourceString;
+}
+
+sub ConvertToXmlAttribute
+{
+ local($value) = @_;
+ return(&specialchar_cnv($value));
+}
+
+sub specialchar_cnv
+{
+ local($ch) = @_;
+
+ $ch =~ s/&/&/g; # &
+ $ch =~ s/\"/"/g; #"
+ $ch =~ s/\'/'/g; # '
+ $ch =~ s/</</g; # <
+ $ch =~ s/>/>/g; # >
+ return($ch);
+}
+
+sub JS_cnv
+{
+ local($ch) = @_;
+
+ $ch =~ s/\"/\\\"/g; #"
+ return($ch);
+}
+
+1;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/basexml.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/basexml.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/basexml.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -65,6 +65,9 @@
function SendError( $number, $text )
{
+ if ( $_GET['Command'] == 'FileUpload' )
+ SendUploadResults( $number, "", "", $text ) ;
+
if ( isset( $GLOBALS['HeaderSent'] ) && $GLOBALS['HeaderSent'] )
{
SendErrorNode( $number, $text ) ;
@@ -88,6 +91,9 @@
function SendErrorNode( $number, $text )
{
- echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
+ if ($text)
+ echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
+ else
+ echo '<Error number="' . $number . '" />' ;
}
?>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/commands.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/commands.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/commands.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -30,16 +30,18 @@
// Array that will hold the folders names.
$aFolders = array() ;
- $oCurrentFolder = opendir( $sServerDir ) ;
+ $oCurrentFolder = @opendir( $sServerDir ) ;
- while ( $sFile = readdir( $oCurrentFolder ) )
+ if ($oCurrentFolder !== false)
{
- if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
- $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+ while ( $sFile = readdir( $oCurrentFolder ) )
+ {
+ if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
+ $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+ }
+ closedir( $oCurrentFolder ) ;
}
- closedir( $oCurrentFolder ) ;
-
// Open the "Folders" node.
echo "<Folders>" ;
@@ -60,29 +62,34 @@
$aFolders = array() ;
$aFiles = array() ;
- $oCurrentFolder = opendir( $sServerDir ) ;
+ $oCurrentFolder = @opendir( $sServerDir ) ;
- while ( $sFile = readdir( $oCurrentFolder ) )
+ if ($oCurrentFolder !== false)
{
- if ( $sFile != '.' && $sFile != '..' )
+ while ( $sFile = readdir( $oCurrentFolder ) )
{
- if ( is_dir( $sServerDir . $sFile ) )
- $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
- else
+ if ( $sFile != '.' && $sFile != '..' )
{
- $iFileSize = @filesize( $sServerDir . $sFile ) ;
- if ( !$iFileSize ) {
- $iFileSize = 0 ;
- }
- if ( $iFileSize > 0 )
+ if ( is_dir( $sServerDir . $sFile ) )
+ $aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
+ else
{
- $iFileSize = round( $iFileSize / 1024 ) ;
- if ( $iFileSize < 1 ) $iFileSize = 1 ;
+ $iFileSize = @filesize( $sServerDir . $sFile ) ;
+ if ( !$iFileSize ) {
+ $iFileSize = 0 ;
+ }
+ if ( $iFileSize > 0 )
+ {
+ $iFileSize = round( $iFileSize / 1024 ) ;
+ if ( $iFileSize < 1 )
+ $iFileSize = 1 ;
+ }
+
+ $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
-
- $aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
+ closedir( $oCurrentFolder ) ;
}
// Send the folders
@@ -152,7 +159,7 @@
$sErrorNumber = '102' ;
// Create the "Error" node.
- echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
+ echo '<Error number="' . $sErrorNumber . '" />' ;
}
function FileUpload( $resourceType, $currentFolder, $sCommand )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/config.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/config.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/config.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -29,7 +29,6 @@
// authenticated users can access this file or use some kind of session checking.
$Config['Enabled'] = false ;
-
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/userfiles/' ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/connector.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/connector.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/connector.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/io.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/io.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/io.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -154,6 +154,8 @@
global $_SERVER;
}
$sRealPath = realpath( './' ) ;
+ // #2124 ensure that no slash is at the end
+ $sRealPath = rtrim($sRealPath,"\\/");
$sSelfPath = $_SERVER['PHP_SELF'] ;
$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ;
@@ -243,6 +245,9 @@
if ( strpos( $sCurrentFolder, '..' ) || strpos( $sCurrentFolder, "\\" ))
SendError( 102, '' ) ;
+ if ( preg_match(",(/\.)|[[:cntrl:]]|(//)|(\\\\)|([\:\*\?\"\<\>\|]),", $sCurrentFolder))
+ SendError( 102, '' ) ;
+
return $sCurrentFolder ;
}
@@ -277,40 +282,18 @@
// This is the function that sends the results of the uploading process.
function SendUploadResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
{
+ // Minified version of the document.domain automatic fix script (#1919).
+ // The original script can be found at _dev/domain_fix_template.js
echo <<<EOF
<script type="text/javascript">
-(function()
-{
- var d = document.domain ;
+(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
+EOF;
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
-
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\.|$)/, '' ) ;
-
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
+ if ($errorNumber && $errorNumber != 201) {
+ $fileUrl = "";
+ $fileName = "";
}
-})() ;
-EOF;
$rpl = array( '\\' => '\\\\', '"' => '\\"' ) ;
echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '") ;' ;
echo '</script>' ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/upload.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/upload.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/upload.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -43,7 +43,7 @@
// The file type (from the QueryString, by default 'File').
$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
-$sCurrentFolder = GetCurrentFolder() ;
+$sCurrentFolder = "/" ;
// Is enabled the upload?
if ( ! IsAllowedCommand( $sCommand ) )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/util.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/php/util.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/php/util.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/config.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/config.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/config.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
#!/usr/bin/env python
"""
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/connector.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/connector.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/connector.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -56,7 +56,10 @@
currentFolder = getCurrentFolder(self.request.get("CurrentFolder"))
# Check for invalid paths
if currentFolder is None:
- return self.sendError(102, "")
+ if (command == "FileUpload"):
+ return self.sendUploadResults( errorNo = 102, customMsg = "" )
+ else:
+ return self.sendError(102, "")
# Check if it is an allowed command
if ( not command in Config.ConfigAllowedCommands ):
@@ -79,7 +82,7 @@
# Ensure that the directory exists.
if not os.path.exists(self.userFilesFolder):
try:
- self.createServerFoldercreateServerFolder( self.userFilesFolder )
+ self.createServerFolder( self.userFilesFolder )
except:
return self.sendError(1, "This connector couldn\'t access to local user\'s files directories. Please check the UserFilesAbsolutePath in \"editor/filemanager/connectors/py/config.py\" and try again. ")
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckcommands.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/fckcommands.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckcommands.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -71,9 +71,13 @@
)
elif os.path.isfile(someObjectPath):
size = os.path.getsize(someObjectPath)
- files += """<File name="%s" size="%s" />""" % (
+ if size > 0:
+ size = round(size/1024)
+ if size < 1:
+ size = 1
+ files += """<File name="%s" size="%d" />""" % (
convertToXmlAttribute(someObject),
- os.path.getsize(someObjectPath)
+ size
)
# Close the folders / files node
folders += """</Folders>"""
@@ -163,7 +167,7 @@
newFilePath = os.path.join (currentFolderPath,newFileName)
if os.path.exists(newFilePath):
i += 1
- newFileName = "%s(%04d).%s" % (
+ newFileName = "%s(%d).%s" % (
newFileNameOnly, i, newFileExtension
)
errorNo= 201 # file renamed
@@ -189,10 +193,10 @@
os.chmod( newFilePath, permissions )
os.umask( oldumask )
- newFileUrl = self.webUserFilesFolder + currentFolder + newFileName
+ newFileUrl = combinePaths(self.webUserFilesFolder, currentFolder) + newFileName
return self.sendUploadResults( errorNo , newFileUrl, newFileName )
else:
- return self.sendUploadResults( errorNo = 203, customMsg = "Extension not allowed" )
+ return self.sendUploadResults( errorNo = 202, customMsg = "" )
else:
return self.sendUploadResults( errorNo = 202, customMsg = "No File" )
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckconnector.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/fckconnector.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckconnector.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckoutput.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/fckoutput.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckoutput.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -95,44 +95,21 @@
"""</Connector>""" )
def sendErrorNode(self, number, text):
- return """<Error number="%s" text="%s" />""" % (number, convertToXmlAttribute(text))
+ if number != 1:
+ return """<Error number="%s" />""" % (number)
+ else:
+ return """<Error number="%s" text="%s" />""" % (number, convertToXmlAttribute(text))
class BaseHtmlMixin(object):
def sendUploadResults( self, errorNo = 0, fileUrl = '', fileName = '', customMsg = '' ):
self.setHttpHeaders("text/html")
"This is the function that sends the results of the uploading process"
+
+ "Minified version of the document.domain automatic fix script (#1919)."
+ "The original script can be found at _dev/domain_fix_template.js"
return """<script type="text/javascript">
- (function()
- {
- var d = document.domain ;
+ (function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
- while ( true )
- {
- // Test if we can access a parent property.
- try
- {
- var test = window.top.opener.document.domain ;
- break ;
- }
- catch( e ) {}
-
- // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
- d = d.replace( /.*?(?:\.|$)/, '' ) ;
-
- if ( d.length == 0 )
- break ; // It was not able to detect the domain.
-
- try
- {
- document.domain = d ;
- }
- catch (e)
- {
- break ;
- }
- }
- })() ;
-
window.parent.OnUploadCompleted(%(errorNumber)s,"%(fileUrl)s","%(fileName)s","%(customMsg)s");
</script>""" % {
'errorNumber': errorNo,
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckutil.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/fckutil.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/fckutil.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -62,17 +62,17 @@
def sanitizeFolderName( newFolderName ):
"Do a cleanup of the folder name to avoid possible problems"
# Remove . \ / | : ? * " < > and control characters
- return re.sub( '(?u)\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[^\u0000-\u001f\u007f-\u009f]', '_', newFolderName )
+ return re.sub( '\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[\x00-\x1f\x7f-\x9f]', '_', newFolderName )
def sanitizeFileName( newFileName ):
"Do a cleanup of the file name to avoid possible problems"
# Replace dots in the name with underscores (only one dot can be there... security issue).
if ( Config.ForceSingleExtension ): # remove dots
- newFileName = re.sub ( '/\\.(?![^.]*$)/', '_', newFileName ) ;
+ newFileName = re.sub ( '\\.(?![^.]*$)', '_', newFileName ) ;
newFileName = newFileName.replace('\\','/') # convert windows to unix path
newFileName = os.path.basename (newFileName) # strip directories
# Remove \ / | : ? *
- return re.sub ( '(?u)/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[^\u0000-\u001f\u007f-\u009f]/', '_', newFileName )
+ return re.sub ( '\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[\x00-\x1f\x7f-\x9f]/', '_', newFileName )
def getCurrentFolder(currentFolder):
if not currentFolder:
@@ -92,6 +92,10 @@
if '..' in currentFolder or '\\' in currentFolder:
return None
+ # Check for invalid folder paths (..)
+ if re.search( '(/\\.)|(//)|([\\\\:\\*\\?\\""\\<\\>\\|]|[\x00-\x1F]|[\x7f-\x9f])', currentFolder ):
+ return None
+
return currentFolder
def mapServerPath( environ, url):
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/upload.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/upload.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/upload.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -41,7 +41,7 @@
command = 'QuickUpload'
# The file type (from the QueryString, by default 'File').
resourceType = self.request.get('Type','File')
- currentFolder = getCurrentFolder(self.request.get("CurrentFolder",""))
+ currentFolder = "/"
# Check for invalid paths
if currentFolder is None:
return self.sendUploadResults(102, '', '', "")
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/wsgi.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/wsgi.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/wsgi.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/zope.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/py/zope.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/py/zope.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/test.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/test.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/test.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/uploadtest.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/filemanager/connectors/uploadtest.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/filemanager/connectors/uploadtest.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckadobeair.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/js/fckadobeair.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckadobeair.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -167,8 +167,8 @@
FCK.StartEditor = function()
{
// Force pointing to the CSS files instead of using the inline CSS cached styles.
- window.FCK_InternalCSS = FCKConfig.FullBasePath + 'css/fck_internal.css' ;
- window.FCK_ShowTableBordersCSS = FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ;
+ window.FCK_InternalCSS = FCKConfig.BasePath + 'css/fck_internal.css' ;
+ window.FCK_ShowTableBordersCSS = FCKConfig.BasePath + 'css/fck_showtableborders_gecko.css' ;
_Original_FCK_StartEditor.apply( this, arguments ) ;
}
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/js/fckeditorcode_gecko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_gecko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -23,66 +23,66 @@
*/
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 && ( parseInt( s.match( /msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=6),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),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);
+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.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&&(parseInt(s.match(/msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false&&(parseInt(s.match(/msie (\d+)/)[1],10)>=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(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{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(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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.KeystrokeHand
ler=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('OnStatus
Change',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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!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 H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.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.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(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|OBJECT':'ABBR|XML|EMBED|OBJECT';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+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.Editor
Document=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();},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;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;
document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.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();FCKSelection.Restore();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'],true);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._IsFunctionKe
y(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.Ins
ertElementAndGetIt=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=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTool
s.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(FCKTools.GetElementDocument(D).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(ev
t){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;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};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);if (C.GetState()==-1) return false;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',FCKFocusManag
er_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 FCKFocusMa
nager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};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 (window.onresize) 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();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=FCKSelection.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'||String(H.parentNode.contentEditable)=='false'||(!(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._DblClickListene
r,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};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);}ca
tch (e) { FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};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();FCKDocumentProcessor.Process(FCK.EditorDocument);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.E
xecuteNamedCommand('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=FCKSelection.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.getElement
ById(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+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;
A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};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];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.Reg
exEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
-var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}};
-var FCKDomTools={MoveChildren:function(A,B,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().l
ength>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) retu
rn 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.attribut
es[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);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},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.Se
tEnd(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!=FCKTools.GetElementDocument(A).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.childNode
s.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=FCKTools.GetElementDocument(A[C].parent);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];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A
;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else 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(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);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);}};
-var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.]\w*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/css"
'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.]\w*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.
FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</
div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C
,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<
arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(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.Res
toreFormStyles=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.Norm
alizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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.KeystrokeHand
ler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) 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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.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.P
rotectEventsRestore(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.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAft
erSetHTML: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|OBJECT':'ABBR|XML|EMBED|OBJECT';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);};FCKTempBin.Reset();FCK.Selection.Release();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+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,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();},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;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._F
CKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.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 (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();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.createE
lement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);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.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{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.EnforcePadding
Node(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.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){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.E
ditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();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('Show
Blocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};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);if (C.GetState()==-1) return false;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){va
r 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;},ToHtml:function(){for (var i=0;i<this.Elements.length;i++){this.Elements[i]='<div> '+this.Elements[i].outerHTML+'</div>';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i<this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};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.Is
IE) 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 FCKFocusMa
nager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (window.onresize) 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();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=FCKSelection.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'||(!FCKBrowserInfo.IsOpera&&String(H.parentNode.contentEditable)=='false')||(!(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.s
etEnd(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('dblc
lick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){this.EditorDocument.addEventListener('dragover',function (evt){ if (!FCK.MouseDownFlag&&FCK.Config.ForcePasteAsPlainText) evt.returnValue=false;},true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var N=ev.srcElement;if (N.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(N);}},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.Is
Opera){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};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) {if (FCKConfig.ForcePasteAsPlainText) FCK.PasteAsPlainText();else FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){var B=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGecko){A=A.replace(/ $/,'$&<span _fcktemp="1"/>');var C=new FCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);var D=C.RootNode.lastChild;range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}else B.execCommand('inserthtml',false,A);this.Focus();if (!range){range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();};var
E=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch (e) {};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=[];if (FCKSelection.GetSelection().isCollapsed) return 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;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;i
f (A.firstChild) return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);var A=FCKSelection.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);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=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) { }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS
=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.push([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];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.push(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(inde
x):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
+var FCKDebug={Output:function(){},OutputObject:function(){}};
+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().l
ength>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) retu
rn 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.attribut
es[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);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},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.Se
tEnd(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!=FCKTools.GetElementDocument(A).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()*0xffffffff,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.childNod
es.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=FCKTools.GetElementDocument(A[C].parent);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(FCKConfi
g.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];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=
A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else 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||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E<G-D)) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&&D.lastChild) D=D.lastChild;D=
FCKDomTools.GetNextSourceNode(D);}while (E&&E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&&G.nodeName.IEquals('div')&&A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.][^{}]*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/c
ss"'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();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;};FCK
Tools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var
H="</div>";if (C){G="<li>";H="</li>";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode
(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=
0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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.docu
ment.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=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(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.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else if (FCKBrowserInfo.IsSafari) A.style.KhtmlUserSelect='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){if (!B) return null;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.RemoveOuter
Tags=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':var B=(new DOMParser()).parseFromString('<tmp></tmp>','text/xml');FCKDomTools.RemoveNode(B.firstChild);return B;};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.classNa
me;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 A.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.off
setParent) 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='window.FCKeditorAPI = {Version : "2.6",VersionBuild : "18638",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,'JavaSc
ript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(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=FCKeditorAPI.Instances;};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.AddEvent
Listener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : "2.6.4.1",VersionBuild : "23187",Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},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 : window.FCKeditorAPI && window.FCKeditorAPI._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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(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=FCKeditorAPI.Instances;};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.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function
FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();};
-var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBod
y:/></,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]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
+var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBod
y:/></,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,HtmlDocType:/DTD HTML/,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]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
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 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet: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','fr-ca':'French (Canada)',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.A
utoDetectLanguage){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.Defau
ltLanguage='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.IncludeLat
inEntities){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.Include
GreekEntities){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(FCKTools.GetElementDocument(A),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(FC
KRegexLib.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 (!FCKLists
Lib.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.createEleme
nt(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.len
gth>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:func
tion(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;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},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.toUpp
erCase()=='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 (new XMLSerializer()).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.Rege
x.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 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','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',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'},GetActiveLangua
ge: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.De
faultLanguage;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','>':'gt','Ë':'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.I
ncludeLatinEntities){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 (FCKConfi
g.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={'>':'gt'};A='>';A+='Â ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.E
ntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),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();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else 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._A
ppendEntity(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.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};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.toLowerCas
e()+':'+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) {};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.pu
sh(A)-1);};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.attribut
es.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);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B
.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},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.i
nnerHTML;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 (new XMLSerializer()).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;}};if (FCKBrowserInfo.IsGecko){FCKXHtml.TagProcessors['link']=function(A,B){if (B.href.substr(0,9).toLo
werCase()=='chrome://') return false;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|DL|DT|DD|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|DL|DT|DD|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|DL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \>]/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.push(C)-1)+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=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();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._CheckIsBookmarksE
qual=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);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.width=H.h
eight='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=I+A;H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(I+A);J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;(H.onreadystatechange=function(){if (H.readyState=='complete'){H.onreadystatechange=null;K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);}})();}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEdi
tingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;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';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKCo
nfig.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._FocusIE();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) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();
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=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);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 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.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.style.wid
th=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/<head>/i,'<head>'+I);H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(/<head>/i,'<head>'+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingAre
a=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;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;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execC
ommand('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._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Texta
rea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();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=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);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 tr
ue;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(){var 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,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},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,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);
var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElemen
t(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,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 Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStyl
esFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},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==nul
l||(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,true);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.Elemen
t){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||((B===null||B==='')&&(C===null||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;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<BR>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<BR />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!
isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='<BR />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<PRE>\n'+F.join('')+'</PRE>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H=[];var I=[];while((F=E.GetNextParagraph())){var J=this.BuildElement(G);var K=J.nodeName.IEquals('pre');var L=F.nodeName.IEquals('pre');if (K&&!L){J=this._ToPre(G,F,J);H.push(J);}else if (!K&&L){J=this._FromPre(G,F,J);I.push(J);}else FCKDomTools.MoveChildren(F,J);F.parentNode.insertBefore(J,F);FCKDomTools.RemoveNode(F);};for (var i=0;i<H.length-1;i++){if (FCKDomTools.GetNextSourceElement(H[i],true,[],[],true)!=H[i+1]) continue;H[i+1].innerHTML=H[i].innerHTML+'\n\n'+H[i+1].innerHTML;FCKDomTools.RemoveNode(H[i]);};for (var i=0
;i<I.length;i++){var M=I[i];var N=null;for (var j=0;j<M.childNodes.length;j++){var O=M.childNodes[j];if (O.nodeName.IEquals('br')&&j!=0&&j!=M.childNodes.length-2&&O.nextSibling&&O.nextSibling.nodeName.IEquals('br')){FCKDomTools.RemoveNode(O.nextSibling);FCKDomTools.RemoveNode(O);j--;N=FCKDomTools.InsertAfterNode(N||M,G.createElement(M.nodeName));continue;};if (N){FCKDomTools.MoveNode(O,N);j--;}}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||
G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) F
CKDomTools.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._CreateElementAttribsFor
Comparison(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) r
eturn 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 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,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},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,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);
var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElemen
t(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,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 Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStyl
esFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},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==nul
l||(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,true);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.Elemen
t){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||((B===null||B==='')&&(C===null||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;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<br>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<br />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!
isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='<br />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<pre>\n'+F.join('')+'</pre>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='<pre>'+C+'</pre>';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_ApplyBlockStyl
e:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(tru
e);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_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.getAttri
bute('_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,'_lengt
h');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!=FCK
DomTools.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 (G!=(F._LastState||null)){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;},_GetRemoveForm
atTagsRegex: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.nodeNam
e)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);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(fals
e);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 (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i<count;i++){var C=B[i];if (C.nodeType==1&&FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
-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;};return null;},CheckIsCollapsed:
function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},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;va
r 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.c
hildNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' '
;F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.no
deType==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.len
gth){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._Rang
e.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(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B)
;};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.S
tartNode=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;}};
+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=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;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=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateEleme
ntInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createE
lement('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._Ran
ge.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone
();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previo
usSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&C.nodeType==3&&E.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.do
cument,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.setEndBe
fore(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.StartBlo
ck&&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(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (thi
s.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.do
cument.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},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;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=H;};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;K=true;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.W
indow.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;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);};if (!this._NextNode) 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 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;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null
,I)||H;};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;K=true;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;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);};if (!this._NextNode) 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);},AppendHtml:function(A){var B=this.RootNode.ownerDocument.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,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.Get
IndexOf(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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));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!=to
pEnd) 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.clon
eNode(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.GetPreviousSourceE
lement(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.E
mptyElements[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._ExecuteBacksp
ace(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(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){
if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).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){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(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.documen
t.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=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).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.cloneNod
e(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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew()
,{ProcessDocument:function(doc){FCKTools.RunFunction(function(){var F=doc.getElementsByTagName('object');for (var i=F.length-1;i>=0;i--) B(F[i]);var G=doc.getElementsByTagName('embed');for (var i=G.length-1;i>=0;i--) B(G[i]);});},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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.getE
lementsByTagName('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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});
+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'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};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.EnterMod
e;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;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock
;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}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.IsGe
ckoLike)){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(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomT
ools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).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){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.
toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML=' ';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,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);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._O
utdentWithSelection=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.push(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'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 FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTa
gName(elementName);for (var i=G.length-1;i>=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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.Appen
dNew().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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-styl
e-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
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=this.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=!!FCK.EditorWindow&&this.GetSelection();if (!A||A.rangeCount<1) return null;var B=A.getRangeAt(0);if (B.startContainer!=B.endContainer||B.startContainer.nodeType!=1||B.startOffset!=B.endOffset-1) return null;var C=B.startContainer.childNodes[B.startOffset];if (C.nodeType!=1) return null;return C;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=this.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=this.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=this.GetSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=this.GetSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();i
f (!B&&FCK.EditorWindow){try { B=this.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=this.GetSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=this.GetSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};FCKSelection.GetSelection=function(){return FCK.EditorWindow.getSelection();};FCKSelection.Save=function(){};FCKSelection.Restore=function(){};FCKSelection.Release=function(){};
-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.InsertC
olumn=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{f
or (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=FCKTools.GetElementDocument(B).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.ap
pendChild(FCKTools.GetElementDocument(B).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=FCKTools.GetElementDocument(B).creat
eDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).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=FCKTools.GetElementDocument(B).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(FCKTools.GetElementDocument(B).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=FCKTools.GetElementDocument(B).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=FCKSelection.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;};
+FCKSelection.GetType=function(){var A='Text';var B;try { B=this.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=!!FCK.EditorWindow&&this.GetSelection();if (!A||A.rangeCount<1) return null;var B=A.getRangeAt(0);if (B.startContainer!=B.endContainer||B.startContainer.nodeType!=1||B.startOffset!=B.endOffset-1) return null;var C=B.startContainer.childNodes[B.startOffset];if (C.nodeType!=1) return null;return C;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=this.GetSelection();if (A){if (A.anchorNode&&A.anchorNode==A.focusNode){var B=A.getRangeAt(0);if (B.collapsed||B.startContainer.nodeType==3)
return A.anchorNode.parentNode;else return A.anchorNode;};var C=new FCKElementPath(A.anchorNode);var D=new FCKElementPath(A.focusNode);var E=null;var F=null;if (C.Elements.length>D.Elements.length){E=C.Elements;F=D.Elements;}else{E=D.Elements;F=C.Elements;};var G=E.length-F.length;for(var i=0;i<F.length;i++){if (E[G+i]==F[i]) return F[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=this.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=this.GetSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=this.GetSelection();if (A==null||A===true) B.collapseToStart();els
e B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=this.GetSelection().getRangeAt(0).startContainer;}catch(e){}}while (B){if (B.nodeType==1&&B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=this.GetSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName.IEquals(A)) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=this.GetSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};FCKSelection.GetSelection=function(){return FCK.EditorWindow.getSelection();};FCKSelection.Save=function(){};FCKSelection.Restore=function(){};FCKSelection.Release=function(){};
+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=B[i].parentNode;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];F.insertBefore(B,(A?G:G.nextSibling));}};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(A.parentNode);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++){FCKDomTools.ClearElementJSProperty(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;for (var i=0;i<A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);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);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=FCKTools.GetElementDocument(B).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(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(
C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.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.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=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.
appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.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);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=FCK.EditorDocument.createElement(B.nodeName);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(FCK.EditorDocument.crea
teElement(B.nodeName));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.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G>1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i<I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.Ed
itorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length>L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i<C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O<1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};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._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i<C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j<C[i].cells
.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H<G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I<F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?"_fckrowspan":"rowSpan";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[C]=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[C]++;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];FCKDomT
ools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i<A.length;i++){var I=FCK.EditorDocument.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);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[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];v
ar C=this._CreateTableMap(B);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);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;if (B.parentNode.parentNode!=G.parentNode.parentNode) 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=FCKSelection.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.nodeName.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;var C=FCKTools.CreateXmlObject('XmlHttp');C.open('GET',A,false);C.send(null);if (C.status==200||C.status==304) B=C.responseXML;else if (C.status==0&&C.readyState==4) B=C.responseXML;else B=null;if (B){try{var D=B.firstChild;}catch (e){B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}};if (!B||!B.firstChild){this.Error=true;if (window.confirm('Error loading "'+A+'" (HTTP Status: '+C.status+').\r\nDo you want to see the server response dump?')) alert(C.responseText);};this.DOMDocument=B;},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.DOMDoc
ument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}};
+FCKXml.prototype={LoadUrl:function(A){this.Error=false;var B;var C=FCKTools.CreateXmlObject('XmlHttp');C.open('GET',A,false);C.send(null);if (C.status==200||C.status==304||(C.status==0&&C.readyState==4)){B=C.responseXML;if (!B) B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}else B=null;if (B){try{var D=B.firstChild;}catch (e){B=(new DOMParser()).parseFromString(C.responseText,'text/xml');}};if (!B||!B.firstChild){this.Error=true;if (window.confirm('Error loading "'+A+'" (HTTP Status: '+C.status+').\r\nDo you want to see the server response dump?')) alert(C.responseText);};this.DOMDocument=B;},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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
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.EditMode!=0||!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,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};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:'F
ontName',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(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=functio
n(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;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;};retur
n 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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=func
tion(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1: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(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};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:'F
ontName',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(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=functio
n(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;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;};retur
n A;};var FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.E
xecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1: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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i<A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml(' ');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+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';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};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&&th
is.GetState()!=this._SavedState) this.Execute();};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker!='ieSpell');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,480);}};FCKSpellCheckCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);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');};FCKTextColorCo
mmand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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',410,320,FCKTools.Bind(B,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;};v
ar 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="backgrou
nd-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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
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 'TableHorizo
ntalSplitCell':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.frame
Element.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+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;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&&[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};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.ov
erflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.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.G
etItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};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_L
istGroupObject) 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=FCKSelection.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.IEqu
als(['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=FCKTools.GetElementDocument(A.root).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=FCKTools.GetElementDocument(A.root);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]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};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.IsDefa
ultAlign)||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;}},_IndentBloc
k:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;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.In
sertNode(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=FCKTools.GetElementDocument(H).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=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).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(FCKTools.GetElementDocument(S).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 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){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.appen
dChild(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();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;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=FCKTools.GetElementDocument(H).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=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('bl
ockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&&R&&!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i<N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length>0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i>=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M
=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&&W.previousSibling&&!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&&c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&&!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=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(){if (FCK.EditMode!=0) return -1;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,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand()
;break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);brea
k;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,240);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=ne
w 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('TableInser
tColumnAfter');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,210);break;case 'Checkbox':B=new FCKDialogComman
d('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoComman
d();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.width=D.height=0;FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base href="'+window.document.location+'">';B.op
en();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'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 (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);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.GetDocumentPo
sition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(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;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.width=N;M._IFrame.height=O;},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnSh
ow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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.HasF
ocus=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 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,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'VisitLink':B=new FCKVisitLinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break
;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCh
arTitle,'dialog/fck_specialchar.html',400,290);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,240);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 'Nbsp':B=new FCKNbsp();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 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html
',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();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('TableMergeDo
wn');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,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,
210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);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 FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);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.rep
lace(/%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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base hr
ef="'+window.document.location+'">';B.open();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'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.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&&C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else
{this.Subpanel=A;if ((this.IncreasedX>=B)&&(this.IncreasedY>=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};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 (FCKBrowserInfo.IsIE7){if (this.ParentPanel&&this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this
.IncreasedY=0;this.RelativeElement=A;};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 (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);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.firstC
hild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(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;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceOb
ject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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 FCKPane
l_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;if (this._Popup&&this.ParentPanel&&!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=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;};functio
n 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=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButto
n.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);};
@@ -93,16 +93,16 @@
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.StyleC
ombo_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;this.RegisterPanel(B);};FCKToolbarPanelButton.prototype.RegisterPanel=function(A){if (A._FCKToolbarPanelButton) return;A._FCKToolbarPanelButton=this;var B=A.Document.body.appendChild(A.Document.createElement('div'));B.style.position='absolute';B.style.top='0px';var C=A._FCKToolbarPanelButtonLineDiv=B.appendChild(A.Document.createElement('IMG'));C.className='TB_ConnectionLine';C.st
yle.position='absolute';C.src=FCK_SPACER_PATH;A.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName);var D=C._Panel;D._FCKToolbarPanelButtonLineDiv.style.width=(e.offsetWidth-2)+'px';C.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',FCKL
ang.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,t
rue,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;cas
e '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 'TextCol
or':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 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',FCKL
ang.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,t
rue,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;cas
e '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 'CreateDiv':B=new FCKToolbarButton('CreateDiv',FCKLang.CreateDiv,null,null,false,true,74);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('SpecialCh
ar',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 FC
KToolbarFontSizeCombo();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.H
iddenField,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;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){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else 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.locati
on+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange < currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FC
KToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;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 (!FCK
Config.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.Item
sWysiwygOnly=[];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=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};var I=function(element){element.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var J={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.Toolbar
Set.CurrentInstance.Selection.Save();var K=FCKTools.GetViewPaneSize(D);var L=FCKTools.GetScrollPosition(D);var M=Math.max(L.Y+(K.Height-height-20)/2,0);var N=Math.max(L.X+(K.Width-width-20)/2,0);var O=E.createElement('iframe');I(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':'absolute','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=J;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');I(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px'
,'left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');I(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();},GetCover:function(){return C;}};})();
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKB
rowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position'
:'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:f
unction(){return C;}};})();
var FCKMenuItem=function(A,B,C,D,E,F){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);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};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.Activ
ate();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,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};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.SkinEditorCSS);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){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw
=true;return F;};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_Ove
rrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);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;}};return true;};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 (FCKBrow
serInfo.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=='TABL
E');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.Ed
itLink,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=='c
heckbox'){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.AddSepa
rator();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.Co
ntextMenu.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(A.CustomData);};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw
=true;return F;};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){if (FCKConfig.BrowserContextMenu) return true;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;if (FCKConfig.BrowserContextMenu) return true;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=FCKTools.GetElementDocument(e.target);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){if (FCKConfig.BrowserContextMenu) return true;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;}};return true;};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if ((B.CtrlDisable&&(A.ctrlKey||A.metaKey))||FCKConfig.BrowserContextMenu) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Coun
t()==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=='TABL
E');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();menu.AddItem('VisitLink',FCKLang.Visi
tLink);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 {AddIte
ms: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);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDi
v,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};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){if (!FCKBrowserInfo.IsIE) FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
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;};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/js/fckeditorcode_ie.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/js/fckeditorcode_ie.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -23,67 +23,67 @@
*/
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 && ( parseInt( s.match( /msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/)[1],10)>=6),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),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);
+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.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||(FCKConfig.MsWebBrowserControlCompat&&!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&&(parseInt(s.match(/msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false&&(parseInt(s.match(/msie (\d+)/)[1],10)>=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(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{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(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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.KeystrokeHand
ler=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('OnStatus
Change',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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!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 H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.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.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(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|OBJECT':'ABBR|XML|EMBED|OBJECT';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+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.Editor
Document=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();},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;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;
document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.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();FCKSelection.Restore();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'],true);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._IsFunctionKe
y(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.Ins
ertElementAndGetIt=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=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTool
s.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(FCKTools.GetElementDocument(D).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(ev
t){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;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};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);if (C.GetState()==-1) return false;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',FCKFocusManag
er_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 FCKFocusMa
nager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};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.at
tachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&&FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));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("ondbl
click",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};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=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__" style="display:none;">fakeFCKRemove</span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__"> </div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(F
CKConfig.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._CheckIsPastingEna
bled()){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;};function _FCK_R
emoveDisabledAtt(){this.removeAttribute('disabled');};function Doc_OnMouseDown(A){var e=A.srcElement;if (e.nodeName.IEquals('input')&&e.type.IEquals(['radio','checkbox'])&&!e.disabled){e.disabled=true;FCKTools.SetTimeout(_FCK_RemoveDisabledAtt,1,e);}};
-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.getElement
ById(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+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;
A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};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];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.Reg
exEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
-var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}};
-var FCKDomTools={MoveChildren:function(A,B,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().l
ength>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) retu
rn 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.attribut
es[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);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},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.Se
tEnd(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!=FCKTools.GetElementDocument(A).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.childNode
s.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=FCKTools.GetElementDocument(A[C].parent);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];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A
;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else 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(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);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);}};
-var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.]\w*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/css"
'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.]\w*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.
FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var H="</
div>";if (C){G="<li>";H="</li>";F=1;};while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode(A,C
,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<
arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(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.Res
toreFormStyles=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.Norm
alizeCssText=function(A){var B=document.createElement('span');B.style.cssText=A;return B.style.cssText;};FCKTools.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};
-FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;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':try { return new XMLHttpRequest();} catch (e) {};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.DisableSele
ction=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,Heigh
t: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='window.FCKeditorAPI = {Version : "2.6",VersionBuild : "18638",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,'JavaSc
ript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if(FCKBrowserInfo.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(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=FCKeditorAPI.Instances;};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.AddEvent
Listener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),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.KeystrokeHand
ler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) 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:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.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.P
rotectEventsRestore(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.toUpperCase()];if (B){for (var i=0;i<B.length;i++) B[i](A);};B=FCK.RegisteredDoubleClickHandlers['*'];if (B){for (var i=0;i<B.length;i++) B[i](A);}},RegisterDoubleClickHandler:function(A,B){var C=B||'*';C=C.toUpperCase();var D;if (!(D=FCK.RegisteredDoubleClickHandlers[C])) FCK.RegisteredDoubleClickHandlers[C]=[A];else{if (D.IndexOf(A)==-1) D.push(A);}},OnAft
erSetHTML: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|OBJECT':'ABBR|XML|EMBED|OBJECT';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);};FCKTempBin.Reset();FCK.Selection.Release();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+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,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();},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;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body'+FCKConfig.GetBodyAttributes()+'>'+FCK.GetXHTML()+'</body></html>';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._F
CKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.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 (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();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.createE
lement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);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.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{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.EnforcePadding
Node(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.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){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.E
ditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();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('Show
Blocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};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);if (C.GetState()==-1) return false;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){va
r 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;},ToHtml:function(){for (var i=0;i<this.Elements.length;i++){this.Elements[i]='<div> '+this.Elements[i].outerHTML+'</div>';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i<this.Elements.length;i++){if (this.Elements[i].isHtml){A.innerHTML=this.Elements[i];this.Elements[i]=A.firstChild.removeChild(A.firstChild.lastChild);}}}};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.Is
IE) 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 FCKFocusMa
nager_Win_OnFocus_Area(){if (FCKFocusManager._IsFocusing) return;FCKFocusManager._IsFocusing=true;FCK.Focus();FCKFocusManager_Win_OnFocus();FCKTools.RunFunction(function(){delete FCKFocusManager._IsFocusing;});};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};(function(){var A=window.frameElement;var B=A.width;var C=A.height;if (/^\d+$/.test(B)) B+='px';if (/^\d+$/.test(C)) C+='px';var D=A.style;D.border=D.padding=D.margin=0;D.backgroundColor='transparent';D.backgroundImage='none';D.width=B;D.height=C;})();
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.BasePath;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.attach
Event('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&&FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));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("ondblclic
k",Doc_OnDblClick);this.EditorDocument.attachEvent("onbeforedeactivate",function(){ FCKSelection.Save();});this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKSelection.Restore();FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A='<span id="__fakeFCKRemove__" style="display:none;">fakeFCKRemove</span>'+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__"> </div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};fu
nction 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.GetClipboardHT
ML=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;};function _FCK_RemoveDisabledAtt(){this.removeAttribute('disabled');};function Doc_OnMouseDown(A){var e=A.srcElement;if (e.nodeName.IEquals('input')&&e.type.IEquals(['radio','checkbox'])&&!e.disabled){e.disabled=true;FCKTools.SetTimeout(_FCK_RemoveDisabledAtt,1,e);}};
+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);}else FCKConfig.BasePath=document.location.protocol+'//'+document.location.host+document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=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) { }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS
=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.push([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];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.push(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(inde
x):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};var D=new RegExp("(<|<)!--\\{"+this._CodeTag+"(\\d+)\\}--(>|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;};
+var FCKDebug={Output:function(){},OutputObject:function(){}};
+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().l
ength>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) retu
rn 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.attribut
es[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);},RemoveAttributes:function (A,B){for (var i=0;i<B.length;i++) this.RemoveAttribute(A,B[i]);},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.Se
tEnd(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!=FCKTools.GetElementDocument(A).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()*0xffffffff,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.childNod
es.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=FCKTools.GetElementDocument(A[C].parent);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(FCKConfi
g.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];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=
A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else 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||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E<G-D)) C.scrollTo(0,E);},CheckIsEditable:function(A){var B=A.nodeName.toLowerCase();var C=FCK.DTD[B]||FCK.DTD.span;return (C['#']&&!FCKListsLib.NonEditableElements[B]);},GetSelectedDivContainers:function(){var A=[];var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.GetTouchedStartNode();var D=B.GetTouchedEndNode();var E=C;if (C==D){while (D.nodeType==1&&D.lastChild) D=D.lastChild;D=
FCKDomTools.GetNextSourceNode(D);}while (E&&E!=D){if (E.nodeType!=3||!/^[ \t\n]*$/.test(E.nodeValue)){var F=new FCKElementPath(E);var G=F.BlockLimit;if (G&&G.nodeName.IEquals('div')&&A.IndexOf(G)==-1) A.push(G);};E=FCKDomTools.GetNextSourceNode(E);};return A;}};
+var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.FixCssUrls=function(A,B){if (!A||A.length==0) return B;return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(match,opener,path,closer){if (/^\/|^\w?:/.test(path)) return match;else return 'url('+opener+A+path+closer+')';});};FCKTools._GetUrlFixedCss=function(A,B){var C=A.match(/^([^|]+)\|([\s\S]*)/);if (C) return FCKTools.FixCssUrls(C[1],C[2]);else return A;};FCKTools.AppendStyleSheet=function(A,B){if (!B) return [];if (typeof(B)=='string'){if (/[\\\/\.][^{}]*$/.test(B)){return this.AppendStyleSheet(A,B.split(','));}else return [this.AppendStyleString(A,FCKTools._GetUrlFixedCss(B))];}else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetStyleHtml=(function(){var A=function(styleDef,markTemp){if (styleDef.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<style type="text/c
ss"'+B+'>'+styleDef+'</style>';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '<link href="'+cssFileUrl+'" type="text/css" rel="stylesheet" '+B+'/>';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i<cssFileOrArrayOrDef.length;i++) E+=C(cssFileOrArrayOrDef[i],markTemp);return E;}}})();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;};FCK
Tools.FixDocumentParentWindow=function(A){if (A.document) A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&');A=A.replace(/</g,'<');A=A.replace(/>/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="<p>";var H="</p>";var I="<br />";if (C){G="<li>";H="</li>";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};var n=B.charAt(i+1);if (n=='\r'){i++;n=B.charAt(i+1);};if (n=='\n'){i++;if (F) E.push(H);E.push(G);F=1;}else E.push(I);}};FCKTools._ProcessLineBreaksForDivMode=function(A,B,C,D,E){var F=0;var G="<div>";var
H="</div>";if (C){G="<li>";H="</li>";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='div'){F=1;break;};D=D.parentNode;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F){if (E[E.length-1]==G){E.push(" ");};E.push(H);};E.push(G);F=1;};if (F) E.push(H);};FCKTools._ProcessLineBreaksForBrMode=function(A,B,C,D,E){var F=0;var G="<br />";var H="";if (C){G="<li>";H="</li>";F=1;};for (var i=0;i<B.length;i++){var c=B.charAt(i);if (c=='\r') continue;if (c!='\n'){E.push(c);continue;};if (F&&H.length) E.push (H);E.push(G);F=1;}};FCKTools.ProcessLineBreaks=function(A,B,C){var D=B.EnterMode.toLowerCase();var E=[];var F=0;var G=new A.FCKDomRange(A.FCK.EditorWindow);G.MoveToSelection();var H=G._Range.startContainer;while (H&&H.nodeType!=1) H=H.parentNode;if (H&&H.tagName.toLowerCase()=='li') F=1;if (D=='p') this._ProcessLineBreaksForPMode(A,C,F,H,E);else if (D=='div') this._ProcessLineBreaksForDivMode
(A,C,F,H,E);else if (D=='br') this._ProcessLineBreaksForBrMode(A,C,F,H,E);return E.join("");};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=
0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||(FCKBrowserInfo.IsSafari?'CSS1Compat':null)));};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.docu
ment.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=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(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.Bind=function(A,B){return function(){ return B.apply(A,arguments);};};FCKTools.GetVoidUrl=function(){if (FCK_IS_CUSTOM_DOMAIN) return "javascript: void( function(){document.open();document.write('<html><head><title></title></head><body></body></html>');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;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':if (document.location.protocol!='file:') try { return new XMLHttpRequest();} catch (e) {};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='window.FCKeditorAPI = {Version : "2.6.4.1",VersionBuild : "23187",Instances : window.FCKeditorAPI && window.FCKeditorAPI.Instances || {},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 : window.FCKeditorAPI && window.FCKeditorAPI._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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(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=FCKeditorAPI.Instances;};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.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function
FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup);
var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');FCKTools.AddEventListenerEx(B,'load',_FCKImagePreloader_OnImage,this);FCKTools.AddEventListenerEx(B,'error',_FCKImagePreloader_OnImage,this);B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(A,B){if ((--B._PreloadCount)==0&&B.OnComplete) B.OnComplete();};
-var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBod
y:/></,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]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
+var FCKRegexLib={AposEntity:/'/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BeforeBody:/(^[\s\S]*\<body[^\>]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HasBodyTag:/<body[\s|>]/i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBod
y:/></,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,HtmlDocType:/DTD HTML/,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]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/};
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 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet: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','fr-ca':'French (Canada)',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.A
utoDetectLanguage){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.Defau
ltLanguage='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.IncludeLat
inEntities){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.Include
GreekEntities){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(FCKTools.GetElementDocument(A),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(FC
KRegexLib.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 (!FCKLists
Lib.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.createEleme
nt(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.len
gth>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:func
tion(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;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},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.toUpp
erCase()=='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.c
reateDocumentFragment();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.Rege
x.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 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','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',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'},GetActiveLangua
ge: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.De
faultLanguage;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','>':'gt','Ë':'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.I
ncludeLatinEntities){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 (FCKConfi
g.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={'>':'gt'};A='>';A+='Â ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.E
ntitiesRegex=new RegExp(C,'g');};
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),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();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else 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._A
ppendEntity(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.hasAttribute('_moz_editor_bogus_node')||B.getAttribute('type')=='_moz')){if (B.nextSibling) return false;else{B.removeAttribute('_moz_editor_bogus_node');B.removeAttribute('type');}};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.toLowerCas
e()+':'+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) {};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.pu
sh(A)-1);};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.attribut
es.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);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B
.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},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.i
nnerHTML;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,bHasStyle;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'){bHasStyle=true;continue;}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);}};if (bHasStyle||B.style.cssText.length>0){var I=FCKTools.ProtectFormStyles(B);var J=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);this._AppendAttribute(C,'style',J);}};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChild
Nodes(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['ma
p']=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|DL|DT|DD|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|DL|DT|DD|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|DL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL|DL)[ \>]/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.push(C)-1)+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=0;FCKUndo.Changed=false;FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveLocked=false;FCKUndo._GetBookmark=function(){FCKSelection.Restore();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._CheckIsBookmarksE
qual=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);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.width=H.h
eight='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=I+A;H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(I+A);J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;(H.onreadystatechange=function(){if (H.readyState=='complete'){H.onreadystatechange=null;K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);}})();}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEdi
tingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;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';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKCo
nfig.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._FocusIE();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) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();
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=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);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 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.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A='<script>document.domain="'+FCK_RUNTIME_DOMAIN+'";</script>'+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='<br type="_moz">';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='<script type="text/javascript" _fcktemp="true">window.onerror=function(){return true;};</script>';H.frameBorder=0;H.style.wid
th=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(/<head>/i,'<head>'+I);H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(/<head>/i,'<head>'+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingAre
a=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;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;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execC
ommand('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._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Texta
rea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();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=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);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 tr
ue;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(){var 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,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},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,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);
var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElemen
t(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,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 Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStyl
esFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},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==nul
l||(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,true);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.Elemen
t){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||((B===null||B==='')&&(C===null||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;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<BR>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<BR />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!
isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='<BR />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<PRE>\n'+F.join('')+'</PRE>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H=[];var I=[];while((F=E.GetNextParagraph())){var J=this.BuildElement(G);var K=J.nodeName.IEquals('pre');var L=F.nodeName.IEquals('pre');if (K&&!L){J=this._ToPre(G,F,J);H.push(J);}else if (!K&&L){J=this._FromPre(G,F,J);I.push(J);}else FCKDomTools.MoveChildren(F,J);F.parentNode.insertBefore(J,F);FCKDomTools.RemoveNode(F);};for (var i=0;i<H.length-1;i++){if (FCKDomTools.GetNextSourceElement(H[i],true,[],[],true)!=H[i+1]) continue;H[i+1].innerHTML=H[i].innerHTML+'\n\n'+H[i+1].innerHTML;FCKDomTools.RemoveNode(H[i]);};for (var i=0
;i<I.length;i++){var M=I[i];var N=null;for (var j=0;j<M.childNodes.length;j++){var O=M.childNodes[j];if (O.nodeName.IEquals('br')&&j!=0&&j!=M.childNodes.length-2&&O.nextSibling&&O.nextSibling.nodeName.IEquals('br')){FCKDomTools.RemoveNode(O.nextSibling);FCKDomTools.RemoveNode(O);j--;N=FCKDomTools.InsertAfterNode(N||M,G.createElement(M.nodeName));continue;};if (N){FCKDomTools.MoveNode(O,N);j--;}}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||
G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) F
CKDomTools.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._CreateElementAttribsFor
Comparison(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) r
eturn 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 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,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},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,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);
var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i<I.Elements.length;i++){var O=I.Elements[i];if (this.CheckElementRemovable(O)){if (L&&!FCKDomTools.CheckIsEmptyElement(O,function(el){return (el!=H);})){M=O;N=J.length-1;}else{var P=O.nodeName.toLowerCase();if (P==this.Element){for (var Q in E){if (FCKDomTools.HasAttribute(O,Q)){switch (Q){case 'style':this._RemoveStylesFromElement(O);break;case 'class':if (FCKDomTools.GetAttributeValue(O,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(O,Q);}}}};this._RemoveOverrides(O,F[P]);if (this.GetType()==1) this._RemoveNoAttribElement(O);}}else if (L) J.push(O);L=L&&((K&&!FCKDomTools.GetNextSibling(O))||(!K&&!FCKDomTools.GetPreviousSibling(O)));if (M&&(!L||(i==I.Elements.length-1))){var R=FCKDomTools.RemoveNode(H);for (var j=0;j<=N;j++){var S=FCKDomTools.CloneElemen
t(J[j]);S.appendChild(R);R=S;};if (K) FCKDomTools.InsertAfterNode(M,R);else M.parentNode.insertBefore(R,M);L=false;M=null;}};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);return;};A.Expand('inline_elements');D=A.CreateBookmark(true);var T=A.GetBookmarkNode(D,true);var U=A.GetBookmarkNode(D,false);A.Release(true);var I=new FCKElementPath(T);var X=I.Elements;var O;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(T,O,A);};I=new FCKElementPath(U);X=I.Elements;for (var i=1;i<X.length;i++){O=X[i];if (O==I.Block||O==I.BlockLimit) break;b=O.nodeName.toLowerCase();if (this.CheckElementRemovable(O)) FCKDomTools.BreakParent(U,O,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 Q in E){if (FCKDomTools.HasAttribute(Z,Q)){switch (Q){case 'style':this._RemoveStyl
esFromElement(Z);break;case 'class':if (FCKDomTools.GetAttributeValue(Z,Q)!=this.GetFinalAttributeValue(Q)) continue;default:FCKDomTools.RemoveAttribute(Z,Q);}}}}else c=!!F[b];if (c){this._RemoveOverrides(Z,F[b]);this._RemoveNoAttribElement(Z);}};if (a==U) break;Z=a;};this._FixBookmarkStart(T);if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},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==nul
l||(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,true);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.Elemen
t){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||((B===null||B==='')&&(C===null||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;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'<br>');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'<br />');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!
isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='<br />') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='<pre>\n'+F.join('')+'</pre>';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='<pre>'+C+'</pre>';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_ApplyBlockStyl
e:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(tru
e);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_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.getAttri
bute('_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,'_lengt
h');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!=FCK
DomTools.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 (G!=(F._LastState||null)){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;},_GetRemoveForm
atTagsRegex: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.nodeNam
e)) FCKDomTools.RemoveNode(I,true);else FCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);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(fals
e);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 (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i<count;i++){var C=B[i];if (C.nodeType==1&&FCKListsLib.BlockElements[C.nodeName.toLowerCase()]) return true;};return false;};
-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;};return null;},CheckIsCollapsed:
function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},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;va
r 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.c
hildNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' '
;F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;};while (C&&C.no
deType==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.len
gth){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._Rang
e.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(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B)
;};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.S
tartNode=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;}};
+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=new FCKElementPath(B);this.StartNode=B.nodeType==3?B:B.childNodes[A.startOffset];this.StartContainer=B;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A.collapsed){this.EndNode=this.StartNode;this.EndContainer=this.StartContainer;this.EndBlock=this.StartBlock;this.EndBlockLimit=this.StartBlockLimit;}else{var D=A.endContainer;if (B!=D) C=new FCKElementPath(D);var E=D;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=D;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}};this._Cache={};},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateEleme
ntInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;};return null;},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;return false;},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 (A&&A.nodeType==1){if (FCKDomTools.CheckIsEditable(A)) B=A;else if (B) break;A=A.firstChild;};if (B) this.MoveToElementStart(B);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(){if (this.CheckIsCollapsed()) return true;var A=this.Window.document.createE
lement('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._Ran
ge.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E<G.length){G=G.substr(E);if (G.Trim().length!=0) return this._Cache.IsEndOfBlock=false;}}else F=D.childNodes[E];if (!F) F=FCKDomTools.GetNextSourceNode(D,true,null,C);var H=false;while (F){switch (F.nodeType){case 1:var I=F.nodeName.toLowerCase();if (FCKListsLib.InlineChildReqElements[I]) break;if (I=='br'&&!H){H=true;break;};return this._Cache.IsEndOfBlock=false;case 3:if (F.nodeValue.Trim().length>0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone
();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previo
usSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&B.nodeType==3&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&C.nodeType==3&&E.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.do
cument,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.setEndBe
fore(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.StartBlo
ck&&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(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (thi
s.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.do
cument.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}};
FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&&!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var
H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&&!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.
parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('<span id="'+E+'"></span>');return B.getElementById(E);};
-var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=H;};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;K=true;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.W
indow.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;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);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}};
+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;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null
,I)||H;};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;K=true;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;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);};if (!this._NextNode) 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.Get
IndexOf(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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));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!=to
pEnd) 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.clon
eNode(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.GetPreviousSourceE
lement(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.E
mptyElements[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._ExecuteBacksp
ace(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(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){
if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).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){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(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.documen
t.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=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).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.cloneNod
e(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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew()
,{ProcessDocument:function(doc){FCKTools.RunFunction(function(){var F=doc.getElementsByTagName('object');for (var i=F.length-1;i>=0;i--) B(F[i]);var G=doc.getElementsByTagName('embed');for (var i=G.length-1;i>=0;i--) B(G[i]);});},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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.getE
lementsByTagName('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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});
+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'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};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.EnterMod
e;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;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock
;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}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.IsGe
ckoLike)){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(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomT
ools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).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){for (var i=0,len=K.Elements.length;i<len;i++){var L=K.Elements[i];if (L==K.Block||L==K.BlockLimit) break;if (FCKListsLib.InlineChildReqElements[L.nodeName.
toLowerCase()]){L=FCKDomTools.CloneElement(L);FCKDomTools.MoveChildren(I,L);I.appendChild(L);}}};if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(I);C.InsertNode(I);if (FCKBrowserInfo.IsIE){C.MoveToElementEditStart(I);C.Select();};C.MoveToElementEditStart(G&&!H?F:I);};if (FCKBrowserInfo.IsGeckoLike){if (F){var M=this.Window.document.createElement('span');M.innerHTML=' ';C.InsertNode(M);FCKDomTools.ScrollIntoView(M,false);C.DeleteContents();}else{FCKDomTools.ScrollIntoView(F||I,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);FCKDomTools.ScrollIntoView(I,false);I.parentNode.removeChild(I);}};B.Collapse(true);B.Select(G);};B.Release();return true;};FCKEnterKey.prototype._O
utdentWithSelection=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.push(A);return A;};FCKDocumentProcessor.Process=function(A){var B=FCK.IsDirty();var C,i=0;while((C=this._Items[i++])) C.ProcessDocument(A);if (!B) FCK.ResetIsDirty();};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCKTools.GetElementDocument(B).createElement('IMG');C.className=A;C.src=FCKConfig.BasePath+'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 FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i<A.length;i++) D=A[i](el,D)||D;if (D!=E) FCKTempBin.RemoveElement(E.getAttribute('_fckrealelement'));el.parentNode.replaceChild(D,el);};var F=function(elementName,doc){var G=doc.getElementsByTa
gName(elementName);for (var i=G.length-1;i>=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();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.Appen
dNew().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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-styl
e-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}};
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=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&&A.item) return this.GetSelection().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 this.GetSelection().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();this.GetSelection().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=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type=="Control"){B=this.GetSelectedElement();}else{var C=this.GetSelection().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 (this.GetSelection().type=="Control"){oRange=this.GetSelection().createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=this.GetSelection().createRange();B=oRange.parentElement()
;};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=this.GetSelection();if (A.type.toLowerCase()!="none"){A.clear();};return A;};FCKSelection.GetSelection=function(){this.Restore();return FCK.EditorDocument.selection;};FCKSelection.Save=function(){FCK.Focus();var A=FCK.EditorDocument;if (!A) return;var B=A.selection;var C;if (B){C=B.createRange();if (C){if (C.parentElement&&FCKTools.GetElementDocument(C.parentElement())!=A) C=null;else if (C.item&&FCKTools.GetElementDocument(C.item(0))!=A) C=null;}};this.SelectionData=C;};FCKSelection._GetSelectionDocument=function(A){var B=A.createRange();if (!B) return null;else if (B.item) return FCKTools.GetElementDocument(B.item(0));else return FCKTools.GetElementDocument(B.parentElement());};FCKSelection.Restore=function(){if (this.SelectionData){FCK.IsSelectionChangeLocked=true;try{if (this._GetSelectionDocument(FCK.EditorDocument.selection)==FCK.EditorDocument) return;this.SelectionData.select()
;}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){delete this.SelectionData;};
-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.InsertC
olumn=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{f
or (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=FCKTools.GetElementDocument(B).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.ap
pendChild(FCKTools.GetElementDocument(B).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=FCKTools.GetElementDocument(B).creat
eDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).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=FCKTools.GetElementDocument(B).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(FCKTools.GetElementDocument(B).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=FCKTools.GetElementDocument(B).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=FCKSelection.GetSelection().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;};
+FCKSelection.GetType=function(){try{var A=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&&A.item) return this.GetSelection().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 this.GetSelection().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();this.GetSelection().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=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type=="Control"){B=this.GetSelectedElement();}else{var C=this.GetSelection().createRange();B=C.parentElement();}while (B){if (B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (this.GetSelection().type=="Control"){oRange=this.GetSelection().createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=this.GetSelection().createRange();B=oRange.parentE
lement();}while (B&&!B.nodeName.Equals(A)) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=this.GetSelection();if (A.type.toLowerCase()!="none"){A.clear();};return A;};FCKSelection.GetSelection=function(){this.Restore();return FCK.EditorDocument.selection;};FCKSelection.Save=function(A){var B=FCK.EditorDocument;if (!B) return;if (this.locked) return;this.locked=!!A;var C=B.selection;var D;if (C){try {D=C.createRange();}catch(e) {};if (D){if (D.parentElement&&FCKTools.GetElementDocument(D.parentElement())!=B) D=null;else if (D.item&&FCKTools.GetElementDocument(D.item(0))!=B) D=null;}};this.SelectionData=D;};FCKSelection._GetSelectionDocument=function(A){var B=A.createRange();if (!B) return null;else if (B.item) return FCKTools.GetElementDocument(B.item(0));else return FCKTools.GetElementDocument(B.parentElement());};FCKSelection.Restore=function(){if (this.SelectionData){FCK.IsSelectionChangeLocked=true;try{if (String(this._GetSelectionDocument(FCK.EditorDocume
nt.selection).body.contentEditable)=='true'){FCK.IsSelectionChangeLocked=false;return;};this.SelectionData.select();}catch (e) {};FCK.IsSelectionChangeLocked=false;}};FCKSelection.Release=function(){this.locked=false;delete this.SelectionData;};
+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=B[i].parentNode;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];F.insertBefore(B,(A?G:G.nextSibling));}};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(A.parentNode);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++){FCKDomTools.ClearElementJSProperty(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;for (var i=0;i<A.length;i++){if (A[i].parentNode.parentNode!=A[0].parentNode.parentNode) return false;};this._MarkCells(A,'_CellSelected');var B=this._CreateTableMap(A[0]);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);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=FCKTools.GetElementDocument(B).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(FCK.EditorDocument.createElement('br'));};this._ReplaceCellsByMarker(
C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.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.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=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.
appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCK.EditorDocument.createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.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);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=FCK.EditorDocument.createElement(B.nodeName);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(FCK.EditorDocument.crea
teElement(B.nodeName));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.parentNode);};FCKTableHandler.VerticalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;var G=B.rowSpan;if (isNaN(G)) G=1;if (G>1){B.rowSpan=Math.ceil(G/2);var H=D+Math.ceil(G/2);var I=C[H];var J=null;for (var i=E+1;i<I.length;i++){if (I[i].parentNode.rowIndex==H){J=I[i];break;}};var K=FCK.EditorDocument.createElement(B.nodeName);K.rowSpan=Math.floor(G/2);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);B.parentNode.parentNode.parentNode.rows[H].insertBefore(K,J);}else{var L=B.parentNode.sectionRowIndex+1;var M=FCK.Ed
itorDocument.createElement('tr');var N=B.parentNode.parentNode;if (N.rows.length>L) N.insertBefore(M,N.rows[L]);else N.appendChild(M);for (var i=0;i<C[D].length;){var O=C[D][i].colSpan;if (isNaN(O)||O<1) O=1;if (i==E){i+=O;continue;};var P=C[D][i].rowSpan;if (isNaN(P)) P=1;C[D][i].rowSpan=P+1;i+=O;};var K=FCK.EditorDocument.createElement(B.nodeName);if (F>1) K.colSpan=F;if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(K);M.appendChild(K);}};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._CreateTableMap=function(A){var B=(A.nodeName=='TABLE'?A:A.parentNode.parentNode.parentNode);var C=B.rows;var r=-1;var D=[];for (var i=0;i<C.length;i++){r++;if (!D[r]) D[r]=[];var c=-1;for (var j=0;j<C[i].cells
.length;j++){var E=C[i].cells[j];c++;while (D[r][c]) c++;var F=isNaN(E.colSpan)?1:E.colSpan;var G=isNaN(E.rowSpan)?1:E.rowSpan;for (var H=0;H<G;H++){if (!D[r+H]) D[r+H]=[];for (var I=0;I<F;I++){D[r+H][c+I]=C[i].cells[j];}};c+=F-1;}};return D;};FCKTableHandler._InstallTableMap=function(A,B){var C=FCKBrowserInfo.IsIE?"_fckrowspan":"rowSpan";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[C]=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[C]++;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];FCKDomT
ools.ClearElementJSProperty(D,'_colScanned');FCKDomTools.ClearElementJSProperty(D,'_rowScanned');}};for (var i=0;i<A.length;i++){var I=FCK.EditorDocument.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);if (C!='rowSpan'){D.rowSpan=D[C];D.removeAttribute(C);};j+=D.colSpan;if (D.colSpan==1) D.removeAttribute('colspan');if (D.rowSpan==1) D.removeAttribute('rowspan');};if (FCKBrowserInfo.IsIE){B.rows[i].replaceNode(I);}else{B.rows[i].innerHTML='';FCKDomTools.MoveChildren(I,B.rows[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];v
ar C=this._CreateTableMap(B);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);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;if (B.parentNode.parentNode!=G.parentNode.parentNode) 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','TH']);return A?[A]:[];};var B=[];var C=FCKSelection.GetSelection().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.DOMDocume
nt.selectSingleNode(A);}};
+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||(B.status==0&&B.readyState==4)){this.DOMDocument=B.responseXML;if (!this.DOMDocument||this.DOMDocument.firstChild==null){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) ret
urn 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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState(this.Name);};
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.EditMode!=0||!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,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};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:'F
ontName',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(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=functio
n(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;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;};retur
n 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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=func
tion(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1: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(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;return this.IsEnabled?0:-1;};
+var FCKDialogCommand=function(A,B,C,D,E,F,G,H){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.CustomValue=H;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,this.CustomValue,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK.EditMode==0?0:-1;};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:'F
ontName',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(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckUndoState()?0:-1);};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){FCKUndo.Redo();};FCKRedoCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return (FCKUndo.CheckRedoState()?0:-1);};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=functio
n(){FCKUndo.SaveUndoStep();var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none"> </span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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(){if (FCK.EditMode!=0) return -1;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;};retur
n A;};var FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};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(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.E
xecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1: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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i<A.length;i++) FCKDomTools.RemoveNode(A[i],true);B.MoveToBookmark(C);B.Select();}};var FCKNbsp=function(){this.Name='Non Breaking Space';};FCKNbsp.prototype={Execute:function(){FCK.InsertHtml(' ');},GetState:function(){return (FCK.EditMode!=0?-1:0);}};
+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';if (FCKBrowserInfo.IsIE){try{FCK.EditorDocument.selection.createRange().select();}catch (e){}}else{var C=FCK.EditorWindow.getSelection().focusNode;if (C){if (C.nodeType!=1) C=C.parentNode;FCKDomTools.ScrollIntoView(C,false);}};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&&th
is.GetState()!=this._SavedState) this.Execute();};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=true;};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;case 'WSC':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','wsc/w.html',530,480);}};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(){if (FCK.EditMode!=0) return -1;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);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCK.ToolbarSet.ToolbarItems.GetItem(this.Name).RegisterPanel(this._Panel);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');};FCKTextColorCo
mmand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;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',410,320,FCKTools.Bind(B,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;};v
ar 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="backgrou
nd-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(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');};
var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
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 'TableHorizo
ntalSplitCell':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.frame
Element.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+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;var H,oEditorScrollPos;if (FCK.EditMode==0){H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();oEditorScrollPos=FCKTools.GetScrollPosition(FCK.EditorWindow);}else{var I=FCK.EditingArea.Textarea;H=!FCKBrowserInfo.IsIE&&[I.selectionStart,I.selectionEnd];oEditorScrollPos=[I.scrollLeft,I.scrollTop];};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.ov
erflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.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.G
etItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();if (FCK.EditMode==0){H.Select();FCK.EditorWindow.scrollTo(oEditorScrollPos.X,oEditorScrollPos.Y);}else{if (!FCKBrowserInfo.IsIE){I.selectionStart=H[0];I.selectionEnd=H[1];};I.scrollLeft=oEditorScrollPos[0];I.scrollTop=oEditorScrollPos[1];}};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_L
istGroupObject) 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=FCKSelection.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.IEqu
als(['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=FCKTools.GetElementDocument(A.root).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=FCKTools.GetElementDocument(A.root);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]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};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.IsDefa
ultAlign)||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;}},_IndentBloc
k:function(A){var B=new FCKDomRangeIterator(A);B.EnforceRealBlocks=true;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.In
sertNode(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=FCKTools.GetElementDocument(H).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=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).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(FCKTools.GetElementDocument(S).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 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){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.appen
dChild(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();}while (J.nodeName.IEquals('table','tbody','tr','ol','ul')) J=J.parentNode;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=FCKTools.GetElementDocument(H).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=[];var P={};while ((H=G.GetNextParagraph())){var Q=null;var R=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('bl
ockquote')){Q=H.parentNode;R=H;break;};H=H.parentNode;};if (Q&&R&&!R._fckblockquotemoveout){O.push(R);FCKDomTools.SetElementMarker(P,R,'_fckblockquotemoveout',true);}};FCKDomTools.ClearAllMarkers(P);var S=[];var T=[],P={};var U=function(N){for (var i=0;i<N.childNodes.length;i++){if (FCKListsLib.BlockElements[N.childNodes[i].nodeName.toLowerCase()]) return false;};return true;};while (O.length>0){var W=O.shift();var N=W.parentNode;if (W==W.parentNode.firstChild) N.parentNode.insertBefore(N.removeChild(W),N);else if (W==W.parentNode.lastChild) N.parentNode.insertBefore(N.removeChild(W),N.nextSibling);else FCKDomTools.BreakParent(W,W.parentNode,B);if (!N._fckbqprocessed){T.push(N);FCKDomTools.SetElementMarker(P,N,'_fckbqprocessed',true);};S.push(W);};for (var i=T.length-1;i>=0;i--){var N=T[i];if (U(N)) FCKDomTools.RemoveNode(N);};FCKDomTools.ClearAllMarkers(P);if (FCKConfig.EnterMode.IEquals('br')){while (S.length){var W=S.shift();var a=true;if (W.nodeName.IEquals('div')){var M
=FCKTools.GetElementDocument(W).createDocumentFragment();var c=a&&W.previousSibling&&!FCKListsLib.BlockBoundaries[W.previousSibling.nodeName.toLowerCase()];if (a&&c) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));var d=W.nextSibling&&!FCKListsLib.BlockBoundaries[W.nextSibling.nodeName.toLowerCase()];while (W.firstChild) M.appendChild(W.removeChild(W.firstChild));if (d) M.appendChild(FCKTools.GetElementDocument(W).createElement('br'));W.parentNode.replaceChild(M,W);a=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(){if (FCK.EditMode!=0) return -1;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,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break;case 'AnchorDelete':B=new FCKAnchorDeleteCommand()
;break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,290);brea
k;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,240);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=ne
w 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('TableInser
tColumnAfter');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,210);break;case 'Checkbox':B=new FCKDialogComman
d('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoComman
d();break;case 'Redo':B=new FCKRedoCommand();break;case 'Copy':B=new FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.width=D.height=0;FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base href="'+window.document.location+'">';B.op
en();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'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 (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);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.GetDocumentPo
sition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(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;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.width=N;M._IFrame.height=O;},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnSh
ow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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.HasF
ocus=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 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,380,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,300);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'VisitLink':B=new FCKVisitLinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,160);break
;case 'AnchorDelete':B=new FCKAnchorDeleteCommand();break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,160);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,160);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',420,330,function(){ return 0;});break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Find');break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgFindAndReplaceTitle,'dialog/fck_replace.html',340,230,null,null,'Replace');break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,390);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,390);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCh
arTitle,'dialog/fck_specialchar.html',400,290);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,240);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 'Nbsp':B=new FCKNbsp();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 'CreateDiv':B=new FCKDialogCommand('CreateDiv',FCKLang.CreateDiv,'dialog/fck_div.html',380,210,null,null,true);break;case 'EditDiv':B=new FCKDialogCommand('EditDiv',FCKLang.EditDiv,'dialog/fck_div.html
',380,210,null,null,false);break;case 'DeleteDiv':B=new FCKDeleteDivCommand();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('TableMergeDo
wn');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,210);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,200);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,200);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,210);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,210);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,190);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,
210);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,340);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,390);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 FCKCutCopyCommand(false);break;case 'Cut':B=new FCKCutCopyCommand(true);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.rep
lace(/%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();var C=this._Window.document;if (FCK_IS_CUSTOM_DOMAIN&&!FCKBrowserInfo.IsIE7){C.domain=FCK_ORIGINAL_DOMAIN;document.domain=FCK_ORIGINAL_DOMAIN;};B=this.Document=this._Popup.document;if (FCK_IS_CUSTOM_DOMAIN){B.domain=FCK_RUNTIME_DOMAIN;C.domain=FCK_RUNTIME_DOMAIN;document.domain=FCK_RUNTIME_DOMAIN;};FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var D=this._IFrame=this._Window.document.createElement('iframe');FCKTools.ResetStyles(D);D.src='javascript:void(0)';D.allowTransparency=true;D.frameBorder='0';D.scrolling='no';D.style.width=D.style.height='0px';FCKDomTools.SetElementStyles(D,{position:'absolute',zIndex:FCKConfig.FloatingPanelsZIndex});this._Window.document.body.appendChild(D);var E=D.contentWindow;B=this.Document=E.document;var F='';if (FCKBrowserInfo.IsSafari) F='<base hr
ef="'+window.document.location+'">';B.open();B.write('<html><head>'+F+'<\/head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'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.ResizeForSubpanel=function(A,B,C){if (!FCKBrowserInfo.IsIE7) return false;if (!this._Popup.isOpen){this.Subpanel=null;return false;};if (B==0&&C==0){if (this.Subpanel!==A) return false;this.Subpanel=null;this.IncreasedX=0;}else
{this.Subpanel=A;if ((this.IncreasedX>=B)&&(this.IncreasedY>=C)) return false;this.IncreasedX=Math.max(this.IncreasedX,B);this.IncreasedY=Math.max(this.IncreasedY,C);};var x=this.ShowRect.x;var w=this.IncreasedX;if (this.IsRTL) x=x-w;var D=this.ShowRect.w+w;var E=Math.max(this.ShowRect.h,this.IncreasedY);if (this.ParentPanel) this.ParentPanel.ResizeForSubpanel(this,D,E);this._Popup.show(x,this.ShowRect.y,D,E,this.RelativeElement);return this.IsRTL;};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 (FCKBrowserInfo.IsIE7){if (this.ParentPanel&&this.ParentPanel.ResizeForSubpanel(this,D,E.offsetHeight)){FCKTools.RunFunction(this.Show,this,[x,y,A]);return;}};if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};if (FCKBrowserInfo.IsIE7){this.ShowRect={x:x,y:y,w:D,h:E.offsetHeight};this.IncreasedX=0;this
.IncreasedY=0;this.RelativeElement=A;};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 (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);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.firstC
hild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(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;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceOb
ject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};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 FCKPane
l_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;if (this._Popup&&this.ParentPanel&&!A) this.ParentPanel.ResizeForSubpanel(this,0,0);FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;this.RelativeElement=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;};functio
n 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=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButto
n.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);};
@@ -94,16 +94,16 @@
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.StyleC
ombo_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;this.RegisterPanel(B);};FCKToolbarPanelButton.prototype.RegisterPanel=function(A){if (A._FCKToolbarPanelButton) return;A._FCKToolbarPanelButton=this;var B=A.Document.body.appendChild(A.Document.createElement('div'));B.style.position='absolute';B.style.top='0px';var C=A._FCKToolbarPanelButtonLineDiv=B.appendChild(A.Document.createElement('IMG'));C.className='TB_ConnectionLine';C.st
yle.position='absolute';C.src=FCK_SPACER_PATH;A.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName);var D=C._Panel;D._FCKToolbarPanelButtonLineDiv.style.width=(e.offsetWidth-2)+'px';C.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',FCKL
ang.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,t
rue,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;cas
e '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 'TextCol
or':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 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',FCKL
ang.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,t
rue,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;cas
e '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 'CreateDiv':B=new FCKToolbarButton('CreateDiv',FCKLang.CreateDiv,null,null,false,true,74);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('SpecialCh
ar',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 FC
KToolbarFontSizeCombo();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.H
iddenField,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){if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_GetOutElement(window,E);else 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.locati
on+'">';G.open();G.write('<html><head>'+H+'<script type="text/javascript"> var adjust = function() { window.frameElement.height = document.body.scrollHeight ; }; window.onresize = window.onload = function(){var timer = null;var lastHeight = -1;var lastChange = 0;var poller = function(){var currentHeight = document.body.scrollHeight || 0;var currentTime = (new Date()).getTime();if (currentHeight != lastHeight){lastChange = currentTime;adjust();lastHeight = document.body.scrollHeight;}if (lastChange < currentTime - 1000) clearInterval(timer);};timer = setInterval(poller, 100);}</script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FC
KToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;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 (!FCK
Config.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.Item
sWysiwygOnly=[];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=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};var I=function(element){element.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var J={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.Toolbar
Set.CurrentInstance.Selection.Save();var K=FCKTools.GetViewPaneSize(D);var L=FCKTools.GetScrollPosition(D);var M=Math.max(L.Y+(K.Height-height-20)/2,0);var N=Math.max(L.X+(K.Width-width-20)/2,0);var O=E.createElement('iframe');I(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':'absolute','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=J;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');I(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px'
,'left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');I(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();},GetCover:function(){return C;}};})();
+var FCKDialog=(function(){var A;var B;var C;var D=window.parent;while (D.parent&&D.parent!=D){try{if (D.parent.document.domain!=document.domain) break;if (D.parent.document.getElementsByTagName('frameset').length>0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save(true);var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKB
rowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position'
:'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:f
unction(){return C;}};})();
var FCKMenuItem=function(A,B,C,D,E,F){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);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};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.Activ
ate();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,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};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.SkinEditorCSS);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){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw
=true;return F;};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_Ove
rrideButton;if(!B){var C=FCKTools.GetElementDocument(e.target);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;}};return true;};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 (FCKBrow
serInfo.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=='TABL
E');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.Ed
itLink,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=='c
heckbox'){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.AddSepa
rator();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.Co
ntextMenu.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(A.CustomData);};
+var FCKContextMenu=function(A,B){this.CtrlDisable=false;var C=this._Panel=new FCKPanel(A);C.AppendStyleSheet(FCKConfig.SkinEditorCSS);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,E){var F=this._MenuBlock.AddItem(A,B,C,D,E);this._Redraw
=true;return F;};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){if (FCKConfig.BrowserContextMenu) return true;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;if (FCKConfig.BrowserContextMenu) return true;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=FCKTools.GetElementDocument(e.target);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){if (FCKConfig.BrowserContextMenu) return true;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;}};return true;};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){if ((B.CtrlDisable&&(A.ctrlKey||A.metaKey))||FCKConfig.BrowserContextMenu) return true;var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Coun
t()==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=='TABL
E');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();menu.AddItem('VisitLink',FCKLang.Visi
tLink);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 {AddIte
ms: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);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDi
v,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};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){if (!FCKBrowserInfo.IsIE) FCK.Focus();FCKCommands.GetCommand(A.Name).Execute(A.CustomData);};
var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};
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;};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/_translationstatus.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/_translationstatus.txt 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/_translationstatus.txt 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,57 +21,59 @@
* Translations Status.
*/
-af.js Found: 396 Missing: 15
-ar.js Found: 411 Missing: 0
-bg.js Found: 373 Missing: 38
-bn.js Found: 380 Missing: 31
-bs.js Found: 226 Missing: 185
-ca.js Found: 411 Missing: 0
-cs.js Found: 411 Missing: 0
-da.js Found: 381 Missing: 30
-de.js Found: 411 Missing: 0
-el.js Found: 396 Missing: 15
-en-au.js Found: 411 Missing: 0
-en-ca.js Found: 411 Missing: 0
-en-uk.js Found: 411 Missing: 0
-eo.js Found: 346 Missing: 65
-es.js Found: 411 Missing: 0
-et.js Found: 411 Missing: 0
-eu.js Found: 411 Missing: 0
-fa.js Found: 397 Missing: 14
-fi.js Found: 411 Missing: 0
-fo.js Found: 396 Missing: 15
-fr-ca.js Found: 411 Missing: 0
-fr.js Found: 411 Missing: 0
-gl.js Found: 381 Missing: 30
-he.js Found: 411 Missing: 0
-hi.js Found: 411 Missing: 0
-hr.js Found: 411 Missing: 0
-hu.js Found: 411 Missing: 0
-it.js Found: 396 Missing: 15
-ja.js Found: 411 Missing: 0
-km.js Found: 370 Missing: 41
-ko.js Found: 390 Missing: 21
-lt.js Found: 376 Missing: 35
-lv.js Found: 381 Missing: 30
-mn.js Found: 411 Missing: 0
-ms.js Found: 352 Missing: 59
-nb.js Found: 395 Missing: 16
-nl.js Found: 411 Missing: 0
-no.js Found: 395 Missing: 16
-pl.js Found: 411 Missing: 0
-pt-br.js Found: 411 Missing: 0
-pt.js Found: 381 Missing: 30
-ro.js Found: 410 Missing: 1
-ru.js Found: 411 Missing: 0
-sk.js Found: 396 Missing: 15
-sl.js Found: 411 Missing: 0
-sr-latn.js Found: 368 Missing: 43
-sr.js Found: 368 Missing: 43
-sv.js Found: 396 Missing: 15
-th.js Found: 393 Missing: 18
-tr.js Found: 396 Missing: 15
-uk.js Found: 397 Missing: 14
-vi.js Found: 396 Missing: 15
-zh-cn.js Found: 411 Missing: 0
-zh.js Found: 411 Missing: 0
+af.js Found: 396 Missing: 32
+ar.js Found: 420 Missing: 8
+bg.js Found: 373 Missing: 55
+bn.js Found: 380 Missing: 48
+bs.js Found: 226 Missing: 202
+ca.js Found: 420 Missing: 8
+cs.js Found: 420 Missing: 8
+da.js Found: 419 Missing: 9
+de.js Found: 420 Missing: 8
+el.js Found: 396 Missing: 32
+en-au.js Found: 423 Missing: 5
+en-ca.js Found: 423 Missing: 5
+en-uk.js Found: 423 Missing: 5
+eo.js Found: 346 Missing: 82
+es.js Found: 428 Missing: 0
+et.js Found: 411 Missing: 17
+eu.js Found: 420 Missing: 8
+fa.js Found: 413 Missing: 15
+fi.js Found: 411 Missing: 17
+fo.js Found: 420 Missing: 8
+fr-ca.js Found: 419 Missing: 9
+fr.js Found: 428 Missing: 0
+gl.js Found: 381 Missing: 47
+gu.js Found: 411 Missing: 17
+he.js Found: 428 Missing: 0
+hi.js Found: 420 Missing: 8
+hr.js Found: 420 Missing: 8
+hu.js Found: 411 Missing: 17
+is.js Found: 428 Missing: 0
+it.js Found: 410 Missing: 18
+ja.js Found: 420 Missing: 8
+km.js Found: 370 Missing: 58
+ko.js Found: 390 Missing: 38
+lt.js Found: 376 Missing: 52
+lv.js Found: 381 Missing: 47
+mn.js Found: 411 Missing: 17
+ms.js Found: 352 Missing: 76
+nb.js Found: 414 Missing: 14
+nl.js Found: 420 Missing: 8
+no.js Found: 414 Missing: 14
+pl.js Found: 411 Missing: 17
+pt-br.js Found: 411 Missing: 17
+pt.js Found: 381 Missing: 47
+ro.js Found: 410 Missing: 18
+ru.js Found: 427 Missing: 1
+sk.js Found: 420 Missing: 8
+sl.js Found: 411 Missing: 17
+sr-latn.js Found: 368 Missing: 60
+sr.js Found: 368 Missing: 60
+sv.js Found: 409 Missing: 19
+th.js Found: 393 Missing: 35
+tr.js Found: 428 Missing: 0
+uk.js Found: 419 Missing: 9
+vi.js Found: 419 Missing: 9
+zh-cn.js Found: 428 Missing: 0
+zh.js Found: 423 Missing: 5
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/af.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/af.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/af.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Skakel",
InsertLink : "Skakel byvoeg/verander",
RemoveLink : "Skakel verweider",
+VisitLink : "Open Link", //MISSING
Anchor : "Plekhouer byvoeg/verander",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Beeld",
@@ -72,6 +73,9 @@
DecreaseIndent : "Paradeering verkort",
IncreaseIndent : "Paradeering verleng",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Ont-skep",
Redo : "Her-skep",
NumberedListLbl : "Genommerde lys",
@@ -157,6 +161,7 @@
NoActiveX : "U browser sekuriteit instellings kan die funksies van die editor behinder. U moet die opsie \"Run ActiveX controls and plug-ins\" aktiveer. U ondervinding mag problematies geskiet of sekere funksionaliteit mag verhinder word.",
BrowseServerBlocked : "Die vorraad venster word geblok! Verseker asseblief dat U die \"popup blocker\" instelling verander.",
DialogBlocked : "Die dialoog venster vir verdere informasie word geblok. De-aktiveer asseblief die \"popup blocker\" instellings wat dit behinder.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cell buffer",
DlgTableCaption : "Beskreiwing",
DlgTableSummary : "Opsomming",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cell eienskappe",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middel",
DlgCellVerAlignBottom : "Onder",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Rei strekking",
DlgCellCollSpan : "Kolom strekking",
DlgCellBackColor : "Agtergrond Kleur",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Blaai Informasie deur",
DlgAboutLicenseTab : "Lesensie",
DlgAboutVersion : "weergawe",
-DlgAboutInfo : "Vir meer informasie gaan na "
+DlgAboutInfo : "Vir meer informasie gaan na ",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ar.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ar.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ar.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "رابط",
InsertLink : "إدراج/تØرÙر رابط",
RemoveLink : "إزاÙØ© رابط",
+VisitLink : "اÙØªØ Ø§Ùرابط",
Anchor : "إدراج/تØرÙر إشارة Ù
رجعÙØ©",
AnchorDelete : "إزاÙØ© إشارة Ù
رجعÙØ©",
InsertImageLbl : "صÙرة",
@@ -72,6 +73,9 @@
DecreaseIndent : "Ø¥ÙÙاص اÙÙ
ساÙØ© اÙبادئة",
IncreaseIndent : "زÙادة اÙÙ
ساÙØ© اÙبادئة",
Blockquote : "اÙتباس",
+CreateDiv : "Ø¥Ùشاء ØاÙÙØ© Div",
+EditDiv : "تعدÙÙ ØاÙÙØ© Div",
+DeleteDiv : "إزاÙØ© ØاÙÙØ© Div",
Undo : "تراجع",
Redo : "إعادة",
NumberedListLbl : "تعداد رÙÙ
Ù",
@@ -157,6 +161,7 @@
NoActiveX : "ÙتأÙ
ÙÙ Ù
تصÙØÙ Ùجب أ٠تØدد بعض Ù
Ù
Ùزات اÙÙ
Øرر. ÙتÙجب عÙÙ٠تÙ
ÙÙ٠اÙØ®Ùار \"Run ActiveX controls and plug-ins\". Ùد تÙاجة أخطاء ÙتÙاØظ Ù
Ù
Ùزات Ù
ÙÙÙدة",
BrowseServerBlocked : "ÙاÙÙ
ÙÙ ÙØªØ Ù
صدر اÙÙ
تصÙØ. ÙضÙا Ùجب اÙتأÙد بأ٠جÙ
Ùع Ù
ÙاÙع اÙÙÙاÙØ° اÙÙ
ÙبثÙØ© Ù
عطÙØ©",
DialogBlocked : "ÙاÙÙ
ÙÙ ÙØªØ ÙاÙذة اÙØÙار . ÙضÙا تأÙد Ù
٠أ٠Ù
اÙع اÙÙÙاÙØ° اÙÙ
Ùبثة Ù
عط٠.",
+VisitLinkBlocked : "Ùا ÙÙ
ÙÙ ÙØªØ ÙاÙذة جدÙدة. تأÙد Ù
٠إÙÙا٠ÙÙ Ù
اÙع٠ÙØªØ Ø§ÙÙÙاÙØ° Ù
٠اÙعÙ
Ù.",
// Dialogs
DlgBtnOK : "Ù
ÙاÙÙ",
@@ -303,6 +308,11 @@
DlgTableCellPad : "اÙÙ
ساÙØ© اÙبادئة",
DlgTableCaption : "اÙÙصÙ",
DlgTableSummary : "اÙØ®Ùاصة",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "خصائص اÙØ®ÙÙØ©",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Ùسط",
DlgCellVerAlignBottom : "أسÙÙ",
DlgCellVerAlignBaseline : "عÙ٠اÙسطر",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Ø¥Ù
تداد اÙصÙÙÙ",
DlgCellCollSpan : "Ø¥Ù
تداد اÙأعÙ
دة",
DlgCellBackColor : "ÙÙ٠اÙØ®ÙÙÙØ©",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Ù
عÙÙÙ
ات Ù
تصÙØÙ",
DlgAboutLicenseTab : "اÙترخÙص",
DlgAboutVersion : "اÙإصدار",
-DlgAboutInfo : "ÙÙ
زÙد Ù
٠اÙÙ
عÙÙÙ
ات تÙض٠بزÙارة"
+DlgAboutInfo : "ÙÙ
زÙد Ù
٠اÙÙ
عÙÙÙ
ات تÙض٠بزÙارة",
+
+// Div Dialog
+DlgDivGeneralTab : "عاÙ
",
+DlgDivAdvancedTab : "Ù
تÙدÙ
",
+DlgDivStyle : "اÙÙ
ظÙر",
+DlgDivInlineStyle : "اÙÙ
ظÙر اÙÙ
ضÙ
Ù"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bg.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/bg.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bg.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ÐÑÑзка",
InsertLink : "Ðобави/РедакÑиÑай вÑÑзка",
RemoveLink : "ÐзÑÑий вÑÑзка",
+VisitLink : "Open Link", //MISSING
Anchor : "Ðобави/РедакÑиÑай коÑва",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ÐзобÑажение",
@@ -72,6 +73,9 @@
DecreaseIndent : "Ðамали оÑÑÑÑпа",
IncreaseIndent : "УвелиÑи оÑÑÑÑпа",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ÐÑмени",
Redo : "ÐовÑоÑи",
NumberedListLbl : "ÐÑмеÑиÑан ÑпиÑÑк",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "ÐÐ",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÐÑÑÑÑп на ÑÑдÑÑжаниеÑо в клеÑкиÑе",
DlgTableCaption : "Ðаглавие",
DlgTableSummary : "РезÑме",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ÐаÑамеÑÑи на клеÑкаÑа",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Ðо ÑÑедаÑа",
DlgCellVerAlignBottom : "ÐолÑ",
DlgCellVerAlignBaseline : "Ðо базоваÑа линиÑ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "повеÑе Ð¾Ñ ÐµÐ´Ð¸Ð½ Ñед",
DlgCellCollSpan : "повеÑе Ð¾Ñ ÐµÐ´Ð½Ð° колона",
DlgCellBackColor : "Ñонов ÑвÑÑ",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° бÑаÑзÑÑа",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "веÑÑиÑ",
-DlgAboutInfo : "Ðа повеÑе инÑоÑмаÑÐ¸Ñ Ð¿Ð¾ÑеÑеÑе"
+DlgAboutInfo : "Ðа повеÑе инÑоÑмаÑÐ¸Ñ Ð¿Ð¾ÑеÑеÑе",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/bn.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bn.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "লিà¦à¦à§à¦° যà§à¦à§à¦¤ à¦à¦°à¦¾à¦° লà§à¦¬à§à¦²",
InsertLink : "লিà¦à¦ যà§à¦à§à¦¤ à¦à¦°",
RemoveLink : "লিà¦à¦ সরাà¦",
+VisitLink : "Open Link", //MISSING
Anchor : "নà§à¦à§à¦à¦°",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "à¦à¦¬à¦¿à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°",
@@ -72,6 +73,9 @@
DecreaseIndent : "à¦à¦¨à¦¡à§à¦¨à§à¦ à¦à¦®à¦¾à¦",
IncreaseIndent : "à¦à¦¨à¦¡à§à¦¨à§à¦ বাà§à¦¾à¦",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "à¦à¦¨à¦¡à§",
Redo : "রি-ডà§",
NumberedListLbl : "সাà¦à¦à§à¦¯à¦¿à¦ লিসà§à¦à§à¦° লà§à¦¬à§à¦²",
@@ -157,6 +161,7 @@
NoActiveX : "à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¾à¦°à¦¨à§ à¦à¦¡à¦¿à¦à¦°à§à¦° à¦à¦¿à¦à§ ফিà¦à¦¾à¦° পাà¦à§à¦¾ নাঠযà§à¦¤à§ পারà§à¥¤ à¦à¦ªà¦¨à¦¾à¦à§ à¦
বশà§à¦¯à¦ \"Run ActiveX controls and plug-ins\" à¦à¦¨à¦¾à¦¬à§à¦² à¦à¦°à§ নিতৠহবà§à¥¤ à¦à¦ªà¦¨à¦¿ à¦à§à¦²à¦à§à¦°à¦¾à¦¨à§à¦¤à¦¿ à¦à¦¿à¦à§ à¦à¦¿à¦à§ ফিà¦à¦¾à¦°à§à¦° à¦
নà§à¦ªà¦¸à§à¦¥à¦¿à¦¤à¦¿ à¦à¦ªà¦²à¦¬à§à¦§à¦¿ à¦à¦°à¦¤à§ পারà§à¦¨à¥¤",
BrowseServerBlocked : "রিসà§à¦°à§à¦¸ বà§à¦°à¦¾à¦à¦à¦¾à¦° à¦à§à¦²à¦¾ à¦à§à¦² না। নিশà§à¦à¦¿à¦¤ à¦à¦°à§à¦¨ যৠসব পপà¦à¦ª বà§à¦²à¦à¦¾à¦° বনà§à¦§ à¦à¦°à¦¾ à¦à¦à§à¥¤",
DialogBlocked : "ডাà§à¦¾à¦²à¦ à¦à¦à¦¨à§à¦¡à§ à¦à§à¦²à¦¾ à¦à§à¦² না। নিশà§à¦à¦¿à¦¤ à¦à¦°à§à¦¨ যৠসব পপà¦à¦ª বà§à¦²à¦à¦¾à¦° বনà§à¦§ à¦à¦°à¦¾ à¦à¦à§à¥¤",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "à¦à¦à§",
@@ -303,6 +308,11 @@
DlgTableCellPad : "সà§à¦² পà§à¦¯à¦¾à¦¡à¦¿à¦",
DlgTableCaption : "শà§à¦°à§à¦·à¦",
DlgTableSummary : "সারাà¦à¦¶",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "সà§à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "মধà§à¦¯",
DlgCellVerAlignBottom : "নà§à¦à§",
DlgCellVerAlignBaseline : "মà§à¦²à¦°à§à¦à¦¾",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "রৠসà§à¦ªà§à¦¯à¦¾à¦¨",
DlgCellCollSpan : "à¦à¦²à¦¾à¦® সà§à¦ªà§à¦¯à¦¾à¦¨",
DlgCellBackColor : "বà§à¦¯à¦¾à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° বà§à¦¯à¦¾à¦ªà¦¾à¦°à§ তথà§à¦¯",
DlgAboutLicenseTab : "লাà¦à¦¸à§à¦¨à§à¦¸",
DlgAboutVersion : "à¦à¦¾à¦°à§à¦¸à¦¨",
-DlgAboutInfo : "à¦à¦°à¦ তথà§à¦¯à§à¦° à¦à¦¨à§à¦¯ যান"
+DlgAboutInfo : "à¦à¦°à¦ তথà§à¦¯à§à¦° à¦à¦¨à§à¦¯ যান",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bs.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/bs.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/bs.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Ubaci/Izmjeni link",
RemoveLink : "Izbriši link",
+VisitLink : "Open Link", //MISSING
Anchor : "Insert/Edit Anchor", //MISSING
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Slika",
@@ -72,6 +73,9 @@
DecreaseIndent : "Smanji uvod",
IncreaseIndent : "Poveæaj uvod",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Vrati",
Redo : "Ponovi",
NumberedListLbl : "Numerisana lista",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Uvod æelija",
DlgTableCaption : "Naslov",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Svojstva æelije",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Sredina",
DlgCellVerAlignBottom : "Dno",
DlgCellVerAlignBaseline : "Bazno",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Spajanje æelija",
DlgCellCollSpan : "Spajanje kolona",
DlgCellBackColor : "Boja pozadine",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser Info", //MISSING
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "verzija",
-DlgAboutInfo : "Za više informacija posjetite"
+DlgAboutInfo : "Za više informacija posjetite",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ca.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ca.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ca.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -43,7 +43,8 @@
RemoveFormat : "Elimina Format",
InsertLinkLbl : "Enllaç",
InsertLink : "Insereix/Edita enllaç",
-RemoveLink : "Elimina enllaç",
+RemoveLink : "Elimina l'enllaç",
+VisitLink : "Obre l'enllaç",
Anchor : "Insereix/Edita à ncora",
AnchorDelete : "Elimina à ncora",
InsertImageLbl : "Imatge",
@@ -72,6 +73,9 @@
DecreaseIndent : "Redueix el sagnat",
IncreaseIndent : "Augmenta el sagnat",
Blockquote : "Bloc de cita",
+CreateDiv : "Crea un contenidor Div",
+EditDiv : "Edita el contenidor Div",
+DeleteDiv : "Elimina el contenidor Div",
Undo : "Desfés",
Redo : "Refés",
NumberedListLbl : "Llista numerada",
@@ -156,7 +160,8 @@
UnknownToolbarSet : "Conjunt de barra d'eines \"%1\" inexistent",
NoActiveX : "Les preferències del navegador poden limitar algunes funcions d'aquest editor. Cal habilitar l'opció \"Executa controls ActiveX i plug-ins\". Poden sorgir errors i poden faltar algunes funcions.",
BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
-DialogBlocked : "No ha estat possible obrir una finestra de dià leg. Assegura't de que els bloquejos de finestres emergents estan desactivats.",
+DialogBlocked : "No ha estat possible obrir una finestra de dià leg. Assegureu-vos que els bloquejos de finestres emergents estan desactivats.",
+VisitLinkBlocked : "No ha estat possible obrir una nova finestra. Assegureu-vos que els bloquejos de finestres emergents estan desactivats.",
// Dialogs
DlgBtnOK : "D'acord",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Encoixinament de cel·les",
DlgTableCaption : "TÃtol",
DlgTableSummary : "Resum",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Propietats de la cel·la",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middle",
DlgCellVerAlignBottom : "Bottom",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Rows Span",
DlgCellCollSpan : "Columns Span",
DlgCellBackColor : "Color de fons",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informació del navegador",
DlgAboutLicenseTab : "Llicència",
DlgAboutVersion : "versió",
-DlgAboutInfo : "Per a més informació aneu a"
+DlgAboutInfo : "Per a més informació aneu a",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Avançat",
+DlgDivStyle : "Estil",
+DlgDivInlineStyle : "Estil en lÃnia"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/cs.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/cs.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/cs.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Odkaz",
InsertLink : "Vložit/zmÄnit odkaz",
RemoveLink : "Odstranit odkaz",
+VisitLink : "OtevÅÃt odkaz",
Anchor : "VložÃt/zmÄnit záložku",
AnchorDelete : "Odstranit kotvu",
InsertImageLbl : "Obrázek",
@@ -72,6 +73,9 @@
DecreaseIndent : "ZmenÅ¡it odsazenÃ",
IncreaseIndent : "ZvÄtÅ¡it odsazenÃ",
Blockquote : "Citace",
+CreateDiv : "VytvoÅit Div kontejner",
+EditDiv : "Upravit Div kontejner",
+DeleteDiv : "Odstranit Div kontejner",
Undo : "ZpÄt",
Redo : "Znovu",
NumberedListLbl : "ÄÃslovánÃ",
@@ -157,6 +161,7 @@
NoActiveX : "Nastavenà bezpeÄnosti VaÅ¡eho prohlÞeÄe omezuje funkÄnost nÄkterých jeho možnostÃ. Je tÅeba zapnout volbu \"SpouÅ¡tÄt ovládáacà prvky ActiveX a moduly plug-in\", jinak nebude možné využÃvat vÅ¡echny dosputné schopnosti editoru.",
BrowseServerBlocked : "PrůzkumnÃk zdrojů nelze otevÅÃt. ProvÄÅte, zda nemáte aktivováno blokovánà popup oken.",
DialogBlocked : "Nelze otevÅÃt dialogové okno. ProvÄÅte, zda nemáte aktivováno blokovánà popup oken.",
+VisitLinkBlocked : "Nenà možné otevÅÃt nové okno. ProvÄÅte, zda vÅ¡echny nástroje pro blokovánà vyskakovacÃch oken jsou vypnuty.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Odsazenà obsahu",
DlgTableCaption : "Popis",
DlgTableSummary : "Souhrn",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Vlastnosti buÅky",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "DoprostÅed",
DlgCellVerAlignBottom : "Dolů",
DlgCellVerAlignBaseline : "Na úÄaÅÃ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "SlouÄené Åádky",
DlgCellCollSpan : "SlouÄené sloupce",
DlgCellBackColor : "Barva pozadÃ",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informace o prohlÞeÄi",
DlgAboutLicenseTab : "Licence",
DlgAboutVersion : "verze",
-DlgAboutInfo : "VÃce informacà zÃskáte na"
+DlgAboutInfo : "VÃce informacà zÃskáte na",
+
+// Div Dialog
+DlgDivGeneralTab : "Obecné",
+DlgDivAdvancedTab : "RozÅ¡ÃÅené",
+DlgDivStyle : "Styl",
+DlgDivInlineStyle : "Vložený styl"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/da.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/da.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/da.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Hyperlink",
InsertLink : "Indsæt/rediger hyperlink",
RemoveLink : "Fjern hyperlink",
+VisitLink : "Ã
bn hyperlink",
Anchor : "Indsæt/rediger bogmærke",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Fjern bogmærke",
InsertImageLbl : "Indsæt billede",
InsertImage : "Indsæt/rediger billede",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "Lige margener",
DecreaseIndent : "Formindsk indrykning",
IncreaseIndent : "Forøg indrykning",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "Blokcitat",
+CreateDiv : "Opret div container",
+EditDiv : "Rediger div container",
+DeleteDiv : "Fjern div container",
Undo : "Fortryd",
Redo : "Annuller fortryd",
NumberedListLbl : "Talopstilling",
@@ -112,20 +116,20 @@
CellCM : "Celle",
RowCM : "Række",
ColumnCM : "Kolonne",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Indsæt række efter",
+InsertRowBefore : "Indsæt række før",
DeleteRows : "Slet række",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Indsæt kolonne efter",
+InsertColumnBefore : "Indsæt kolonne før",
DeleteColumns : "Slet kolonne",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Indsæt celle efter",
+InsertCellBefore : "Indsæt celle før",
DeleteCells : "Slet celle",
MergeCells : "Flet celler",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Flet til højre",
+MergeDown : "Flet nedad",
+HorizontalSplitCell : "Del celle vandret",
+VerticalSplitCell : "Del celle lodret",
TableDelete : "Slet tabel",
CellProperties : "Egenskaber for celle",
TableProperties : "Egenskaber for tabel",
@@ -157,6 +161,7 @@
NoActiveX : "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.<br>Slå \"Kør ActiveX-objekter og plug-ins\" til, ellers vil du opleve fejl og manglende muligheder.",
BrowseServerBlocked : "Browseren kunne ikke åbne de nødvendige ressourcer!<br>Slå pop-up blokering fra.",
DialogBlocked : "Dialogvinduet kunne ikke åbnes!<br>Slå pop-up blokering fra.",
+VisitLinkBlocked : "Det var ikke muligt at åbne et nyt vindue. Tjek, at ingen popup-blokkere er aktive.",
// Dialogs
DlgBtnOK : "OK",
@@ -271,7 +276,7 @@
DlnLnkMsgNoUrl : "Indtast hyperlink URL!",
DlnLnkMsgNoEMail : "Indtast e-mailaddresse!",
DlnLnkMsgNoAnchor : "Vælg bogmærke!",
-DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING
+DlnLnkMsgInvPopName : "Navnet på popup'en skal starte med et bogstav og må ikke indeholde mellemrum",
// Color Dialog
DlgColorTitle : "Vælg farve",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cellemargen",
DlgTableCaption : "Titel",
DlgTableSummary : "Resume",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Egenskaber for celle",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Centreret",
DlgCellVerAlignBottom : "Nederst",
DlgCellVerAlignBaseline : "Grundlinje",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Højde i antal rækker",
DlgCellCollSpan : "Bredde i antal kolonner",
DlgCellBackColor : "Baggrundsfarve",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Vælg...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Søg og erstat",
// Find Dialog
DlgFindTitle : "Find",
@@ -356,7 +369,7 @@
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
+DlgPasteSec : "På grund af browserens sikkerhedsindstillinger kan editoren ikke tilgå udklipsholderen direkte. Du skal indsætte udklipsholderens indhold i dette vindue igen.",
DlgPasteIgnoreFont : "Ignorer font definitioner",
DlgPasteRemoveStyles : "Ignorer typografi",
@@ -392,9 +405,9 @@
// Button Dialog
DlgButtonText : "Tekst",
DlgButtonType : "Type",
-DlgButtonTypeBtn : "Button", //MISSING
-DlgButtonTypeSbm : "Submit", //MISSING
-DlgButtonTypeRst : "Reset", //MISSING
+DlgButtonTypeBtn : "Knap",
+DlgButtonTypeSbm : "Send",
+DlgButtonTypeRst : "Nulstil",
// Checkbox and Radio Button Dialogs
DlgCheckboxName : "Navn",
@@ -443,7 +456,7 @@
// Bulleted List Dialog
BulletedListProp : "Egenskaber for punktopstilling",
NumberedListProp : "Egenskaber for talopstilling",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "Start",
DlgLstType : "Type",
DlgLstTypeCircle : "Cirkel",
DlgLstTypeDisc : "Udfyldt cirkel",
@@ -466,15 +479,15 @@
DlgDocLangDirRTL : "Fra højre mod venstre (RTL)",
DlgDocLangCode : "Landekode",
DlgDocCharSet : "Tegnsæt kode",
-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 : "Centraleuropæisk",
+DlgDocCharSetCT : "Traditionel kinesisk (Big5)",
+DlgDocCharSetCR : "Kyrillisk",
+DlgDocCharSetGR : "Græsk",
+DlgDocCharSetJP : "Japansk",
+DlgDocCharSetKR : "Koreansk",
+DlgDocCharSetTR : "Tyrkisk",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Vesteuropæisk",
DlgDocCharSetOther : "Anden tegnsæt kode",
DlgDocDocType : "Dokumenttype kategori",
@@ -504,12 +517,18 @@
DlgTemplatesSelMsg : "Vælg den skabelon, som skal åbnes i editoren.<br>(Nuværende indhold vil blive overskrevet!):",
DlgTemplatesLoading : "Henter liste over skabeloner...",
DlgTemplatesNoTpl : "(Der er ikke defineret nogen skabelon!)",
-DlgTemplatesReplace : "Replace actual contents", //MISSING
+DlgTemplatesReplace : "Erstat det faktiske indhold",
// About Dialog
DlgAboutAboutTab : "Om",
DlgAboutBrowserInfoTab : "Generelt",
DlgAboutLicenseTab : "Licens",
DlgAboutVersion : "version",
-DlgAboutInfo : "For yderlig information gå til"
+DlgAboutInfo : "For yderlig information gå til",
+
+// Div Dialog
+DlgDivGeneralTab : "Generelt",
+DlgDivAdvancedTab : "Avanceret",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/de.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/de.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/de.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Link einfügen/editieren",
RemoveLink : "Link entfernen",
+VisitLink : "Link aufrufen",
Anchor : "Anker einfügen/editieren",
AnchorDelete : "Anker entfernen",
InsertImageLbl : "Bild",
@@ -72,6 +73,9 @@
DecreaseIndent : "Einzug verringern",
IncreaseIndent : "Einzug erhöhen",
Blockquote : "Zitatblock",
+CreateDiv : "Erzeuge Div Block",
+EditDiv : "Bearbeite Div Block",
+DeleteDiv : "Entferne Div Block",
Undo : "Rückgängig",
Redo : "Wiederherstellen",
NumberedListLbl : "Nummerierte Liste",
@@ -157,6 +161,7 @@
NoActiveX : "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können",
BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
DialogBlocked : "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+VisitLinkBlocked : "Es war leider nicht möglich ein neues Fenster zu öffnen. Bitte versichern Sie sich das der Popup-Blocker ausgeschaltet ist.",
// Dialogs
DlgBtnOK : "OK",
@@ -197,8 +202,8 @@
DlgImgLockRatio : "GröÃenverhältniss beibehalten",
DlgBtnResetSize : "GröÃe zurücksetzen",
DlgImgBorder : "Rahmen",
-DlgImgHSpace : "H-Abstand",
-DlgImgVSpace : "V-Abstand",
+DlgImgHSpace : "Horizontal-Abstand",
+DlgImgVSpace : "Vertikal-Abstand",
DlgImgAlign : "Ausrichtung",
DlgImgAlignLeft : "Links",
DlgImgAlignAbsBottom: "Abs Unten",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Zellenabstand innen",
DlgTableCaption : "Ãberschrift",
DlgTableSummary : "Inhaltsübersicht",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Zellen-Eigenschaften",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Mitte",
DlgCellVerAlignBottom : "Unten",
DlgCellVerAlignBaseline : "Grundlinie",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Zeilen zusammenfassen",
DlgCellCollSpan : "Spalten zusammenfassen",
DlgCellBackColor : "Hintergrundfarbe",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser-Info",
DlgAboutLicenseTab : "Lizenz",
DlgAboutVersion : "Version",
-DlgAboutInfo : "Für weitere Informationen siehe"
+DlgAboutInfo : "Für weitere Informationen siehe",
+
+// Div Dialog
+DlgDivGeneralTab : "Allgemein",
+DlgDivAdvancedTab : "Erweitert",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/el.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/el.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/el.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ΣÏνδεÏÎ¼Î¿Ï (Link)",
InsertLink : "ÎιÏαγÏγή/ÎεÏαβολή ΣÏ
νδÎÏμοÏ
(Link)",
RemoveLink : "ÎÏαίÏεÏη ΣÏ
νδÎÏμοÏ
(Link)",
+VisitLink : "Open Link", //MISSING
Anchor : "ÎιÏαγÏγή/εÏεξεÏγαÏία Anchor",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ÎικÏνα",
@@ -72,6 +73,9 @@
DecreaseIndent : "ÎείÏÏη ÎÏοÏήÏ",
IncreaseIndent : "ÎÏξηÏη ÎÏοÏήÏ",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ÎναίÏεÏη",
Redo : "ÎÏαναÏοÏά",
NumberedListLbl : "ÎίÏÏα με ÎÏιθμοÏÏ",
@@ -157,6 +161,7 @@
NoActiveX : "Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
browser ÏÎ±Ï Î¼ÏοÏεί να ÏεÏιοÏίÏοÏ
ν κάÏÎ¿Î¹ÎµÏ ÏÏ
θμίÏÎµÎ¹Ï ÏοÏ
ÏÏογÏάμμαÏοÏ. ΧÏειάζεÏαι να ενεÏγοÏοιήÏεÏε Ïην εÏιλογή \"Run ActiveX controls and plug-ins\". ÎÏÏÏ ÏαÏοÏ
ÏιαÏÏοÏν λάθη και ÏαÏαÏηÏήÏεÏε ελειÏÎµÎ¯Ï Î»ÎµÎ¹ÏοÏ
ÏγίεÏ.",
BrowseServerBlocked : "Îι ÏÏÏοι ÏοÏ
browser ÏÎ±Ï Î´ÎµÎ½ είναι ÏÏοÏÏελάÏιμοι. ΣιγοÏ
ÏεÏ
ÏείÏε ÏÏι δεν Ï
ÏάÏÏοÏ
ν ενεÏγοί popup blockers.",
DialogBlocked : "Îεν ήÏαν δÏ
ναÏÏ Î½Î± ανοίξει Ïο ÏαÏάθÏ
Ïο διαλÏγοÏ
. ΣιγοÏ
ÏεÏ
ÏείÏε ÏÏι δεν Ï
ÏάÏÏοÏ
ν ενεÏγοί popup blockers.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÎÎμιÏμα κελιÏν",
DlgTableCaption : "Î¥ÏÎÏÏιÏλοÏ",
DlgTableSummary : "ΠεÏίληÏη",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ÎδιÏÏηÏÎµÏ ÎελιοÏ",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ÎÎÏη (Middle)",
DlgCellVerAlignBottom : "ÎάÏÏ (Bottom)",
DlgCellVerAlignBaseline : "ÎÏαμμή ÎάÏÎ·Ï (Baseline)",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ÎÏιθμÏÏ ÎÏαμμÏν (Rows Span)",
DlgCellCollSpan : "ÎÏιθμÏÏ ÎολÏνÏν (Columns Span)",
DlgCellBackColor : "ΧÏÏμα Î¥ÏοβάθÏοÏ
",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ΠληÏοÏοÏÎ¯ÎµÏ Browser",
DlgAboutLicenseTab : "Îδεια",
DlgAboutVersion : "ÎκδοÏη",
-DlgAboutInfo : "Îια ÏεÏιÏÏÏÏεÏÎµÏ ÏληÏοÏοÏίεÏ"
+DlgAboutInfo : "Îια ÏεÏιÏÏÏÏεÏÎµÏ ÏληÏοÏοÏίεÏ",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-au.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/en-au.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-au.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
+VisitLink : "Open Link",
Anchor : "Insert/Edit Anchor",
AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
Blockquote : "Blockquote",
+CreateDiv : "Create Div Container",
+EditDiv : "Edit Div Container",
+DeleteDiv : "Remove Div Container",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -157,6 +161,7 @@
NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cell padding",
DlgTableCaption : "Caption",
DlgTableSummary : "Summary",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cell Properties",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middle",
DlgCellVerAlignBottom : "Bottom",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type",
+DlgCellTypeData : "Data",
+DlgCellTypeHeader : "Header",
DlgCellRowSpan : "Rows Span",
DlgCellCollSpan : "Columns Span",
DlgCellBackColor : "Background Colour",
@@ -355,7 +368,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>.",
+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",
@@ -501,7 +514,7 @@
// Templates Dialog
Templates : "Templates",
DlgTemplatesTitle : "Content Templates",
-DlgTemplatesSelMsg : "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesSelMsg : "Please select the template to open in the editor<br />(the actual contents will be lost):",
DlgTemplatesLoading : "Loading templates list. Please wait...",
DlgTemplatesNoTpl : "(No templates defined)",
DlgTemplatesReplace : "Replace actual contents",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
-DlgAboutInfo : "For further information go to"
+DlgAboutInfo : "For further information go to",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Advanced",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-ca.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/en-ca.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-ca.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
+VisitLink : "Open Link",
Anchor : "Insert/Edit Anchor",
AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
Blockquote : "Blockquote",
+CreateDiv : "Create Div Container",
+EditDiv : "Edit Div Container",
+DeleteDiv : "Remove Div Container",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -157,6 +161,7 @@
NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cell padding",
DlgTableCaption : "Caption",
DlgTableSummary : "Summary",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cell Properties",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middle",
DlgCellVerAlignBottom : "Bottom",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type",
+DlgCellTypeData : "Data",
+DlgCellTypeHeader : "Header",
DlgCellRowSpan : "Rows Span",
DlgCellCollSpan : "Columns Span",
DlgCellBackColor : "Background Colour",
@@ -355,7 +368,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>.",
+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",
@@ -501,7 +514,7 @@
// Templates Dialog
Templates : "Templates",
DlgTemplatesTitle : "Content Templates",
-DlgTemplatesSelMsg : "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesSelMsg : "Please select the template to open in the editor<br />(the actual contents will be lost):",
DlgTemplatesLoading : "Loading templates list. Please wait...",
DlgTemplatesNoTpl : "(No templates defined)",
DlgTemplatesReplace : "Replace actual contents",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
-DlgAboutInfo : "For further information go to"
+DlgAboutInfo : "For further information go to",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Advanced",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-uk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/en-uk.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en-uk.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
+VisitLink : "Open Link",
Anchor : "Insert/Edit Anchor",
AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
Blockquote : "Blockquote",
+CreateDiv : "Create Div Container",
+EditDiv : "Edit Div Container",
+DeleteDiv : "Remove Div Container",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -157,6 +161,7 @@
NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cell padding",
DlgTableCaption : "Caption",
DlgTableSummary : "Summary",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cell Properties",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middle",
DlgCellVerAlignBottom : "Bottom",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type",
+DlgCellTypeData : "Data",
+DlgCellTypeHeader : "Header",
DlgCellRowSpan : "Rows Span",
DlgCellCollSpan : "Columns Span",
DlgCellBackColor : "Background Colour",
@@ -355,7 +368,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>.",
+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",
@@ -501,7 +514,7 @@
// Templates Dialog
Templates : "Templates",
DlgTemplatesTitle : "Content Templates",
-DlgTemplatesSelMsg : "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesSelMsg : "Please select the template to open in the editor<br />(the actual contents will be lost):",
DlgTemplatesLoading : "Loading templates list. Please wait...",
DlgTemplatesNoTpl : "(No templates defined)",
DlgTemplatesReplace : "Replace actual contents",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
-DlgAboutInfo : "For further information go to"
+DlgAboutInfo : "For further information go to",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Advanced",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/en.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/en.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Insert/Edit Link",
RemoveLink : "Remove Link",
+VisitLink : "Open Link",
Anchor : "Insert/Edit Anchor",
AnchorDelete : "Remove Anchor",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Decrease Indent",
IncreaseIndent : "Increase Indent",
Blockquote : "Blockquote",
+CreateDiv : "Create Div Container",
+EditDiv : "Edit Div Container",
+DeleteDiv : "Remove Div Container",
Undo : "Undo",
Redo : "Redo",
NumberedListLbl : "Numbered List",
@@ -157,6 +161,7 @@
NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cell padding",
DlgTableCaption : "Caption",
DlgTableSummary : "Summary",
+DlgTableHeaders : "Headers",
+DlgTableHeadersNone : "None",
+DlgTableHeadersColumn : "First column",
+DlgTableHeadersRow : "First Row",
+DlgTableHeadersBoth : "Both",
// Table Cell Dialog
DlgCellTitle : "Cell Properties",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Middle",
DlgCellVerAlignBottom : "Bottom",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type",
+DlgCellTypeData : "Data",
+DlgCellTypeHeader : "Header",
DlgCellRowSpan : "Rows Span",
DlgCellCollSpan : "Columns Span",
DlgCellBackColor : "Background Color",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browser Info",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
-DlgAboutInfo : "For further information go to"
+DlgAboutInfo : "For further information go to",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Advanced",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/eo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Ligilo",
InsertLink : "Enmeti/ÅanÄi Ligilon",
RemoveLink : "Forigi Ligilon",
+VisitLink : "Open Link", //MISSING
Anchor : "Enmeti/ÅanÄi Ankron",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Bildo",
@@ -72,6 +73,9 @@
DecreaseIndent : "Malpligrandigi KrommarÄenon",
IncreaseIndent : "Pligrandigi KrommarÄenon",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Malfari",
Redo : "Refari",
NumberedListLbl : "Numera Listo",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "Akcepti",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÄirkaÅenhava Plenigado",
DlgTableCaption : "Titolo",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Atributoj de Celo",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Centre",
DlgCellVerAlignBottom : "Malsupre",
DlgCellVerAlignBaseline : "Je Malsupro de Teksto",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Linioj Kunfanditaj",
DlgCellCollSpan : "Kolumnoj Kunfanditaj",
DlgCellBackColor : "Fono",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versio",
-DlgAboutInfo : "Por pli da informoj, vizitu"
+DlgAboutInfo : "Por pli da informoj, vizitu",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/es.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/es.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/es.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "VÃnculo",
InsertLink : "Insertar/Editar VÃnculo",
RemoveLink : "Eliminar VÃnculo",
+VisitLink : "Abrir enlace",
Anchor : "Referencia",
AnchorDelete : "Eliminar Referencia",
InsertImageLbl : "Imagen",
@@ -72,6 +73,9 @@
DecreaseIndent : "Disminuir SangrÃa",
IncreaseIndent : "Aumentar SangrÃa",
Blockquote : "Cita",
+CreateDiv : "Crear contenedor (div)",
+EditDiv : "Editar contenedor (div)",
+DeleteDiv : "Eliminar contenedor (div)",
Undo : "Deshacer",
Redo : "Rehacer",
NumberedListLbl : "Numeración",
@@ -157,6 +161,7 @@
NoActiveX : "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas caracterÃsticas del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.",
BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
DialogBlocked : "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+VisitLinkBlocked : "Nose ha podido abrir la ventana. Asegurese de que todos los bloqueadores de popups están deshabilitados.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Esp. interior",
DlgTableCaption : "TÃtulo",
DlgTableSummary : "SÃntesis",
+DlgTableHeaders : "Encabezados",
+DlgTableHeadersNone : "Ninguno",
+DlgTableHeadersColumn : "Primera columna",
+DlgTableHeadersRow : "Primera fila",
+DlgTableHeadersBoth : "Ambas",
// Table Cell Dialog
DlgCellTitle : "Propiedades de Celda",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Medio",
DlgCellVerAlignBottom : "ie",
DlgCellVerAlignBaseline : "LÃnea de Base",
+DlgCellType : "Tipo de celda",
+DlgCellTypeData : "Datos",
+DlgCellTypeHeader : "Encabezado",
DlgCellRowSpan : "Abarcar Filas",
DlgCellCollSpan : "Abarcar Columnas",
DlgCellBackColor : "Color de Fondo",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Información de Navegador",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "versión",
-DlgAboutInfo : "Para mayor información por favor dirigirse a"
+DlgAboutInfo : "Para mayor información por favor dirigirse a",
+
+// Div Dialog
+DlgDivGeneralTab : "General",
+DlgDivAdvancedTab : "Avanzado",
+DlgDivStyle : "Estilo",
+DlgDivInlineStyle : "Estilos CSS"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/et.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/et.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/et.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Sisesta link / Muuda linki",
RemoveLink : "Eemalda link",
+VisitLink : "Open Link", //MISSING
Anchor : "Sisesta ankur / Muuda ankrut",
AnchorDelete : "Eemalda ankur",
InsertImageLbl : "Pilt",
@@ -72,6 +73,9 @@
DecreaseIndent : "Vähenda taanet",
IncreaseIndent : "Suurenda taanet",
Blockquote : "Blokktsitaat",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Võta tagasi",
Redo : "Korda toimingut",
NumberedListLbl : "Nummerdatud loetelu",
@@ -157,6 +161,7 @@
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.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Lahtri täidis",
DlgTableCaption : "Tabeli tiitel",
DlgTableSummary : "Kokkuvõte",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Lahtri atribuudid",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Keskele",
DlgCellVerAlignBottom : "Alla",
DlgCellVerAlignBaseline : "Baasjoonele",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Reaulatus",
DlgCellCollSpan : "Veeruulatus",
DlgCellBackColor : "Tausta värv",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Veebisirvija info",
DlgAboutLicenseTab : "Litsents",
DlgAboutVersion : "versioon",
-DlgAboutInfo : "Täpsema info saamiseks mine"
+DlgAboutInfo : "Täpsema info saamiseks mine",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/eu.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/eu.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -41,10 +41,11 @@
PasteWord : "Itsatsi Word-etik",
Print : "Inprimatu",
SelectAll : "Hautatu dena",
-RemoveFormat : "Kendu Formatoa",
+RemoveFormat : "Kendu Formatua",
InsertLinkLbl : "Esteka",
InsertLink : "Txertatu/Editatu Esteka",
RemoveLink : "Kendu Esteka",
+VisitLink : "Ireki Esteka",
Anchor : "Aingura",
AnchorDelete : "Ezabatu Aingura",
InsertImageLbl : "Irudia",
@@ -73,6 +74,9 @@
DecreaseIndent : "Txikitu Koska",
IncreaseIndent : "Handitu Koska",
Blockquote : "Aipamen blokea",
+CreateDiv : "Sortu Div Edukitzailea",
+EditDiv : "Editatu Div Edukitzailea",
+DeleteDiv : "Ezabatu Div Edukitzailea",
Undo : "Desegin",
Redo : "Berregin",
NumberedListLbl : "Zenbakidun Zerrenda",
@@ -82,7 +86,7 @@
ShowTableBorders : "Erakutsi Taularen Ertzak",
ShowDetails : "Erakutsi Xehetasunak",
Style : "Estiloa",
-FontFormat : "Formatoa",
+FontFormat : "Formatua",
Font : "Letra-tipoa",
FontSize : "Tamaina",
TextColor : "Testu Kolorea",
@@ -149,15 +153,16 @@
// Alerts and Messages
ProcessingXHTML : "XHTML Prozesatzen. Itxaron mesedez...",
Done : "Eginda",
-PasteWordConfirm : "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",
+PasteWordConfirm : "Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?",
NotCompatiblePaste : "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?",
UnknownToolbarItem : "Ataza barrako elementu ezezaguna \"%1\"",
UnknownCommand : "Komando izen ezezaguna \"%1\"",
NotImplemented : "Komando ez inplementatua",
UnknownToolbarSet : "Ataza barra \"%1\" taldea ez da existitzen",
-NoActiveX : "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",
+NoActiveX : "Zure nabigatzailearen segurtasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta pluginak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",
BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
DialogBlocked : "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+VisitLinkBlocked : "Ezin da leiho berri bat ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
// Dialogs
DlgBtnOK : "Ados",
@@ -192,7 +197,7 @@
DlgImgBtnUpload : "Zerbitzarira bidalia",
DlgImgURL : "URL",
DlgImgUpload : "Gora Kargatu",
-DlgImgAlt : "Textu Alternatiboa",
+DlgImgAlt : "Ordezko Testua",
DlgImgWidth : "Zabalera",
DlgImgHeight : "Altuera",
DlgImgLockRatio : "Erlazioa Blokeatu",
@@ -221,7 +226,7 @@
DlgFlashChkMenu : "Flasharen Menua Gaitu",
DlgFlashScale : "Eskalatu",
DlgFlashScaleAll : "Dena erakutsi",
-DlgFlashScaleNoBorder : "Ertzarik gabe",
+DlgFlashScaleNoBorder : "Ertzik gabe",
DlgFlashScaleFit : "Doitu",
// Link Dialog
@@ -231,7 +236,7 @@
DlgLnkType : "Esteka Mota",
DlgLnkTypeURL : "URL",
-DlgLnkTypeAnchor : "Aingura horrialde honentan",
+DlgLnkTypeAnchor : "Aingura orrialde honetan",
DlgLnkTypeEMail : "ePosta",
DlgLnkProto : "Protokoloa",
DlgLnkProtoOther : "<Beste batzuk>",
@@ -248,14 +253,14 @@
DlgLnkTarget : "Target (Helburua)",
DlgLnkTargetFrame : "<marko>",
-DlgLnkTargetPopup : "<popup lehioa>",
-DlgLnkTargetBlank : "Lehio Berria (_blank)",
-DlgLnkTargetParent : "Lehio Gurasoa (_parent)",
-DlgLnkTargetSelf : "Lehio Berdina (_self)",
-DlgLnkTargetTop : "Goiko Lehioa (_top)",
+DlgLnkTargetPopup : "<popup leihoa>",
+DlgLnkTargetBlank : "Leiho Berria (_blank)",
+DlgLnkTargetParent : "Leiho Gurasoa (_parent)",
+DlgLnkTargetSelf : "Leiho Berdina (_self)",
+DlgLnkTargetTop : "Goiko Leihoa (_top)",
DlgLnkTargetFrameName : "Marko Helburuaren Izena",
-DlgLnkPopWinName : "Popup Lehioaren Izena",
-DlgLnkPopWinFeat : "Popup Lehioaren Ezaugarriak",
+DlgLnkPopWinName : "Popup Leihoaren Izena",
+DlgLnkPopWinFeat : "Popup Leihoaren Ezaugarriak",
DlgLnkPopResize : "Tamaina Aldakorra",
DlgLnkPopLocation : "Kokaleku Barra",
DlgLnkPopMenu : "Menu Barra",
@@ -272,7 +277,7 @@
DlnLnkMsgNoUrl : "Mesedez URL esteka idatzi",
DlnLnkMsgNoEMail : "Mesedez ePosta helbidea idatzi",
DlnLnkMsgNoAnchor : "Mesedez aingura bat aukeratu",
-DlnLnkMsgInvPopName : "Popup lehioaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan",
+DlnLnkMsgInvPopName : "Popup leihoaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan",
// Color Dialog
DlgColorTitle : "Kolore Aukeraketa",
@@ -304,6 +309,11 @@
DlgTableCellPad : "Gelaxken betegarria",
DlgTableCaption : "Epigrafea",
DlgTableSummary : "Laburpena",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Gelaxken Ezaugarriak",
@@ -315,7 +325,7 @@
DlgCellWordWrapNotSet : "<Ezarri gabe>",
DlgCellWordWrapYes : "Bai",
DlgCellWordWrapNo : "Ez",
-DlgCellHorAlign : "Horizontal Alignment",
+DlgCellHorAlign : "Lerrokatu Horizontalki",
DlgCellHorAlignNotSet : "<Ezarri gabe>",
DlgCellHorAlignLeft : "Ezkerrean",
DlgCellHorAlignCenter : "Erdian",
@@ -325,12 +335,15 @@
DlgCellVerAlignTop : "Goian",
DlgCellVerAlignMiddle : "Erdian",
DlgCellVerAlignBottom : "Behean",
-DlgCellVerAlignBaseline : "Oinan",
+DlgCellVerAlignBaseline : "Oinean",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Lerroak Hedatu",
DlgCellCollSpan : "Zutabeak Hedatu",
DlgCellBackColor : "Atzeko Kolorea",
DlgCellBorderColor : "Ertzako Kolorea",
-DlgCellBtnSelect : "Aukertau...",
+DlgCellBtnSelect : "Aukeratu...",
// Find and Replace Dialog
DlgFindAndReplaceTitle : "Bilatu eta Ordeztu",
@@ -405,7 +418,7 @@
// Form Dialog
DlgFormName : "Izena",
DlgFormAction : "Ekintza",
-DlgFormMethod : "Method",
+DlgFormMethod : "Metodoa",
// Select Field Dialog
DlgSelectName : "Izena",
@@ -457,7 +470,7 @@
// Document Properties Dialog
DlgDocGeneralTab : "Orokorra",
-DlgDocBackTab : "Atzekaldea",
+DlgDocBackTab : "Atzealdea",
DlgDocColorsTab : "Koloreak eta Marjinak",
DlgDocMetaTab : "Meta Informazioa",
@@ -483,7 +496,7 @@
DlgDocIncXHTML : "XHTML Ezarpenak",
DlgDocBgColor : "Atzeko Kolorea",
DlgDocBgImage : "Atzeko Irudiaren URL-a",
-DlgDocBgNoScroll : "Korritze gabeko Atzekaldea",
+DlgDocBgNoScroll : "Korritze gabeko Atzealdea",
DlgDocCText : "Testua",
DlgDocCLink : "Estekak",
DlgDocCVisited : "Bisitatutako Estekak",
@@ -512,5 +525,11 @@
DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa",
DlgAboutLicenseTab : "Lizentzia",
DlgAboutVersion : "bertsioa",
-DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan"
+DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan",
+
+// Div Dialog
+DlgDivGeneralTab : "Orokorra",
+DlgDivAdvancedTab : "Aurreratua",
+DlgDivStyle : "Estiloa",
+DlgDivInlineStyle : "Inline Estiloa"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fa.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/fa.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fa.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Ù¾ÛÙÙد",
InsertLink : "Ú¯ÙجاÙدÙ/ÙÛراÛØ´ ÙÙ¾ÛÙÙد",
RemoveLink : "برداشت٠پÛÙÙد",
+VisitLink : "باز کرد٠پÛÙÙد",
Anchor : "Ú¯ÙجاÙدÙ/ÙÛراÛØ´ ÙÙÙگر",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "برداشت٠ÙÙگر",
InsertImageLbl : "تصÙÛر",
InsertImage : "Ú¯ÙجاÙدÙ/ÙÛراÛØ´ ÙتصÙÛر",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "بÙÙÚ©âÚÛÙ",
DecreaseIndent : "کاÙØ´ تÙرÙتگÛ",
IncreaseIndent : "اÙزاÛØ´ تÙرÙتگÛ",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "بÙÙÚ© ÙÙÙ ÙÙÙ",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ÙاÚÛدÙ",
Redo : "بازÚÛدÙ",
NumberedListLbl : "ÙÙرست Ø´Ù
ارÙâدار",
@@ -105,27 +109,27 @@
ImageButton : "دکÙ
ÙÙ´ تصÙÛرÛ",
FitWindow : "بÛØ´ÛÙÙâØ³Ø§Ø²Û ÙاÙدازÙÙ´ ÙÛراÛشگر",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "ÙÙ
اÛØ´ بÙÙÚ©âÙا",
// Context Menu
EditLink : "ÙÛراÛØ´ Ù¾ÛÙÙد",
CellCM : "سÙÙÙ",
RowCM : "سطر",
ColumnCM : "ستÙÙ",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "اÙزÙد٠سطر بعد از",
+InsertRowBefore : "اÙزÙد٠سطر Ùب٠از",
DeleteRows : "Øذ٠سطرÙا",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "اÙزÙد٠ستÙ٠بعد از",
+InsertColumnBefore : "اÙزÙد٠ستÙÙ Ùب٠از",
DeleteColumns : "Øذ٠ستÙÙÙا",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "اÙزÙد٠سÙÙ٠بعد از",
+InsertCellBefore : "اÙزÙد٠سÙÙÙ Ùب٠از",
DeleteCells : "Øذ٠سÙÙÙÙا",
MergeCells : "ادغاÙ
سÙÙÙÙا",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "ادغاÙ
ب٠راست",
+MergeDown : "ادغاÙ
ب٠پاÛÛÙ",
+HorizontalSplitCell : "جدا کرد٠اÙÙÛ Ø³ÙÙÙ",
+VerticalSplitCell : "جدا کرد٠عÙ
ÙØ¯Û Ø³ÙÙÙ",
TableDelete : "پاکâکرد٠جدÙÙ",
CellProperties : "ÙÛÚÚ¯ÛÙØ§Û Ø³ÙÙÙ",
TableProperties : "ÙÛÚÚ¯ÛÙØ§Û Ø¬Ø¯ÙÙ",
@@ -157,6 +161,7 @@
NoActiveX : "تÙظÛÙ
ات اÙ
ÙÛØªÛ Ù
رÙرگر Ø´Ù
ا Ù
Ù
ک٠است در Ø¨Ø¹Ø¶Û Ø§Ø² ÙÛÚÚ¯ÛÙØ§Û Ù
رÙرگر Ù
ØدÙدÛت اÛجاد Ú©Ùد. Ø´Ù
ا باÛد گزÛÙÙÙ´ \"Run ActiveX controls and plug-ins\" را Ùعا٠کÙÛد. Ù
Ù
ک٠است Ø´Ù
ا با خطاÙاÛÛ Ø±Ùبر٠باشÛد Ù Ù
تÙج٠کÙ
بÙد ÙÛÚÚ¯ÛÙاÛÛ Ø´ÙÛد.",
BrowseServerBlocked : "تÙاÙاÛÛ Ø¨Ø§Ø²Ú¯Ø´Ø§ÛÛ Ù
رÙرگر Ù
Ùابع ÙراÙÙ
ÙÛست. اطÙ
ÛÙا٠Øاص٠کÙÛد ک٠تÙ
اÙ
Û Ø¨Ø±ÙاÙ
ÙâÙØ§Û Ù¾ÛØ´Ú¯ÛØ±Û Ø§Ø² ÙÙ
اÛØ´ popup را از کار بازداشتÙâاÛد.",
DialogBlocked : "تÙاÙاÛÛ Ø¨Ø§Ø²Ú¯Ø´Ø§ÛÛ Ù¾ÙجرÙÙ´ Ú©ÙÚÚ© ÙÚ¯Ùتگ٠ÙراÙÙ
ÙÛست. اطÙ
ÛÙا٠Øاص٠کÙÛد ک٠تÙ
اÙ
Û Ø¨Ø±ÙاÙ
ÙâÙØ§Û Ù¾ÛØ´Ú¯ÛØ±Û Ø§Ø² ÙÙ
اÛØ´ popup را از کار بازداشتÙâاÛد.",
+VisitLinkBlocked : "اÙ
کا٠بازکرد٠ÛÚ© Ù¾Ùجر٠جدÛد ÙÛست. اطÙ
ÛÙا٠Øاص٠کÙÛد ک٠تÙ
اÙ
Û Ø¨Ø±ÙاÙ
ÙâÙØ§Û Ù¾ÛØ´Ú¯ÛØ±Û Ø§Ø² ÙÙ
اÛØ´ popup را از کار بازداشتÙâاÛد.",
// Dialogs
DlgBtnOK : "پذÛرش",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÙاصÙÙÙ´ پرشد٠در سÙÙÙ",
DlgTableCaption : "عÙÙاÙ",
DlgTableSummary : "Ø®ÙاصÙ",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ÙÛÚÚ¯ÛÙØ§Û Ø³ÙÙÙ",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Ù
ÛاÙ",
DlgCellVerAlignBottom : "پائÛÙ",
DlgCellVerAlignBaseline : "خطâپاÛÙ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Ú¯Ø³ØªØ±Ø¯Ú¯Û Ø³Ø·Ø±Ùا",
DlgCellCollSpan : "Ú¯Ø³ØªØ±Ø¯Ú¯Û Ø³ØªÙÙÙا",
DlgCellBackColor : "رÙÚ¯ پسâزÙ
ÛÙÙ",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "برگزÛÙÛد...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "جستج٠٠جاÛگزÛÙÛ",
// Find Dialog
DlgFindTitle : "ÛاÙتÙ",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "اطÙاعات Ù
رÙرگر",
DlgAboutLicenseTab : "Ú¯ÙاÙÛÙاÙ
Ù",
DlgAboutVersion : "Ùگارش",
-DlgAboutInfo : "Ø¨Ø±Ø§Û Ø¢Ú¯Ø§ÙÛ Ø¨Ûشتر ب٠اÛÙ ÙشاÙÛ Ø¨Ø±ÙÛد"
+DlgAboutInfo : "Ø¨Ø±Ø§Û Ø¢Ú¯Ø§ÙÛ Ø¨Ûشتر ب٠اÛÙ ÙشاÙÛ Ø¨Ø±ÙÛد",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/fi.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fi.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Linkki",
InsertLink : "Lisää linkki/muokkaa linkkiä",
RemoveLink : "Poista linkki",
+VisitLink : "Open Link", //MISSING
Anchor : "Lisää ankkuri/muokkaa ankkuria",
AnchorDelete : "Poista ankkuri",
InsertImageLbl : "Kuva",
@@ -72,6 +73,9 @@
DecreaseIndent : "Pienennä sisennystä",
IncreaseIndent : "Suurenna sisennystä",
Blockquote : "Lainaus",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Kumoa",
Redo : "Toista",
NumberedListLbl : "Numerointi",
@@ -157,6 +161,7 @@
NoActiveX : "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.",
BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
DialogBlocked : "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Solujen sisennys",
DlgTableCaption : "Otsikko",
DlgTableSummary : "Yhteenveto",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Solun ominaisuudet",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Keskelle",
DlgCellVerAlignBottom : "Alas",
DlgCellVerAlignBaseline : "Tekstin alas",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Rivin jatkuvuus",
DlgCellCollSpan : "Sarakkeen jatkuvuus",
DlgCellBackColor : "Taustaväri",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Selaimen tiedot",
DlgAboutLicenseTab : "Lisenssi",
DlgAboutVersion : "versio",
-DlgAboutInfo : "Lisää tietoa osoitteesta"
+DlgAboutInfo : "Lisää tietoa osoitteesta",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/fo.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fo.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Tilknýti",
InsertLink : "Ger/broyt tilknýti",
RemoveLink : "Strika tilknýti",
+VisitLink : "Opna tilknýti",
Anchor : "Ger/broyt marknastein",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Strika marknastein",
InsertImageLbl : "Myndir",
InsertImage : "Set inn/broyt mynd",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "Javnir tekstkantar",
DecreaseIndent : "Minka reglubrotarinntriv",
IncreaseIndent : "Ãkja reglubrotarinntriv",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "Blockquote",
+CreateDiv : "Ger DIV øki",
+EditDiv : "Broyt DIV øki",
+DeleteDiv : "Strika DIV øki",
Undo : "Angra",
Redo : "Vend aftur",
NumberedListLbl : "Talmerktur listi",
@@ -105,27 +109,27 @@
ImageButton : "Myndaknøttur",
FitWindow : "Set tekstviðgera til fulla stødd",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "VÃs blokkar",
// Context Menu
EditLink : "Broyt tilknýti",
CellCM : "Meski",
RowCM : "Rað",
ColumnCM : "Kolonna",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Set rað inn aftaná",
+InsertRowBefore : "Set rað inn áðrenn",
DeleteRows : "Strika røðir",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Set kolonnu inn aftaná",
+InsertColumnBefore : "Set kolonnu inn áðrenn",
DeleteColumns : "Strika kolonnur",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Set meska inn aftaná",
+InsertCellBefore : "Set meska inn áðrenn",
DeleteCells : "Strika meskar",
MergeCells : "Flætta meskar",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Flætta meskar til høgru",
+MergeDown : "Flætta saman",
+HorizontalSplitCell : "Kloyv meska vatnrætt",
+VerticalSplitCell : "Kloyv meska loddrætt",
TableDelete : "Strika tabell",
CellProperties : "Meskueginleikar",
TableProperties : "Tabelleginleikar",
@@ -157,6 +161,7 @@
NoActiveX : "Trygdaruppsetingin à alnótskaganum kann sum er avmarka onkrar hentleikar à tekstviðgeranum. Tú mást loyva møguleikanum \"Run/Kør ActiveX controls and plug-ins\". Tú kanst uppliva feilir og ávaringar um tvørrandi hentleikar.",
BrowseServerBlocked : "Ambætarakagin kundi ikki opnast. Tryggja tær, at allar pop-up forðingar eru óvirknar.",
DialogBlocked : "Tað eyðnaðist ikki at opna samskiftisrútin. Tryggja tær, at allar pop-up forðingar eru óvirknar.",
+VisitLinkBlocked : "Tað eyðnaðist ikki at opna nýggjan rút. Tryggja tær, at allar pop-up forðingar eru óvirknar.",
// Dialogs
DlgBtnOK : "Góðkent",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Meskubreddi",
DlgTableCaption : "Tabellfrágreiðing",
DlgTableSummary : "Samandráttur",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Mesku eginleikar",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Miðjan",
DlgCellVerAlignBottom : "Niðast",
DlgCellVerAlignBaseline : "Basislinja",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Røðir, meskin fevnir um",
DlgCellCollSpan : "Kolonnur, meskin fevnir um",
DlgCellBackColor : "Bakgrundslitur",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Vel...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Finn og broyt",
// Find Dialog
DlgFindTitle : "Finn",
@@ -349,19 +362,19 @@
DlgReplaceWordChk : "Bert heil orð",
// Paste Operations / Dialog
-PasteErrorCut : "Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).",
+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).",
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
+DlgPasteSec : "Trygdaruppseting alnótskagans forðar tekstviðgeranum à beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur à hesum rútinum.",
DlgPasteIgnoreFont : "Forfjóna Font definitiónirnar",
-DlgPasteRemoveStyles : "Strika Styles definitiónir",
+DlgPasteRemoveStyles : "Strika typografi definitiónir",
// Color Picker
-ColorAutomatic : "Av sær sjálvum",
+ColorAutomatic : "Automatiskt",
ColorMoreColors : "Fleiri litir...",
// Document Properties
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Upplýsingar um alnótskagan",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "version",
-DlgAboutInfo : "Fyri fleiri upplýsingar, far til"
+DlgAboutInfo : "Fyri fleiri upplýsingar, far til",
+
+// Div Dialog
+DlgDivGeneralTab : "Generelt",
+DlgDivAdvancedTab : "Fjølbroytt",
+DlgDivStyle : "Typografi",
+DlgDivInlineStyle : "Inline typografi"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr-ca.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/fr-ca.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr-ca.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Lien",
InsertLink : "Insérer/modifier le lien",
RemoveLink : "Supprimer le lien",
+VisitLink : "Suivre le lien",
Anchor : "Insérer/modifier l'ancre",
AnchorDelete : "Supprimer l'ancre",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Diminuer le retrait",
IncreaseIndent : "Augmenter le retrait",
Blockquote : "Citation",
+CreateDiv : "Créer Balise Div",
+EditDiv : "Modifier Balise Div",
+DeleteDiv : "Supprimer Balise Div",
Undo : "Annuler",
Redo : "Refaire",
NumberedListLbl : "Liste numérotée",
@@ -157,6 +161,7 @@
NoActiveX : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",
BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",
DialogBlocked : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Contour",
DlgTableCaption : "Titre",
DlgTableSummary : "Résumé",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Propriétés de la cellule",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Milieu",
DlgCellVerAlignBottom : "Bas",
DlgCellVerAlignBaseline : "Bas du texte",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Lignes fusionnées",
DlgCellCollSpan : "Colonnes fusionnées",
DlgCellBackColor : "Couleur de fond",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Navigateur",
DlgAboutLicenseTab : "License",
DlgAboutVersion : "Version",
-DlgAboutInfo : "Pour plus d'informations, visiter"
+DlgAboutInfo : "Pour plus d'informations, visiter",
+
+// Div Dialog
+DlgDivGeneralTab : "Général",
+DlgDivAdvancedTab : "Avancé",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Attribut Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/fr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/fr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Lien",
InsertLink : "Insérer/modifier le lien",
RemoveLink : "Supprimer le lien",
+VisitLink : "Suivre le lien",
Anchor : "Insérer/modifier l'ancre",
AnchorDelete : "Supprimer l'ancre",
InsertImageLbl : "Image",
@@ -72,6 +73,9 @@
DecreaseIndent : "Diminuer le retrait",
IncreaseIndent : "Augmenter le retrait",
Blockquote : "Citation",
+CreateDiv : "Créer Balise Div",
+EditDiv : "Modifier Balise Div",
+DeleteDiv : "Supprimer Balise Div",
Undo : "Annuler",
Redo : "Refaire",
NumberedListLbl : "Liste numérotée",
@@ -157,6 +161,7 @@
NoActiveX : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",
BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",
DialogBlocked : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",
+VisitLinkBlocked : "Impossible d'ouvrir une nouvelle fenêtre. Assurez-vous que les bloqueurs de popups soient désactivés.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Contour",
DlgTableCaption : "Titre",
DlgTableSummary : "Résumé",
+DlgTableHeaders : "Entêtes",
+DlgTableHeadersNone : "Sans",
+DlgTableHeadersColumn : "Première colonne",
+DlgTableHeadersRow : "Première Ligne",
+DlgTableHeadersBoth : "Les 2",
// Table Cell Dialog
DlgCellTitle : "Propriétés de la cellule",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Milieu",
DlgCellVerAlignBottom : "Bas",
DlgCellVerAlignBaseline : "Bas du texte",
+DlgCellType : "Type de Cellule",
+DlgCellTypeData : "Données",
+DlgCellTypeHeader : "Entête",
DlgCellRowSpan : "Lignes fusionnées",
DlgCellCollSpan : "Colonnes fusionnées",
DlgCellBackColor : "Fond",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Navigateur",
DlgAboutLicenseTab : "Licence",
DlgAboutVersion : "Version",
-DlgAboutInfo : "Pour plus d'informations, aller à "
+DlgAboutInfo : "Pour plus d'informations, aller à ",
+
+// Div Dialog
+DlgDivGeneralTab : "Général",
+DlgDivAdvancedTab : "Avancé",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Attribut Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/gl.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gl.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Ligazón",
InsertLink : "Inserir/Editar Ligazón",
RemoveLink : "Eliminar Ligazón",
+VisitLink : "Open Link", //MISSING
Anchor : "Inserir/Editar Referencia",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Imaxe",
@@ -72,6 +73,9 @@
DecreaseIndent : "Disminuir SangrÃa",
IncreaseIndent : "Aumentar SangrÃa",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Desfacer",
Redo : "Refacer",
NumberedListLbl : "Lista Numerada",
@@ -157,6 +161,7 @@
NoActiveX : "As opcións de seguridade do seu navegador poderÃan limitar algunha das caracterÃsticas de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan caracterÃsticas e experimentar erros",
BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
DialogBlocked : "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Marxe interior",
DlgTableCaption : "TÃtulo",
DlgTableSummary : "Sumario",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Propriedades da Cela",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Medio",
DlgCellVerAlignBottom : "Abaixo",
DlgCellVerAlignBaseline : "Liña de Base",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Ocupar Filas",
DlgCellCollSpan : "Ocupar Columnas",
DlgCellBackColor : "Color de Fondo",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Información do Navegador",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "versión",
-DlgAboutInfo : "Para máis información visitar:"
+DlgAboutInfo : "Para máis información visitar:",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gu.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/gu.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,534 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Gujarati language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "àªà«àª²àª¬àª¾àª° નાનà«àª àªàª°àªµà«àª",
+ToolbarExpand : "àªà«àª²àª¬àª¾àª° મà«àªà«àª àªàª°àªµà«àª",
+
+// Toolbar Items and Context Menu
+Save : "સà«àªµ",
+NewPage : "નવૠપાનà«àª",
+Preview : "પà«àª°à«àªµàª¦àª°à«àª¶àª¨",
+Cut : "àªàª¾àªªàªµà«àª",
+Copy : "નàªàª²",
+Paste : "પà«àª¸à«àª",
+PasteText : "પà«àª¸à«àª (સાદૠàªà«àªà«àª¸à«àª)",
+PasteWord : "પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)",
+Print : "પà«àª°àª¿àª¨à«àª",
+SelectAll : "બàªà«àª પસàªàª¦ àªàª°àªµà«àª",
+RemoveFormat : "ફà«àª°à«àª®àª àªàª¾àª¢àªµà«àª",
+InsertLinkLbl : "સàªàª¬àªàª§àª¨, લિàªàª",
+InsertLink : "લિàªàª àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+RemoveLink : "લિàªàª àªàª¾àª¢àªµà«",
+VisitLink : "Open Link", //MISSING
+Anchor : "àªàªàªàª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+AnchorDelete : "àªàªàªàª° àªàª¾àª¢àªµà«",
+InsertImageLbl : "àªàª¿àª¤à«àª°",
+InsertImage : "àªàª¿àª¤à«àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª",
+InsertFlashLbl : "ફà«àª²à«
શ",
+InsertFlash : "ફà«àª²à«
શ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª",
+InsertTableLbl : "àªà«àª¬àª², àªà«àª à«",
+InsertTable : "àªà«àª¬àª², àªà«àª à« àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª",
+InsertLineLbl : "રà«àªàª¾",
+InsertLine : "સમસà«àª¤àª°à«àª¯ રà«àªàª¾ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+InsertSpecialCharLbl: "વિશિષà«àª àª
àªà«àª·àª°",
+InsertSpecialChar : "વિશિષà«àª àª
àªà«àª·àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª",
+InsertSmileyLbl : "સà«àª®àª¾àªàª²à«",
+InsertSmiley : "સà«àª®àª¾àªàª²à« àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+About : "FCKeditorના વિષà«",
+Bold : "બà«àª²à«àª¡/સà«àªªàª·à«àª",
+Italic : "àªàªà«àª²àª¿àª, તà«àª°àª¾àªàª¸àª¾",
+Underline : "àª
નà«àª¡àª°à«àª²àª¾àªàª¨, નà«àªà« લà«àªà«",
+StrikeThrough : "àªà«àªà« નાàªàªµà«àª",
+Subscript : "àªàª àªàª¿àª¹à«àª¨àª¨à« નà«àªà« àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨",
+Superscript : "àªàª àªàª¿àª¹à«àª¨ àªàªªàª° àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨.",
+LeftJustify : "ડાબૠબાàªà«àª/બાàªà« તરફ",
+CenterJustify : "સàªàªà«àªàª¦à«àª°àª£/સà«àªàªàª°àª¿àªàª",
+RightJustify : "àªàª®àª£à« બાàªà«àª/બાàªà« તરફ",
+BlockJustify : "બà«àª²à«àª, àª
àªàª¤àª°àª¾àª¯ àªàª¸à«àªàª¿àª«àª¾àª",
+DecreaseIndent : "àªàª¨à«àª¡à«àª¨à«àª લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ àªàªàª¾àª¡àªµà«",
+IncreaseIndent : "àªàª¨à«àª¡à«àª¨à«àª, લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ વધારવà«",
+Blockquote : "બà«àª²à«àª-àªà«àª, àª
વતરણàªàª¿àª¹à«àª¨à«",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
+Undo : "રદ àªàª°àªµà«àª; પહà«àª²àª¾àª હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«",
+Redo : "રિડà«; પàªà« હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«",
+NumberedListLbl : "સàªàªà«àª¯àª¾àªàªàª¨ સà«àªàª¿",
+NumberedList : "સàªàªà«àª¯àª¾àªàªàª¨ સà«àªàª¿ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+BulletedListLbl : "બà«àª²à«àª સà«àªàª¿",
+BulletedList : "બà«àª²à«àª સà«àªàª¿ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«",
+ShowTableBorders : "àªà«àª¬àª², àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) બતાવવà«",
+ShowDetails : "વિસà«àª¤à«àª¤ વિàªàª¤àªµàª¾àª° બતાવવà«àª",
+Style : "શà«àª²à«/રà«àª¤",
+FontFormat : "ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«",
+Font : "ફà«àª¨à«àª",
+FontSize : "ફà«àª¨à«àª સાàªàª/àªàª¦",
+TextColor : "શબà«àª¦àª¨à« રàªàª",
+BGColor : "બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,",
+Source : "મà«àª³ àªà« પà«àª°àª¾àª¥àª®àª¿àª દસà«àª¤àª¾àªµà«àª",
+Find : "શà«àª§àªµà«àª",
+Replace : "રિપà«àª²à«àª¸/બદલવà«àª",
+SpellCheck : "àªà«àª¡àª£à« (સà«àªªà«àª²àª¿àªàª) તપાસવà«",
+UniversalKeyboard : "યà«àª¨àª¿àªµàª°à«àª¸àª²/વિશà«àªµàªµà«àª¯àª¾àªªàª àªà«àª¬à«àª°à«àª¡",
+PageBreakLbl : "પà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª",
+PageBreak : "àªàª¨à«àª¸àª°à«àª પà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª/દાàªàª² àªàª°àªµà«àª",
+
+Form : "ફà«àª°à«àª®/પતà«àª°àª",
+Checkbox : "àªà«àª બà«àªà«àª¸",
+RadioButton : "રà«àª¡àª¿àª બàªàª¨",
+TextField : "àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°",
+Textarea : "àªà«àªà«àª¸à«àª àªàª°àª¿àª, શબà«àª¦ વિસà«àª¤àª¾àª°",
+HiddenField : "àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°",
+Button : "બàªàª¨",
+SelectionField : "પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°",
+ImageButton : "àªàª¿àª¤à«àª° બàªàª¨",
+
+FitWindow : "àªàª¡àª¿àªàª°àª¨à« સાàªàª àª
ધિàªàª¤àª® àªàª°àªµà«",
+ShowBlocks : "બà«àª²à«àª બતાવવà«àª",
+
+// Context Menu
+EditLink : " લિàªàª àªàª¡àª¿àª/માઠફà«àª°àª«àª¾àª° àªàª°àªµà«",
+CellCM : "àªà«àª·àª¨àª¾ àªàª¾àª¨àª¾",
+RowCM : "પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾",
+ColumnCM : "àªà«àª²àª®/àªàªà« àªàªàª¾àª°",
+InsertRowAfter : "પàªà« પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«",
+InsertRowBefore : "પહà«àª²àª¾àª પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«",
+DeleteRows : "પàªàªà«àª¤àª¿àª ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«",
+InsertColumnAfter : "પàªà« àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«",
+InsertColumnBefore : "પહà«àª²àª¾àª àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«",
+DeleteColumns : "àªà«àª²àª®/àªàªà« àªàªàª¾àª° ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«",
+InsertCellAfter : "પàªà« àªà«àª· àªàª®à«àª°àªµà«",
+InsertCellBefore : "પહà«àª²àª¾àª àªà«àª· àªàª®à«àª°àªµà«",
+DeleteCells : "àªà«àª· ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«",
+MergeCells : "àªà«àª· àªà«àªàª¾ àªàª°àªµàª¾",
+MergeRight : "àªàª®àª£à« બાàªà« àªà«àªàª¾ àªàª°àªµàª¾",
+MergeDown : "નà«àªà« àªà«àªàª¾ àªàª°àªµàª¾",
+HorizontalSplitCell : "àªà«àª·àª¨à« સમસà«àª¤àª°à«àª¯ વિàªàª¾àªàª¨ àªàª°àªµà«àª",
+VerticalSplitCell : "àªà«àª·àª¨à« સà«àª§à«àª નૠàªàªà«àª વિàªàª¾àªàª¨ àªàª°àªµà«àª",
+TableDelete : "àªà«àª ૠડિલà«àª/àªàª¾àª¢à« નાàªàªµà«àª",
+CellProperties : "àªà«àª·àª¨àª¾ àªà«àª£",
+TableProperties : "àªà«àª ાના àªà«àª£",
+ImageProperties : "àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£",
+FlashProperties : "ફà«àª²à«
શના àªà«àª£",
+
+AnchorProp : "àªàªàªàª°àª¨àª¾ àªà«àª£",
+ButtonProp : "બàªàª¨àª¨àª¾ àªà«àª£",
+CheckboxProp : "àªà«àª બà«àªà«àª¸ àªà«àª£",
+HiddenFieldProp : "àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£",
+RadioButtonProp : "રà«àª¡àª¿àª બàªàª¨àª¨àª¾ àªà«àª£",
+ImageButtonProp : "àªàª¿àª¤à«àª° બàªàª¨àª¨àª¾ àªà«àª£",
+TextFieldProp : "àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£",
+SelectionFieldProp : "પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£",
+TextareaProp : "àªà«àªà«àª¸à«àª àªàª
રિàª, શબà«àª¦ વિસà«àª¤àª¾àª°àª¨àª¾ àªà«àª£",
+FormProp : "ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£",
+
+FontFormats : "સામાનà«àª¯;ફà«àª°à«àª®àªà«àª¡;સરનામà«àª;શà«àª°à«àª·àª 1;શà«àª°à«àª·àª 2;શà«àª°à«àª·àª 3;શà«àª°à«àª·àª 4;શà«àª°à«àª·àª 5;શà«àª°à«àª·àª 6;શà«àª°à«àª·àª (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "XHTML પà«àª°àªà«àª°àª¿àª¯àª¾ àªàª¾àª²à« àªà«. મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« રાહ àªà«àªµà«...",
+Done : "પતૠàªàª¯à«àª",
+PasteWordConfirm : "તમૠàªà« àªà«àªà«àª¸à«àª પà«àª¸à«àª àªàª°àªµàª¾ માàªàªà« àªà«, તૠવડà«
માàªàª¥à« àªà«àªªà« àªàª°à«àª²à« લાàªà« àªà«. પà«àª¸à«àª àªàª°àª¤àª¾ પહà«àª²àª¾àª àªà«àªà«àª¸à«àª સાફ àªàª°àªµà« àªà«?",
+NotCompatiblePaste : "ઠàªàª®àª¾àª¨à«àª¡ àªàª¨àªàª°àª¨à«àª àªàªà«àª¸àªªà«àª²à«àª°àª°(Internet Explorer) 5.5 àª
થવા àªàª¨àª¾ પàªà«àª¨àª¾ વરà«àªàª¨ માàªà«àª àªà«. àªà«àªà«àª¸à«àªàª¨à« સાફ àªàª¯à«
ા પહà«àª²àª¾àª પà«àª¸à«àª àªàª°àªµà« àªà«?",
+UnknownToolbarItem : "àª
àªàª¾àª£à« àªà«àª²àª¬àª¾àª° àªàªàªàª® \"%1\"",
+UnknownCommand : "àª
àªàª¾àª£àª¯à« àªàª®àª¾àª¨à«àª¡ \"%1\"",
+NotImplemented : "àªàª®àª¾àª¨à«àª¡ àªàª®à«àªªà«àª²àª¿àª®àª¨à«àª નથૠàªàª°à«àª¯à«",
+UnknownToolbarSet : "àªà«àª²àª¬àª¾àª° સà«àª \"%1\" àªàªªàª²àª¬à«àª§ નથà«",
+NoActiveX : "તમારા બà«àª°àª¾àªàªàª°àª¨à« સà«àª°àªà«àª·àª¾ સà«àªàª¿àªàªàª¸ àªàª¡àª¿àªàª°àª¨àª¾ àª
મà«àª ફà«àªàª°àª¨à« પરવાનàªà« àªàªªàª¤à« નથà«. àªà«àªªàª¯àª¾ \"Run ActiveX controls and plug-ins\" વિàªàª²à«àªªàª¨à« àªàª¨à«àª¬àª²/સમરà«àª¥ àªàª°à«. તમારા બà«àª°àª¾àªàªàª°àª®àª¾àª àªàª°àª° àªàª¨à«àªµàª¿àªàª¿àª¬àª² ફà«àªàª°àª¨à« àª
નà«àªàªµ થઠશàªà« àªà«. àªà«àªªàª¯àª¾ પà«àªª-àª
પ બà«àª²à«àªàª° ડિસà«àª¬àª² àªàª°à«.",
+BrowseServerBlocked : "રિસà«àª°à«àª¸ બà«àª°àª¾àªàªàª° àªà«àª²à« ન સàªàª¾àª¯à«àª.",
+DialogBlocked : "ડાયલà«àª વિનà«àª¡à« àªà«àª²à« ન સàªàª¾àª¯à«àª. àªà«àªªàª¯àª¾ પà«àªª-àª
પ બà«àª²à«àªàª° ડિસà«àª¬àª² àªàª°à«.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
+
+// Dialogs
+DlgBtnOK : "ઠà«àª àªà«",
+DlgBtnCancel : "રદ àªàª°àªµà«àª",
+DlgBtnClose : "બàªàª§ àªàª°àªµà«àª",
+DlgBtnBrowseServer : "સરà«àªµàª° બà«àª°àª¾àªàª àªàª°à«",
+DlgAdvancedTag : "àª
ડà«àªµàª¾àª¨à«àª¸àª¡",
+DlgOpOther : "<àª
નà«àª¯>",
+DlgInfoTab : "સà«àªàª¨àª¾",
+DlgAlertUrl : "URL àªàª¨à«àª¸àª°à«àª àªàª°à«",
+
+// General Dialogs Labels
+DlgGenNotSet : "<સà«àª નથà«>",
+DlgGenId : "Id",
+DlgGenLangDir : "àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿",
+DlgGenLangDirLtr : "ડાબૠથૠàªàª®àª£à« (LTR)",
+DlgGenLangDirRtl : "àªàª®àª£à« થૠડાબૠ(RTL)",
+DlgGenLangCode : "àªàª¾àª·àª¾ àªà«àª¡",
+DlgGenAccessKey : "àªàªà«àª¸à«àª¸ àªà«",
+DlgGenName : "નામ",
+DlgGenTabIndex : "àªà«
બ àªàª¨à«àª¡à«àªà«àª¸",
+DlgGenLongDescr : "વધારૠમાહિતૠમાàªà« URL",
+DlgGenClass : "સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸",
+DlgGenTitle : "મà«àªà«àª¯ મથાળà«àª",
+DlgGenContType : "મà«àªà«àª¯ àªàª¨à«àªà«àª¨à«àª પà«àª°àªàª¾àª°",
+DlgGenLinkCharset : "લિàªàª રિસà«àª°à«àª¸ àªà«
રિàªà«àªàª° સà«àª",
+DlgGenStyle : "સà«àªàª¾àªàª²",
+
+// Image Dialog
+DlgImgTitle : "àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£",
+DlgImgInfoTab : "àªàª¿àª¤à«àª° નૠàªàª¾àª£àªàª¾àª°à«",
+DlgImgBtnUpload : "ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª",
+DlgImgURL : "URL",
+DlgImgUpload : "àª
પલà«àª¡",
+DlgImgAlt : "àªàª²à«àªàª°à«àª¨àª àªà«àªà«àª¸à«àª",
+DlgImgWidth : "પહà«àª³àª¾àª",
+DlgImgHeight : "àªàªàªàª¾àª",
+DlgImgLockRatio : "લà«àª àªà«àª£à«àª¤à«àª¤àª°",
+DlgBtnResetSize : "રà«àª¸à«àª સાàªàª",
+DlgImgBorder : "બà«àª°à«àª¡àª°",
+DlgImgHSpace : "સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾",
+DlgImgVSpace : "લàªàª¬àª°à«àªª àªàªà«àª¯àª¾",
+DlgImgAlign : "લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª",
+DlgImgAlignLeft : "ડાબૠબાàªà« àªà«àª વવà«àª",
+DlgImgAlignAbsBottom: "Abs નà«àªà«",
+DlgImgAlignAbsMiddle: "Abs àªàªªàª°",
+DlgImgAlignBaseline : "àªàª§àª¾àª° લà«àªà«",
+DlgImgAlignBottom : "નà«àªà«",
+DlgImgAlignMiddle : "વàªà«àªà«",
+DlgImgAlignRight : "àªàª®àª£à«",
+DlgImgAlignTextTop : "àªà«àªà«àª¸à«àª àªàªªàª°",
+DlgImgAlignTop : "àªàªªàª°",
+DlgImgPreview : "પà«àª°à«àªµàª¦àª°à«àª¶àª¨",
+DlgImgAlertUrl : "àªàª¿àª¤à«àª°àª¨à« URL àªàª¾àªàªª àªàª°à«",
+DlgImgLinkTab : "લિàªàª",
+
+// Flash Dialog
+DlgFlashTitle : "ફà«àª²à«
શ àªà«àª£",
+DlgFlashChkPlay : "àªàªà«/સà«àªµàª¯àª પà«àª²à«",
+DlgFlashChkLoop : "લà«àªª",
+DlgFlashChkMenu : "ફà«àª²à«
શ મà«àª¨à«àª¯à« નૠપà«àª°àª¯à«àª àªàª°à«",
+DlgFlashScale : "સà«àªà«àª²",
+DlgFlashScaleAll : "સà«àªà«àª² àªàª²/બધૠબતાવà«",
+DlgFlashScaleNoBorder : "સà«àªà«àª² બà«àª°à«àª¡àª° વàªàª°",
+DlgFlashScaleFit : "સà«àªà«àª² àªàªàª¦àª® ફà«àª",
+
+// Link Dialog
+DlgLnkWindowTitle : "લિàªàª",
+DlgLnkInfoTab : "લિàªàª àªàª¨à«àª«à« àªà«
બ",
+DlgLnkTargetTab : "àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯ àªà«
બ",
+
+DlgLnkType : "લિàªàª પà«àª°àªàª¾àª°",
+DlgLnkTypeURL : "URL",
+DlgLnkTypeAnchor : "ઠપà«àªàª¨à« àªàªàªàª°",
+DlgLnkTypeEMail : "àª-મà«àª²",
+DlgLnkProto : "પà«àª°à«àªà«àªà«àª²",
+DlgLnkProtoOther : "<àª
નà«àª¯>",
+DlgLnkURL : "URL",
+DlgLnkAnchorSel : "àªàªàªàª° પસàªàª¦ àªàª°à«",
+DlgLnkAnchorByName : "àªàªàªàª° નામથૠપસàªàª¦ àªàª°à«",
+DlgLnkAnchorById : "àªàªàªàª° àªàª²àª¿àª®àª¨à«àª Id થૠપસàªàª¦ àªàª°à«",
+DlgLnkNoAnchors : "(ડà«àªà«àª¯à«àª®àª¨à«àªàª®àª¾àª àªàªàªàª°àª¨à« સàªàªà«àª¯àª¾)",
+DlgLnkEMail : "àª-મà«àª² સરનામà«àª",
+DlgLnkEMailSubject : "àª-મà«àª² વિષય",
+DlgLnkEMailBody : "સàªàª¦à«àª¶",
+DlgLnkUpload : "àª
પલà«àª¡",
+DlgLnkBtnUpload : "ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª",
+
+DlgLnkTarget : "àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯",
+DlgLnkTargetFrame : "<ફà«àª°à«àª®>",
+DlgLnkTargetPopup : "<પà«àªª-àª
પ વિનà«àª¡à«>",
+DlgLnkTargetBlank : "નવૠવિનà«àª¡à« (_blank)",
+DlgLnkTargetParent : "મà«àª³ વિનà«àª¡à« (_parent)",
+DlgLnkTargetSelf : "àªàª વિનà«àª¡à« (_self)",
+DlgLnkTargetTop : "àªàªªàª°àª¨à« વિનà«àª¡à« (_top)",
+DlgLnkTargetFrameName : "àªàª¾àª°à«àªà«àª ફà«àª°à«àª® નà«àª નામ",
+DlgLnkPopWinName : "પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ",
+DlgLnkPopWinFeat : "પà«àªª-àª
પ વિનà«àª¡à« ફà«àªàª°àª¸à«
",
+DlgLnkPopResize : "સાàªàª બદલૠસàªàª¾àª¯ àªà«",
+DlgLnkPopLocation : "લà«àªà«àª¶àª¨ બાર",
+DlgLnkPopMenu : "મà«àª¨à«àª¯à« બાર",
+DlgLnkPopScroll : "સà«àªà«àª°à«àª² બાર",
+DlgLnkPopStatus : "સà«àªà«
àªàª¸ બાર",
+DlgLnkPopToolbar : "àªà«àª² બાર",
+DlgLnkPopFullScrn : "ફà«àª² સà«àªà«àª°à«àª¨ (IE)",
+DlgLnkPopDependent : "ડિપà«àª¨à«àª¡àª¨à«àª (Netscape)",
+DlgLnkPopWidth : "પહà«àª³àª¾àª",
+DlgLnkPopHeight : "àªàªàªàª¾àª",
+DlgLnkPopLeft : "ડાબૠબાàªà«",
+DlgLnkPopTop : "àªàª®àª£à« બાàªà«",
+
+DlnLnkMsgNoUrl : "લિàªàª URL àªàª¾àªàªª àªàª°à«",
+DlnLnkMsgNoEMail : "àª-મà«àª² સરનામà«àª àªàª¾àªàªª àªàª°à«",
+DlnLnkMsgNoAnchor : "àªàªàªàª° પસàªàª¦ àªàª°à«",
+DlnLnkMsgInvPopName : "પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ àªàª²à«àª«àª¬à«àªàª¥à« શરૠàªàª°àªµà« àª
નૠતà«àª®àª¾àª સà«àªªà«àªàª¸ ન હà«àªµà« àªà«àªàª",
+
+// Color Dialog
+DlgColorTitle : "રàªàª પસàªàª¦ àªàª°à«",
+DlgColorBtnClear : "સાફ àªàª°à«",
+DlgColorHighlight : "હાàªàª²àª¾àªàª",
+DlgColorSelected : "સિલà«àªà«àªà«àª¡/પસàªàª¦ àªàª°àªµà«àª",
+
+// Smiley Dialog
+DlgSmileyTitle : "સà«àª®àª¾àªàª²à« પસàªàª¦ àªàª°à«",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "સà«àªªà«àª¶àª¿àª
લ વિશિષà«àª àª
àªà«àª·àª° પસàªàª¦ àªàª°à«",
+
+// Table Dialog
+DlgTableTitle : "àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª",
+DlgTableRows : "પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾",
+DlgTableColumns : "àªà«àª²àª®/àªàªà« àªàªàª¾àª°",
+DlgTableBorder : "àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) સાàªàª",
+DlgTableAlign : "àª
લાàªàª¨àª®àª¨à«àª/àªà«àª વાયà«àª²à«àª ",
+DlgTableAlignNotSet : "<સà«àª નથà«>",
+DlgTableAlignLeft : "ડાબૠબાàªà«",
+DlgTableAlignCenter : "મધà«àª¯ સà«àª¨à«àªàª°",
+DlgTableAlignRight : "àªàª®àª£à« બાàªà«",
+DlgTableWidth : "પહà«àª³àª¾àª",
+DlgTableWidthPx : "પિàªàª¸àª²",
+DlgTableWidthPc : "પà«àª°àª¤àª¿àª¶àª¤",
+DlgTableHeight : "àªàªàªàª¾àª",
+DlgTableCellSpace : "સà«àª² àª
àªàª¤àª°",
+DlgTableCellPad : "સà«àª² પà«
ડિàªàª",
+DlgTableCaption : "મથાળà«àª/àªà«
પà«àª¶àª¨ ",
+DlgTableSummary : "àªà«àªàªà« àªàª¹à«àªµàª¾àª²",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
+
+// Table Cell Dialog
+DlgCellTitle : "પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾àª¨àª¾ àªà«àª£",
+DlgCellWidth : "પહà«àª³àª¾àª",
+DlgCellWidthPx : "પિàªàª¸àª²",
+DlgCellWidthPc : "પà«àª°àª¤àª¿àª¶àª¤",
+DlgCellHeight : "àªàªàªàª¾àª",
+DlgCellWordWrap : "વરà«àª¡ રà«
પ",
+DlgCellWordWrapNotSet : "<સà«àª નથà«>",
+DlgCellWordWrapYes : "હા",
+DlgCellWordWrapNo : "ના",
+DlgCellHorAlign : "સમસà«àª¤àª°à«àª¯ àªà«àª વવà«àª",
+DlgCellHorAlignNotSet : "<સà«àª નથà«>",
+DlgCellHorAlignLeft : "ડાબૠબાàªà«",
+DlgCellHorAlignCenter : "મધà«àª¯ સà«àª¨à«àªàª°",
+DlgCellHorAlignRight: "àªàª®àª£à« બાàªà«",
+DlgCellVerAlign : "લàªàª¬àª°à«àªª àªà«àª વવà«àª",
+DlgCellVerAlignNotSet : "<સà«àª નથà«>",
+DlgCellVerAlignTop : "àªàªªàª°",
+DlgCellVerAlignMiddle : "મધà«àª¯ સà«àª¨à«àªàª°",
+DlgCellVerAlignBottom : "નà«àªà«",
+DlgCellVerAlignBaseline : "મà«àª³ રà«àªàª¾",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
+DlgCellRowSpan : "પàªàªà«àª¤àª¿ સà«àªªàª¾àª¨",
+DlgCellCollSpan : "àªà«àª²àª®/àªàªà« àªàªàª¾àª° સà«àªªàª¾àª¨",
+DlgCellBackColor : "બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª",
+DlgCellBorderColor : "બà«àª°à«àª¡àª°àª¨à« રàªàª",
+DlgCellBtnSelect : "પસàªàª¦ àªàª°à«...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "શà«àª§àªµà«àª àª
નૠબદલવà«àª",
+
+// Find Dialog
+DlgFindTitle : "શà«àª§àªµà«àª",
+DlgFindFindBtn : "શà«àª§àªµà«àª",
+DlgFindNotFoundMsg : "તમૠશà«àª§à«àª²à« àªà«àªà«àª¸à«àª નથૠમળà«",
+
+// Replace Dialog
+DlgReplaceTitle : "બદલવà«àª",
+DlgReplaceFindLbl : "ઠશà«àª§à«",
+DlgReplaceReplaceLbl : "àªàª¨àª¾àª¥à« બદલà«",
+DlgReplaceCaseChk : "àªà«àª¸ સરàªàª¾ રાàªà«",
+DlgReplaceReplaceBtn : "બદલવà«àª",
+DlgReplaceReplAllBtn : "બàªàª¾ બદલૠ",
+DlgReplaceWordChk : "બàªàª¾ શબà«àª¦ સરàªàª¾ રાàªà«",
+
+// Paste Operations / Dialog
+PasteErrorCut : "તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªàª àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl+X) નૠàªàªªàª¯à«àª àªàª°à«.",
+PasteErrorCopy : "તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªà«àªªà« àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤",
+
+PasteAsText : "પà«àª¸à«àª (àªà«àªà«àª¸à«àª)",
+PasteFromWord : "પà«àª¸à«àª (વરà«àª¡ થà«)",
+
+DlgPasteMsg2 : "Ctrl+V નૠપà«àª°àª¯à«àª àªàª°à« પà«àª¸à«àª àªàª°à«",
+DlgPasteSec : "તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸àª¨àª¾ àªàª¾àª°àª£à«,àªàª¡àª¿àªàª° તમારા àªàª¿àª²à«àªªàª¬à«àª°à«àª¡ ડà«àªàª¾ નૠàªà«àªªà« નથૠàªàª°à« શàªàª¤à«. તમારૠઠવિનà«àª¡à«àª®àª¾àª ફરà«àª¥à« પà«àª¸à«àª àªàª°àªµà«àª પડશà«.",
+DlgPasteIgnoreFont : "ફà«àª¨à«àªàª«à«àª¸ વà«àª¯àª¾àªà«àª¯àª¾àª¨à« àª
વàªàª£àª¨àª¾",
+DlgPasteRemoveStyles : "સà«àªàª¾àªàª² વà«àª¯àª¾àªà«àª¯àª¾ àªàª¾àª¢à« નાàªàªµà«",
+
+// Color Picker
+ColorAutomatic : "સà«àªµàªàª¾àª²àª¿àª¤",
+ColorMoreColors : "àªàª° રàªàª...",
+
+// Document Properties
+DocProps : "ડà«àªà«àª¯à«àª®àª¨à«àª àªà«àª£/પà«àª°à«àªªàª°à«àªàª¿àª",
+
+// Anchor Dialog
+DlgAnchorTitle : "àªàªàªàª° àªà«àª£/પà«àª°à«àªªàª°à«àªàª¿àª",
+DlgAnchorName : "àªàªàªàª°àª¨à«àª નામ",
+DlgAnchorErrorName : "àªàªàªàª°àª¨à«àª નામ àªàª¾àªàªª àªàª°à«",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "શબà«àª¦àªà«àª¶àª®àª¾àª નથà«",
+DlgSpellChangeTo : "àªàª¨àª¾àª¥à« બદલવà«àª",
+DlgSpellBtnIgnore : "àªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«",
+DlgSpellBtnIgnoreAll : "બધાનૠàªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«",
+DlgSpellBtnReplace : "બદલવà«àª",
+DlgSpellBtnReplaceAll : "બધા બદલૠàªàª°à«",
+DlgSpellBtnUndo : "àª
નà«àª¡à«",
+DlgSpellNoSuggestions : "- àªàª સàªà«àª¶àª¨ નથૠ-",
+DlgSpellProgress : "શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª àªàª¾àª²à« àªà«...",
+DlgSpellNoMispell : "શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªà«àªà« àªà«àª¡àª£à« મળૠનથà«",
+DlgSpellNoChanges : "શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàªàªªàª£ શબà«àª¦ બદલયૠનથà«",
+DlgSpellOneChange : "શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàª શબà«àª¦ બદલયૠàªà«",
+DlgSpellManyChanges : "શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: %1 શબà«àª¦ બદલયા àªà«",
+
+IeSpellDownload : "સà«àªªà«àª²-àªà«àªàª° àªàª¨à«àª¸à«àªà«àª² નથà«. શà«àª તમૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªàªà« àªà«?",
+
+// Button Dialog
+DlgButtonText : "àªà«àªà«àª¸à«àª (વà«
લà«àª¯à«)",
+DlgButtonType : "પà«àª°àªàª¾àª°",
+DlgButtonTypeBtn : "બàªàª¨",
+DlgButtonTypeSbm : "સબà«àª®àª¿àª",
+DlgButtonTypeRst : "રિસà«àª",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "નામ",
+DlgCheckboxValue : "વà«
લà«àª¯à«",
+DlgCheckboxSelected : "સિલà«àªà«àªà«àª¡",
+
+// Form Dialog
+DlgFormName : "નામ",
+DlgFormAction : "àªà«àª°àª¿àª¯àª¾",
+DlgFormMethod : "પદà«àª§àª¤àª¿",
+
+// Select Field Dialog
+DlgSelectName : "નામ",
+DlgSelectValue : "વà«
લà«àª¯à«",
+DlgSelectSize : "સાàªàª",
+DlgSelectLines : "લà«àªà«àª",
+DlgSelectChkMulti : "àªàªàª¥à« વધારૠપસàªàª¦ àªàª°à« શàªà«",
+DlgSelectOpAvail : "àªàªªàª²àª¬à«àª§ વિàªàª²à«àªª",
+DlgSelectOpText : "àªà«àªà«àª¸à«àª",
+DlgSelectOpValue : "વà«
લà«àª¯à«",
+DlgSelectBtnAdd : "àªàª®à«àª°àªµà«àª",
+DlgSelectBtnModify : "બદલવà«àª",
+DlgSelectBtnUp : "àªàªªàª°",
+DlgSelectBtnDown : "નà«àªà«",
+DlgSelectBtnSetValue : "પસàªàª¦ àªàª°àª²à« વà«
લà«àª¯à« સà«àª àªàª°à«",
+DlgSelectBtnDelete : "રદ àªàª°àªµà«àª",
+
+// Textarea Dialog
+DlgTextareaName : "નામ",
+DlgTextareaCols : "àªà«àª²àª®/àªàªà« àªàªàª¾àª°",
+DlgTextareaRows : "પàªàªà«àª¤àª¿àª",
+
+// Text Field Dialog
+DlgTextName : "નામ",
+DlgTextValue : "વà«
લà«àª¯à«",
+DlgTextCharWidth : "àªà«àª°à«àªà«àªàª°àª¨à« પહà«àª³àª¾àª",
+DlgTextMaxChars : "àª
ધિàªàª¤àª® àªà«àª°à«àªà«àªàª°",
+DlgTextType : "àªàª¾àªàªª",
+DlgTextTypeText : "àªà«àªà«àª¸à«àª",
+DlgTextTypePass : "પાસવરà«àª¡",
+
+// Hidden Field Dialog
+DlgHiddenName : "નામ",
+DlgHiddenValue : "વà«
લà«àª¯à«",
+
+// Bulleted List Dialog
+BulletedListProp : "બà«àª²à«àª સà«àªàª¿ àªà«àª£",
+NumberedListProp : "સàªàªà«àª¯àª¾àªàªà«àª¤àª¿ સà«àªàª¿ àªà«àª£",
+DlgLstStart : "શરà«àªàª¤àª¥à«",
+DlgLstType : "પà«àª°àªàª¾àª°",
+DlgLstTypeCircle : "વરà«àª¤à«àª³",
+DlgLstTypeDisc : "ડિસà«àª",
+DlgLstTypeSquare : "àªà«àª°àª¸",
+DlgLstTypeNumbers : "સàªàªà«àª¯àª¾ (1, 2, 3)",
+DlgLstTypeLCase : "નાના àª
àªà«àª·àª° (a, b, c)",
+DlgLstTypeUCase : "મà«àªàª¾ àª
àªà«àª·àª° (A, B, C)",
+DlgLstTypeSRoman : "નાના રà«àª®àª¨ àªàªàª (i, ii, iii)",
+DlgLstTypeLRoman : "મà«àªàª¾ રà«àª®àª¨ àªàªàª (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "સાધારણ",
+DlgDocBackTab : "બà«
àªàªà«àª°àª¾àªàª¨à«àª¡",
+DlgDocColorsTab : "રàªàª àª
નૠમારà«àªàª¿àª¨/àªàª¿àª¨àª¾àª°",
+DlgDocMetaTab : "મà«àªàª¾àª¡à«
àªàª¾",
+
+DlgDocPageTitle : "પà«àª મથાળà«àª/àªàª¾àªàªàª²",
+DlgDocLangDir : "àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿",
+DlgDocLangDirLTR : "ડાબૠથૠàªàª®àª£à« (LTR)",
+DlgDocLangDirRTL : "àªàª®àª£à« થૠડાબૠ(RTL)",
+DlgDocLangCode : "àªàª¾àª·àª¾ àªà«àª¡",
+DlgDocCharSet : "àªà«àª°à«àªà«àªàª° સà«àª àªàª¨à«àªà«àª¡àª¿àªàª",
+DlgDocCharSetCE : "મધà«àª¯ યà«àª°à«àªªàª¿àª
ન (Central European)",
+DlgDocCharSetCT : "àªàª¾àªàª¨à«àª (Chinese Traditional Big5)",
+DlgDocCharSetCR : "સિરà«àª²àª¿àª (Cyrillic)",
+DlgDocCharSetGR : "àªà«àª°à«àª (Greek)",
+DlgDocCharSetJP : "àªàª¾àªªàª¾àª¨àª¿àª (Japanese)",
+DlgDocCharSetKR : "àªà«àª°à«àª¯àª¨ (Korean)",
+DlgDocCharSetTR : "àªàª°à«àªàª¿ (Turkish)",
+DlgDocCharSetUN : "યà«àª¨àª¿àªà«àª¡ (UTF-8)",
+DlgDocCharSetWE : "પશà«àªàª¿àª® યà«àª°à«àªªàª¿àª
ન (Western European)",
+DlgDocCharSetOther : "àª
નà«àª¯ àªà«àª°à«àªà«àªàª° સà«àª àªàª¨à«àªà«àª¡àª¿àªàª",
+
+DlgDocDocType : "ડà«àªà«àª¯à«àª®àª¨à«àª પà«àª°àªàª¾àª° શà«àª°à«àª·àª",
+DlgDocDocTypeOther : "àª
નà«àª¯ ડà«àªà«àª¯à«àª®àª¨à«àª પà«àª°àªàª¾àª° શà«àª°à«àª·àª",
+DlgDocIncXHTML : "XHTML સà«àªàª¨àª¾ સમાવિષà«àª àªàª°àªµà«",
+DlgDocBgColor : "બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª",
+DlgDocBgImage : "બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ àªàª¿àª¤à«àª° URL",
+DlgDocBgNoScroll : "સà«àªà«àª°à«àª² ન થાય તà«àªµà«àª બà«
àªàªà«àª°àª¾àªàª¨à«àª¡",
+DlgDocCText : "àªà«àªà«àª¸à«àª",
+DlgDocCLink : "લિàªàª",
+DlgDocCVisited : "વિàªàª¿àªà«àª¡ લિàªàª",
+DlgDocCActive : "સàªà«àª°àª¿àª¯ લિàªàª",
+DlgDocMargins : "પà«àª મારà«àªàª¿àª¨",
+DlgDocMaTop : "àªàªªàª°",
+DlgDocMaLeft : "ડાબà«",
+DlgDocMaRight : "àªàª®àª£à«",
+DlgDocMaBottom : "નà«àªà«",
+DlgDocMeIndex : "ડà«àªà«àª¯à«àª®àª¨à«àª àªàª¨à«àª¡à«àªà«àª¸ સàªàªà«àª¤àª¶àª¬à«àª¦ (àª
લà«àªªàªµàª¿àª°àª¾àª® (,) થૠàª
લઠàªàª°à«)",
+DlgDocMeDescr : "ડà«àªà«àª¯à«àª®àª¨à«àª વરà«àª£àª¨",
+DlgDocMeAuthor : "લà«àªàª",
+DlgDocMeCopy : "àªà«àªªàª¿àª°àª¾àªàª",
+DlgDocPreview : "પà«àª°à«àªµàª¦àª°à«àª¶àª¨",
+
+// Templates Dialog
+Templates : "àªà«àª®à«àªªà«àª²à«àª",
+DlgTemplatesTitle : "àªàª¨à«àªà«àª¨à«àª àªà«àª®à«àªªà«àª²à«àª",
+DlgTemplatesSelMsg : "àªàª¡àª¿àªàª°àª®àª¾àª àªàªªàª¨ àªàª°àªµàª¾ àªà«àª®à«àªªà«àª²à«àª પસàªàª¦ àªàª°à« (વરà«àª¤àª®àª¾àª¨ àªàª¨à«àªà«àª¨à«àª સà«àªµ નહà«àª થાય):",
+DlgTemplatesLoading : "àªà«àª®à«àªªà«àª²à«àª સà«àªàª¿ લà«àª¡ થાય àªà«. રાહ àªà«àª...",
+DlgTemplatesNoTpl : "(àªà«àª àªà«àª®à«àªªà«àª²à«àª ડિફાàªàª¨ નથà«)",
+DlgTemplatesReplace : "મà«àª³ શબà«àª¦àª¨à« બદલà«",
+
+// About Dialog
+DlgAboutAboutTab : "FCKEditor ના વિષà«",
+DlgAboutBrowserInfoTab : "બà«àª°àª¾àªàªàª° ના વિષà«",
+DlgAboutLicenseTab : "લાàªàª¸àª¨à«àª¸",
+DlgAboutVersion : "વરà«àªàª¨",
+DlgAboutInfo : "વધારૠમાહિતૠમાàªà«:",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
+};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/he.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/he.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/he.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ק×ש×ר",
InsertLink : "××ספת/ער××ת ק×ש×ר",
RemoveLink : "×סרת ×ק×ש×ר",
+VisitLink : "×¤×ª× ×§×ש×ר",
Anchor : "××ספת/ער××ת × ×§××ת ×¢××××",
AnchorDelete : "×סר × ×§××ת ×¢××××",
InsertImageLbl : "ת××× ×",
@@ -72,6 +73,9 @@
DecreaseIndent : "×ק×× ×ª ××× ×× ×צ××",
IncreaseIndent : "××××ת ××× ×× ×צ××",
Blockquote : "×××ק צ××××",
+CreateDiv : "צ×ר ××××(ת×)DIV",
+EditDiv : "ער×× ×××× (ת×)DIV",
+DeleteDiv : "×סר ××××(ת×) DIV",
Undo : "××××× ×¦×¢× ××ר××",
Redo : "×××¨× ×¢× ×¦×¢× ××ר××",
NumberedListLbl : "רש××× ×××ספרת",
@@ -157,6 +161,7 @@
NoActiveX : "×××ר×ת ××××× ×©× ××פ××¤× ×¢××××ת ××××× ×ת ×פשר×××ת ×ער×××.×ש ××פשר ×ת ×××פצ×× \"×רץ פק××× ×¤×¢×××× ×ת×ספ×ת\". ת××× ××××ת ××¢×××ת ××××××× ×©× ×פשר×××ת ש×סר××.",
BrowseServerBlocked : "×× × ××ª× ××שת ××פ××¤× ×ש××××.×× × ×××× ×©×××¡× ×××× ×ת ×ק×פצ×× ×× ×¤×¢××.",
DialogBlocked : "×× ××× × ××ª× ×פת×× ×××× ××××××. ×× × ×××× ×©×××¡× ×××× ×ת ק×פצ×× ×× ×¤×¢××.",
+VisitLinkBlocked : "×× × ××ª× ×פת×× ×××× ××ש.× × ××××× ×©××ס×× ××××× ×ת ×ק×פצ×× ×× ×¤×¢××××.",
// Dialogs
DlgBtnOK : "××ש×ר",
@@ -166,7 +171,7 @@
DlgAdvancedTag : "×פשר×××ת ×תק×××ת",
DlgOpOther : "<××ר>",
DlgInfoTab : "××××¢",
-DlgAlertUrl : "×× × ××× URL",
+DlgAlertUrl : "×× × ××× URL",
// General Dialogs Labels
DlgGenNotSet : "<×× × ×§××¢>",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ר×פ×× ×ª×",
DlgTableCaption : "××ת××",
DlgTableSummary : "ס××××",
+DlgTableHeaders : "××תר×ת",
+DlgTableHeadersNone : "×××",
+DlgTableHeadersColumn : "×¢×××× ×¨×ש×× ×",
+DlgTableHeadersRow : "ש××¨× ×¨×ש×× ×",
+DlgTableHeadersBoth : "×©× ×××",
// Table Cell Dialog
DlgCellTitle : "ת××× ×ת ת×",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "×××צע",
DlgCellVerAlignBottom : "×ת×ת×ת",
DlgCellVerAlignBaseline : "×§× ×ª×ת×ת",
+DlgCellType : "ס×× ×ª×",
+DlgCellTypeData : "ס××",
+DlgCellTypeHeader : "××תרת",
DlgCellRowSpan : "×××× ×©×ר×ת",
DlgCellCollSpan : "×××× ×¢××××ת",
DlgCellBackColor : "צ××¢ רקע",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "××רסת ×פ×פ×",
DlgAboutLicenseTab : "רש×××",
DlgAboutVersion : "××רס×",
-DlgAboutInfo : "××××¢ × ×סף × ××ª× ××צ×× ×××:"
+DlgAboutInfo : "××××¢ × ×סף × ××ª× ××צ×× ×××:",
+
+// Div Dialog
+DlgDivGeneralTab : "××××",
+DlgDivAdvancedTab : "×תק××",
+DlgDivStyle : "ס×× ××",
+DlgDivInlineStyle : "ס×× ×× ×ת×× ×ש×ר×"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/hi.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hi.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "लिà¤à¤",
InsertLink : "लिà¤à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨",
RemoveLink : "लिà¤à¤ हà¤à¤¾à¤¯à¥à¤",
+VisitLink : "लिà¤à¤ à¤à¥à¤²à¥à¤",
Anchor : "à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨",
AnchorDelete : "à¤à¤à¤à¤° हà¤à¤¾à¤¯à¥à¤",
InsertImageLbl : "तसà¥à¤µà¥à¤°",
@@ -72,6 +73,9 @@
DecreaseIndent : "à¤à¤¨à¥à¤¡à¥
नà¥à¤ à¤à¤® à¤à¤°à¥à¤",
IncreaseIndent : "à¤à¤¨à¥à¤¡à¥
नà¥à¤ बà¥à¤¾à¤¯à¥à¤",
Blockquote : "बà¥à¤²à¥à¤-à¤à¥à¤",
+CreateDiv : "डिव (Div) à¤à¤¨à¥à¤à¥à¤¨à¤° बनायà¥à¤",
+EditDiv : "डिव (Div) à¤à¤¨à¥à¤à¥à¤¨à¤° बदलà¥à¤",
+DeleteDiv : "डिव à¤à¤¨à¥à¤à¥à¤¨à¤° हà¤à¤¾à¤¯à¥à¤",
Undo : "à¤
नà¥à¤¡à¥",
Redo : "रà¥à¤¡à¥",
NumberedListLbl : "à¤
à¤à¤à¥à¤¯ सà¥à¤à¥",
@@ -155,8 +159,9 @@
NotImplemented : "à¤à¤®à¤¾à¤¨à¥à¤¡ à¤à¤®à¥à¤ªà¥à¤²à¥à¤®à¥
नà¥à¤ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥",
UnknownToolbarSet : "à¤à¥à¤²à¤¬à¤¾à¤° सà¥
ठ\"%1\" à¤à¤ªà¤²à¤¬à¥à¤§ नहà¥à¤ हà¥",
NoActiveX : "à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤°à¥ à¤à¥ सà¥à¤°à¤à¥à¤¶à¤¾ सà¥à¤à¤¿à¤à¤à¥à¤¸à¥ à¤à¤¡à¤¿à¤à¤° à¤à¥ à¤à¥à¤à¥ à¥à¥à¤à¤°à¥à¤ à¤à¥ सà¥à¤®à¤¿à¤¤ à¤à¤°à¥ सà¤à¤¤à¥ हà¥à¤à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ \"Run ActiveX controls and plug-ins\" विà¤à¤²à¥à¤ª à¤à¥ à¤à¤¨à¥à¤¬à¤² à¤à¤°à¥à¤. à¤à¤ªà¤à¥ à¤à¤°à¤°à¥à¤¸à¥ à¤à¤° à¤à¤¾à¤¯à¤¬ à¥à¥à¤à¤°à¥à¤¸à¥ à¤à¤¾ à¤
नà¥à¤à¤µ हॠसà¤à¤¤à¤¾ हà¥à¥¤",
-BrowseServerBlocked : "रिसà¥à¤°à¥à¤¸à¥à¥ बà¥à¤°à¤¾à¤à¥à¤°à¥ नहà¥à¤ à¤à¥à¤²à¤¾ à¤à¤¾ सà¤à¤¾à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ सà¤à¥ पà¥à¤ªà¥-à¤
पॠबà¥à¤²à¥à¤à¤°à¥à¤¸à¥ à¤à¥ डिसà¥à¤¬à¤² à¤à¤°à¥à¤à¥¤",
-DialogBlocked : "डायलठविनà¥à¤¡à¥ नहà¥à¤ à¤à¥à¤²à¤¾ à¤à¤¾ सà¤à¤¾à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ सà¤à¥ पà¥à¤ªà¥-à¤
पॠबà¥à¤²à¥à¤à¤°à¥à¤¸à¥ à¤à¥ डिसà¥à¤¬à¤² à¤à¤°à¥à¤à¥¤",
+BrowseServerBlocked : "रिसà¥à¤°à¥à¤¸à¥à¥ बà¥à¤°à¤¾à¤à¥à¤°à¥ नहà¥à¤ à¤à¥à¤²à¤¾ à¤à¤¾ सà¤à¤¾à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ सà¤à¥ पà¥à¤ªà¥-à¤
पॠबà¥à¤²à¥à¤à¤°à¥à¤¸à¥ à¤à¥ निषà¥à¤à¥à¤°à¤¿à¤¯ à¤à¤°à¥à¤à¥¤",
+DialogBlocked : "डायलठविनà¥à¤¡à¥ नहà¥à¤ à¤à¥à¤²à¤¾ à¤à¤¾ सà¤à¤¾à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ सà¤à¥ पà¥à¤ªà¥-à¤
पॠबà¥à¤²à¥à¤à¤°à¥à¤¸à¥ à¤à¥ निषà¥à¤à¥à¤°à¤¿à¤¯ à¤à¤°à¥à¤à¥¤",
+VisitLinkBlocked : "नया विनà¥à¤¡à¥ नहà¥à¤ à¤à¥à¤²à¤¾ à¤à¤¾ सà¤à¤¾à¥¤ à¤à¥à¤°à¤¿à¤ªà¤¯à¤¾ सà¤à¥ पà¥à¤ªà¥-à¤
पॠबà¥à¤²à¥à¤à¤°à¥à¤¸à¥ à¤à¥ निषà¥à¤à¥à¤°à¤¿à¤¯ à¤à¤°à¥à¤à¥¤",
// Dialogs
DlgBtnOK : "ठà¥à¤ हà¥",
@@ -303,6 +308,11 @@
DlgTableCellPad : "सà¥à¤² पà¥à¤¡à¤¿à¤à¤",
DlgTableCaption : "शà¥à¤°à¥à¤·à¤",
DlgTableSummary : "साराà¤à¤¶",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "सà¥à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "मधà¥à¤¯",
DlgCellVerAlignBottom : "नà¥à¤à¥",
DlgCellVerAlignBaseline : "मà¥à¤²à¤°à¥à¤à¤¾",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "पà¤à¤à¥à¤¤à¤¿ सà¥à¤ªà¥à¤¨",
DlgCellCollSpan : "à¤à¤¾à¤²à¤® सà¥à¤ªà¥à¤¨",
DlgCellBackColor : "बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ बारॠमà¥à¤",
DlgAboutLicenseTab : "लाà¤à¤¸à¥à¤¨à¥à¤¸",
DlgAboutVersion : "वरà¥à¥à¤¨",
-DlgAboutInfo : "à¤
धिठà¤à¤¾à¤¨à¤à¤¾à¤°à¥ à¤à¥ लियॠयहाठà¤à¤¾à¤¯à¥à¤:"
+DlgAboutInfo : "à¤
धिठà¤à¤¾à¤¨à¤à¤¾à¤°à¥ à¤à¥ लियॠयहाठà¤à¤¾à¤¯à¥à¤:",
+
+// Div Dialog
+DlgDivGeneralTab : "सामानà¥à¤¯",
+DlgDivAdvancedTab : "à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡",
+DlgDivStyle : "सà¥à¤à¤¾à¤à¤²",
+DlgDivInlineStyle : "à¤à¤¨à¤²à¤¾à¤à¤¨ सà¥à¤à¤¾à¤à¤²"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/hr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Ubaci/promijeni link",
RemoveLink : "Ukloni link",
+VisitLink : "Otvori link",
Anchor : "Ubaci/promijeni sidro",
AnchorDelete : "Ukloni sidro",
InsertImageLbl : "Slika",
@@ -72,6 +73,9 @@
DecreaseIndent : "Pomakni ulijevo",
IncreaseIndent : "Pomakni udesno",
Blockquote : "Blockquote",
+CreateDiv : "Napravi Div kontejner",
+EditDiv : "Uredi Div kontejner",
+DeleteDiv : "Ukloni Div kontejner",
Undo : "Poništi",
Redo : "Ponovi",
NumberedListLbl : "BrojÄana lista",
@@ -157,6 +161,7 @@
NoActiveX : "VaÅ¡e postavke pretraživaÄa mogle bi ograniÄiti neke od moguÄnosti editora. Morate ukljuÄiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne uÄinite, moguÄe su razliite greÅ¡ke tijekom rada.",
BrowseServerBlocked : "PretraivaÄ nije moguÄe otvoriti. Provjerite da li je ukljuÄeno blokiranje pop-up prozora.",
DialogBlocked : "Nije moguÄe otvoriti novi prozor. Provjerite da li je ukljuÄeno blokiranje pop-up prozora.",
+VisitLinkBlocked : "Nije moguÄe otvoriti novi prozor. Provjerite da li je ukljuÄeno blokiranje pop-up prozora.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Razmak Äelija",
DlgTableCaption : "Naslov",
DlgTableSummary : "Sažetak",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Svojstva Äelije",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Srednišnje",
DlgCellVerAlignBottom : "Donje",
DlgCellVerAlignBaseline : "Bazno",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Spajanje redova",
DlgCellCollSpan : "Spajanje kolona",
DlgCellBackColor : "Boja pozadine",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Podaci o pretraživaÄu",
DlgAboutLicenseTab : "Licenca",
DlgAboutVersion : "inaÄica",
-DlgAboutInfo : "Za više informacija posjetite"
+DlgAboutInfo : "Za više informacija posjetite",
+
+// Div Dialog
+DlgDivGeneralTab : "OpÄenito",
+DlgDivAdvancedTab : "Napredno",
+DlgDivStyle : "Stil",
+DlgDivInlineStyle : "Stil u redu"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/hu.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/hu.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Hivatkozás",
InsertLink : "Hivatkozás beillesztése/módosÃtása",
RemoveLink : "Hivatkozás törlése",
+VisitLink : "Open Link", //MISSING
Anchor : "Horgony beillesztése/szerkesztése",
AnchorDelete : "Horgony eltávolÃtása",
InsertImageLbl : "Kép",
@@ -72,6 +73,9 @@
DecreaseIndent : "Behúzás csökkentése",
IncreaseIndent : "Behúzás növelése",
Blockquote : "Idézet blokk",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Visszavonás",
Redo : "Ismétlés",
NumberedListLbl : "Számozás",
@@ -157,6 +161,7 @@
NoActiveX : "A böngészÅ biztonsági beállÃtásai korlátozzák a szerkesztÅ lehetÅségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". EttÅl függetlenül elÅfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.",
BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészÅt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
DialogBlocked : "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "Rendben",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cella belsŠmargó",
DlgTableCaption : "Felirat",
DlgTableSummary : "LeÃrás",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cella tulajdonságai",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Középre",
DlgCellVerAlignBottom : "Aljára",
DlgCellVerAlignBaseline : "Egyvonalba",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Sorok egyesÃtése",
DlgCellCollSpan : "Oszlopok egyesÃtése",
DlgCellBackColor : "HáttérszÃn",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "BöngészŠinformáció",
DlgAboutLicenseTab : "Licensz",
DlgAboutVersion : "verzió",
-DlgAboutInfo : "További információkért látogasson el ide:"
+DlgAboutInfo : "További információkért látogasson el ide:",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/is.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/is.js (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/is.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,534 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Icelandic language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir : "ltr",
+
+ToolbarCollapse : "Fela verkstiku",
+ToolbarExpand : "Sýna verkstiku",
+
+// Toolbar Items and Context Menu
+Save : "Vista",
+NewPage : "Ný sÃða",
+Preview : "Forskoða",
+Cut : "Klippa",
+Copy : "Afrita",
+Paste : "LÃma",
+PasteText : "LÃma ósniðinn texta",
+PasteWord : "LÃma úr Word",
+Print : "Prenta",
+SelectAll : "Velja allt",
+RemoveFormat : "Fjarlægja snið",
+InsertLinkLbl : "Stikla",
+InsertLink : "Stofna/breyta stiklu",
+RemoveLink : "Fjarlægja stiklu",
+VisitLink : "Opna stiklusÃðu",
+Anchor : "Stofna/breyta kaflamerki",
+AnchorDelete : "Eyða kaflamerki",
+InsertImageLbl : "Setja inn mynd",
+InsertImage : "Setja inn/breyta mynd",
+InsertFlashLbl : "Flash",
+InsertFlash : "Setja inn/breyta Flash",
+InsertTableLbl : "Tafla",
+InsertTable : "Setja inn/breyta töflu",
+InsertLineLbl : "LÃna",
+InsertLine : "Lóðrétt lÃna",
+InsertSpecialCharLbl: "Merki",
+InsertSpecialChar : "Setja inn merki",
+InsertSmileyLbl : "Svipur",
+InsertSmiley : "Setja upp svip",
+About : "Um FCKeditor",
+Bold : "Feitletrað",
+Italic : "Skáletrað",
+Underline : "Undirstrikað",
+StrikeThrough : "Yfirstrikað",
+Subscript : "Niðurskrifað",
+Superscript : "Uppskrifað",
+LeftJustify : "Vinstrijöfnun",
+CenterJustify : "Miðja texta",
+RightJustify : "Hægrijöfnun",
+BlockJustify : "Jafna báðum megin",
+DecreaseIndent : "Auka inndrátt",
+IncreaseIndent : "Minnka inndrátt",
+Blockquote : "Inndráttur",
+CreateDiv : "Búa til DIV-hýsil",
+EditDiv : "Breyta DIV-hýsli",
+DeleteDiv : "Eyða DIV-hýsli",
+Undo : "Afturkalla",
+Redo : "Hætta við afturköllun",
+NumberedListLbl : "Númeraður listi",
+NumberedList : "Setja inn/fella númeraðan lista",
+BulletedListLbl : "Punktalisti",
+BulletedList : "Setja inn/fella punktalista",
+ShowTableBorders : "Sýna töflugrind",
+ShowDetails : "Sýna smáatriði",
+Style : "StÃlflokkur",
+FontFormat : "StÃlsnið",
+Font : "Leturgerð ",
+FontSize : "Leturstærð ",
+TextColor : "Litur texta",
+BGColor : "Bakgrunnslitur",
+Source : "Kóði",
+Find : "Leita",
+Replace : "Skipta út",
+SpellCheck : "Villuleit",
+UniversalKeyboard : "Hnattrænt lyklaborð",
+PageBreakLbl : "SÃðuskil",
+PageBreak : "Setja inn sÃðuskil",
+
+Form : "Setja inn innsláttarform",
+Checkbox : "Setja inn hökunarreit",
+RadioButton : "Setja inn valhnapp",
+TextField : "Setja inn textareit",
+Textarea : "Setja inn textasvæði",
+HiddenField : "Setja inn falið svæði",
+Button : "Setja inn hnapp",
+SelectionField : "Setja inn lista",
+ImageButton : "Setja inn myndahnapp",
+
+FitWindow : "Skoða ritil à fullri stærð",
+ShowBlocks : "Sýna blokkir",
+
+// Context Menu
+EditLink : "Breyta stiklu",
+CellCM : "Reitur",
+RowCM : "Röð",
+ColumnCM : "Dálkur",
+InsertRowAfter : "Skjóta inn röð fyrir neðan",
+InsertRowBefore : "Skjóta inn röð fyrir ofan",
+DeleteRows : "Eyða röð",
+InsertColumnAfter : "Skjóta inn dálki hægra megin",
+InsertColumnBefore : "Skjóta inn dálki vinstra megin",
+DeleteColumns : "Fella dálk",
+InsertCellAfter : "Skjóta inn reiti fyrir framan",
+InsertCellBefore : "Skjóta inn reiti fyrir aftan",
+DeleteCells : "Fella reit",
+MergeCells : "Sameina reiti",
+MergeRight : "Sameina til hægri",
+MergeDown : "Sameina niður á við",
+HorizontalSplitCell : "Kljúfa reit lárétt",
+VerticalSplitCell : "Kljúfa reit lóðrétt",
+TableDelete : "Fella töflu",
+CellProperties : "Eigindi reits",
+TableProperties : "Eigindi töflu",
+ImageProperties : "Eigindi myndar",
+FlashProperties : "Eigindi Flash",
+
+AnchorProp : "Eigindi kaflamerkis",
+ButtonProp : "Eigindi hnapps",
+CheckboxProp : "Eigindi markreits",
+HiddenFieldProp : "Eigindi falins svæðis",
+RadioButtonProp : "Eigindi valhnapps",
+ImageButtonProp : "Eigindi myndahnapps",
+TextFieldProp : "Eigindi textareits",
+SelectionFieldProp : "Eigindi lista",
+TextareaProp : "Eigindi textasvæðis",
+FormProp : "Eigindi innsláttarforms",
+
+FontFormats : "Venjulegt letur;Forsniðið;Vistfang;Fyrirsögn 1;Fyrirsögn 2;Fyrirsögn 3;Fyrirsögn 4;Fyrirsögn 5;Fyrirsögn 6;Venjulegt (DIV)",
+
+// Alerts and Messages
+ProcessingXHTML : "Meðhöndla XHTML...",
+Done : "Tilbúið",
+PasteWordConfirm : "Textinn sem þú ætlar að lÃma virðist koma úr Word. Viltu hreinsa óþarfar Word-skipanir úr honum?",
+NotCompatiblePaste : "Ãessi aðgerð er bundin við Internet Explorer 5.5 og nýrri. Viltu lÃma textann án þess að hreinsa hann?",
+UnknownToolbarItem : "Ãþekktur hlutur à verkstiku \"%1\"!",
+UnknownCommand : "Ãþekkt skipanaheiti \"%1\"!",
+NotImplemented : "Skipun ekki virkjuð!",
+UnknownToolbarSet : "Verkstikan \"%1\" ekki til!",
+NoActiveX : "Ãryggisstillingarnar à vafranum þÃnum leyfa ekki alla möguleika ritilsins.<br>Láttu vafrann leyfa Active-X og viðbætur til að komast hjá villum og takmörkunum.",
+BrowseServerBlocked : "Ritillinn getur ekki opnað nauðsynlega hjálparglugga!<br>Láttu hann leyfa þessari sÃðu að opna sprettiglugga.",
+DialogBlocked : "Ekki var hægt að opna skipanaglugga!<br>Nauðsynlegt er að leyfa sÃðunni að opna sprettiglugga.",
+VisitLinkBlocked : "Ekki var hægt að opna nýjan glugga. Gangtu úr skugga um að engir sprettigluggabanar séu virkir.",
+
+// Dialogs
+DlgBtnOK : "Ã lagi",
+DlgBtnCancel : "Hætta við",
+DlgBtnClose : "Loka",
+DlgBtnBrowseServer : "Fletta à skjalasafni",
+DlgAdvancedTag : "Tæknilegt",
+DlgOpOther : "<Annað>",
+DlgInfoTab : "Upplýsingar",
+DlgAlertUrl : "Sláðu inn slóð",
+
+// General Dialogs Labels
+DlgGenNotSet : "<ekkert valið>",
+DlgGenId : "Auðkenni",
+DlgGenLangDir : "Lesstefna",
+DlgGenLangDirLtr : "Frá vinstri til hægri (LTR)",
+DlgGenLangDirRtl : "Frá hægri til vinstri (RTL)",
+DlgGenLangCode : "Tungumálakóði",
+DlgGenAccessKey : "Skammvalshnappur",
+DlgGenName : "Nafn",
+DlgGenTabIndex : "Raðnúmer innsláttarreits",
+DlgGenLongDescr : "Nánari lýsing",
+DlgGenClass : "StÃlsniðsflokkur",
+DlgGenTitle : "Titill",
+DlgGenContType : "Tegund innihalds",
+DlgGenLinkCharset : "Táknróf",
+DlgGenStyle : "StÃll",
+
+// Image Dialog
+DlgImgTitle : "Eigindi myndar",
+DlgImgInfoTab : "Almennt",
+DlgImgBtnUpload : "Hlaða upp",
+DlgImgURL : "Vefslóð",
+DlgImgUpload : "Hlaða upp",
+DlgImgAlt : "Baklægur texti",
+DlgImgWidth : "Breidd",
+DlgImgHeight : "Hæð",
+DlgImgLockRatio : "Festa stærðarhlutfall",
+DlgBtnResetSize : "Reikna stærð",
+DlgImgBorder : "Rammi",
+DlgImgHSpace : "Vinstri bil",
+DlgImgVSpace : "Hægri bil",
+DlgImgAlign : "Jöfnun",
+DlgImgAlignLeft : "Vinstri",
+DlgImgAlignAbsBottom: "Abs neðst",
+DlgImgAlignAbsMiddle: "Abs miðjuð",
+DlgImgAlignBaseline : "GrunnlÃna",
+DlgImgAlignBottom : "Neðst",
+DlgImgAlignMiddle : "Miðjuð",
+DlgImgAlignRight : "Hægri",
+DlgImgAlignTextTop : "Efri brún texta",
+DlgImgAlignTop : "Efst",
+DlgImgPreview : "Sýna dæmi",
+DlgImgAlertUrl : "Sláðu inn slóðina að myndinni",
+DlgImgLinkTab : "Stikla",
+
+// Flash Dialog
+DlgFlashTitle : "Eigindi Flash",
+DlgFlashChkPlay : "Sjálfvirk spilun",
+DlgFlashChkLoop : "Endurtekning",
+DlgFlashChkMenu : "Sýna Flash-valmynd",
+DlgFlashScale : "Skali",
+DlgFlashScaleAll : "Sýna allt",
+DlgFlashScaleNoBorder : "Ãn ramma",
+DlgFlashScaleFit : "Fella skala að stærð",
+
+// Link Dialog
+DlgLnkWindowTitle : "Stikla",
+DlgLnkInfoTab : "Almennt",
+DlgLnkTargetTab : "Mark",
+
+DlgLnkType : "Stikluflokkur",
+DlgLnkTypeURL : "Vefslóð",
+DlgLnkTypeAnchor : "Bókamerki á þessari sÃðu",
+DlgLnkTypeEMail : "Netfang",
+DlgLnkProto : "Samskiptastaðall",
+DlgLnkProtoOther : "<annað>",
+DlgLnkURL : "Vefslóð",
+DlgLnkAnchorSel : "Veldu akkeri",
+DlgLnkAnchorByName : "Eftir akkerisnafni",
+DlgLnkAnchorById : "Eftir auðkenni einingar",
+DlgLnkNoAnchors : "<Engin bókamerki á skrá>",
+DlgLnkEMail : "Netfang",
+DlgLnkEMailSubject : "Efni",
+DlgLnkEMailBody : "Meginmál",
+DlgLnkUpload : "Senda upp",
+DlgLnkBtnUpload : "Senda upp",
+
+DlgLnkTarget : "Mark",
+DlgLnkTargetFrame : "<rammi>",
+DlgLnkTargetPopup : "<sprettigluggi>",
+DlgLnkTargetBlank : "Nýr gluggi (_blank)",
+DlgLnkTargetParent : "Yfirsettur rammi (_parent)",
+DlgLnkTargetSelf : "Sami gluggi (_self)",
+DlgLnkTargetTop : "Allur glugginn (_top)",
+DlgLnkTargetFrameName : "Nafn markglugga",
+DlgLnkPopWinName : "Nafn sprettiglugga",
+DlgLnkPopWinFeat : "Eigindi sprettiglugga",
+DlgLnkPopResize : "Skölun",
+DlgLnkPopLocation : "FanglÃna",
+DlgLnkPopMenu : "VallÃna",
+DlgLnkPopScroll : "Skrunstikur",
+DlgLnkPopStatus : "Stöðustika",
+DlgLnkPopToolbar : "Verkfærastika",
+DlgLnkPopFullScrn : "Heilskjár (IE)",
+DlgLnkPopDependent : "Háð venslum (Netscape)",
+DlgLnkPopWidth : "Breidd",
+DlgLnkPopHeight : "Hæð",
+DlgLnkPopLeft : "Fjarlægð frá vinstri",
+DlgLnkPopTop : "Fjarlægð frá efri brún",
+
+DlnLnkMsgNoUrl : "Sláðu inn veffang stiklunnar!",
+DlnLnkMsgNoEMail : "Sláðu inn netfang!",
+DlnLnkMsgNoAnchor : "Veldu fyrst eitthvert bókamerki!",
+DlnLnkMsgInvPopName : "SprettisÃðan verður að byrja á bókstaf (a-z) og má ekki innihalda stafabil",
+
+// Color Dialog
+DlgColorTitle : "Velja lit",
+DlgColorBtnClear : "Núllstilla",
+DlgColorHighlight : "Litmerkja",
+DlgColorSelected : "Valið",
+
+// Smiley Dialog
+DlgSmileyTitle : "Velja svip",
+
+// Special Character Dialog
+DlgSpecialCharTitle : "Velja tákn",
+
+// Table Dialog
+DlgTableTitle : "Eigindi töflu",
+DlgTableRows : "Raðir",
+DlgTableColumns : "Dálkar",
+DlgTableBorder : "Breidd ramma",
+DlgTableAlign : "Jöfnun",
+DlgTableAlignNotSet : "<ekkert valið>",
+DlgTableAlignLeft : "Vinstrijafnað",
+DlgTableAlignCenter : "Miðjað",
+DlgTableAlignRight : "Hægrijafnað",
+DlgTableWidth : "Breidd",
+DlgTableWidthPx : "myndeindir",
+DlgTableWidthPc : "prósent",
+DlgTableHeight : "Hæð",
+DlgTableCellSpace : "Bil milli reita",
+DlgTableCellPad : "ReitaspássÃa",
+DlgTableCaption : "Titill",
+DlgTableSummary : "Ãfram",
+DlgTableHeaders : "Fyrirsagnir",
+DlgTableHeadersNone : "Engar",
+DlgTableHeadersColumn : "Fyrsti dálkur",
+DlgTableHeadersRow : "Fyrsta röð",
+DlgTableHeadersBoth : "Hvort tveggja",
+
+// Table Cell Dialog
+DlgCellTitle : "Eigindi reits",
+DlgCellWidth : "Breidd",
+DlgCellWidthPx : "myndeindir",
+DlgCellWidthPc : "prósent",
+DlgCellHeight : "Hæð",
+DlgCellWordWrap : "LÃnuskipting",
+DlgCellWordWrapNotSet : "<ekkert valið>",
+DlgCellWordWrapYes : "Já",
+DlgCellWordWrapNo : "Nei",
+DlgCellHorAlign : "Lárétt jöfnun",
+DlgCellHorAlignNotSet : "<ekkert valið>",
+DlgCellHorAlignLeft : "Vinstrijafnað",
+DlgCellHorAlignCenter : "Miðjað",
+DlgCellHorAlignRight: "Hægrijafnað",
+DlgCellVerAlign : "Lóðrétt jöfnun",
+DlgCellVerAlignNotSet : "<ekkert valið>",
+DlgCellVerAlignTop : "Efst",
+DlgCellVerAlignMiddle : "Miðjað",
+DlgCellVerAlignBottom : "Neðst",
+DlgCellVerAlignBaseline : "GrunnlÃna",
+DlgCellType : "Tegund reits",
+DlgCellTypeData : "Gögn",
+DlgCellTypeHeader : "Fyrirsögn",
+DlgCellRowSpan : "Hæð à röðum talið",
+DlgCellCollSpan : "Breidd à dálkum talið",
+DlgCellBackColor : "Bakgrunnslitur",
+DlgCellBorderColor : "Rammalitur",
+DlgCellBtnSelect : "Veldu...",
+
+// Find and Replace Dialog
+DlgFindAndReplaceTitle : "Finna og skipta",
+
+// Find Dialog
+DlgFindTitle : "Finna",
+DlgFindFindBtn : "Finna",
+DlgFindNotFoundMsg : "Leitartexti fannst ekki!",
+
+// Replace Dialog
+DlgReplaceTitle : "Skipta út",
+DlgReplaceFindLbl : "Leita að:",
+DlgReplaceReplaceLbl : "Skipta út fyrir:",
+DlgReplaceCaseChk : "Gera greinarmun á¡ há¡- og lágstöfum",
+DlgReplaceReplaceBtn : "Skipta út",
+DlgReplaceReplAllBtn : "Skipta út allsstaðar",
+DlgReplaceWordChk : "Aðeins heil orð",
+
+// Paste Operations / Dialog
+PasteErrorCut : "Ãryggisstillingar vafrans þÃns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið à klippa (Ctrl+X).",
+PasteErrorCopy : "Ãryggisstillingar vafrans þÃns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið à afrita (Ctrl+C).",
+
+PasteAsText : "LÃma sem ósniðinn texta",
+PasteFromWord : "LÃma úr Word",
+
+DlgPasteMsg2 : "LÃmdu à svæðið hér að neðan og (<STRONG>Ctrl+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.",
+DlgPasteSec : "Vegna öryggisstillinga à vafranum þÃnum fær ritillinn ekki beinan aðgang að klippuborðinu. Ãú verður að lÃma innihaldið aftur inn à þennan glugga.",
+DlgPasteIgnoreFont : "Hunsa leturskilgreiningar",
+DlgPasteRemoveStyles : "Hunsa letureigindi",
+
+// Color Picker
+ColorAutomatic : "Sjálfval",
+ColorMoreColors : "Fleiri liti...",
+
+// Document Properties
+DocProps : "Eigindi skjals",
+
+// Anchor Dialog
+DlgAnchorTitle : "Eigindi bókamerkis",
+DlgAnchorName : "Nafn bókamerkis",
+DlgAnchorErrorName : "Sláðu inn nafn bókamerkis!",
+
+// Speller Pages Dialog
+DlgSpellNotInDic : "Ekki à orðabókinni",
+DlgSpellChangeTo : "Tillaga",
+DlgSpellBtnIgnore : "Hunsa",
+DlgSpellBtnIgnoreAll : "Hunsa allt",
+DlgSpellBtnReplace : "Skipta",
+DlgSpellBtnReplaceAll : "Skipta öllu",
+DlgSpellBtnUndo : "Til baka",
+DlgSpellNoSuggestions : "- engar tillögur -",
+DlgSpellProgress : "Villuleit à gangi...",
+DlgSpellNoMispell : "Villuleit lokið: Engin villa fannst",
+DlgSpellNoChanges : "Villuleit lokið: Engu orði breytt",
+DlgSpellOneChange : "Villuleit lokið: Einu orði breytt",
+DlgSpellManyChanges : "Villuleit lokið: %1 orðum breytt",
+
+IeSpellDownload : "Villuleit ekki sett upp.<br>Viltu setja hana upp?",
+
+// Button Dialog
+DlgButtonText : "Texti",
+DlgButtonType : "Gerð",
+DlgButtonTypeBtn : "Hnappur",
+DlgButtonTypeSbm : "Staðfesta",
+DlgButtonTypeRst : "Hreinsa",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName : "Nafn",
+DlgCheckboxValue : "Gildi",
+DlgCheckboxSelected : "Valið",
+
+// Form Dialog
+DlgFormName : "Nafn",
+DlgFormAction : "Aðgerð",
+DlgFormMethod : "Aðferð",
+
+// Select Field Dialog
+DlgSelectName : "Nafn",
+DlgSelectValue : "Gildi",
+DlgSelectSize : "Stærð",
+DlgSelectLines : "lÃnur",
+DlgSelectChkMulti : "Leyfa fleiri kosti",
+DlgSelectOpAvail : "Kostir",
+DlgSelectOpText : "Texti",
+DlgSelectOpValue : "Gildi",
+DlgSelectBtnAdd : "Bæta við",
+DlgSelectBtnModify : "Breyta",
+DlgSelectBtnUp : "Upp",
+DlgSelectBtnDown : "Niður",
+DlgSelectBtnSetValue : "Merkja sem valið",
+DlgSelectBtnDelete : "Eyða",
+
+// Textarea Dialog
+DlgTextareaName : "Nafn",
+DlgTextareaCols : "Dálkar",
+DlgTextareaRows : "LÃnur",
+
+// Text Field Dialog
+DlgTextName : "Nafn",
+DlgTextValue : "Gildi",
+DlgTextCharWidth : "Breidd (leturtákn)",
+DlgTextMaxChars : "Hámarksfjöldi leturtákna",
+DlgTextType : "Gerð",
+DlgTextTypeText : "Texti",
+DlgTextTypePass : "Lykilorð",
+
+// Hidden Field Dialog
+DlgHiddenName : "Nafn",
+DlgHiddenValue : "Gildi",
+
+// Bulleted List Dialog
+BulletedListProp : "Eigindi depillista",
+NumberedListProp : "Eigindi tölusetts lista",
+DlgLstStart : "Byrja",
+DlgLstType : "Gerð",
+DlgLstTypeCircle : "Hringur",
+DlgLstTypeDisc : "Fylltur hringur",
+DlgLstTypeSquare : "Ferningur",
+DlgLstTypeNumbers : "Tölusett (1, 2, 3)",
+DlgLstTypeLCase : "Lágstafir (a, b, c)",
+DlgLstTypeUCase : "Hástafir (A, B, C)",
+DlgLstTypeSRoman : "Rómverkar lágstafatölur (i, ii, iii)",
+DlgLstTypeLRoman : "Rómverkar hástafatölur (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab : "Almennt",
+DlgDocBackTab : "Bakgrunnur",
+DlgDocColorsTab : "Litir og rammar",
+DlgDocMetaTab : "Lýsigögn",
+
+DlgDocPageTitle : "Titill sÃðu",
+DlgDocLangDir : "Tungumál",
+DlgDocLangDirLTR : "Vinstri til hægri (LTR)",
+DlgDocLangDirRTL : "Hægri til vinstri (RTL)",
+DlgDocLangCode : "Tungumálakóði",
+DlgDocCharSet : "Letursett",
+DlgDocCharSetCE : "Mið-evrópskt",
+DlgDocCharSetCT : "KÃnverskt, hefðbundið (Big5)",
+DlgDocCharSetCR : "Kýrilskt",
+DlgDocCharSetGR : "GrÃskt",
+DlgDocCharSetJP : "Japanskt",
+DlgDocCharSetKR : "Kóreskt",
+DlgDocCharSetTR : "Tyrkneskt",
+DlgDocCharSetUN : "Unicode (UTF-8)",
+DlgDocCharSetWE : "Vestur-evrópst",
+DlgDocCharSetOther : "Annað letursett",
+
+DlgDocDocType : "Flokkur skjalategunda",
+DlgDocDocTypeOther : "Annar flokkur skjalategunda",
+DlgDocIncXHTML : "Fella inn XHTML lýsingu",
+DlgDocBgColor : "Bakgrunnslitur",
+DlgDocBgImage : "Slóð bakgrunnsmyndar",
+DlgDocBgNoScroll : "Læstur bakgrunnur",
+DlgDocCText : "Texti",
+DlgDocCLink : "Stikla",
+DlgDocCVisited : "Heimsótt stikla",
+DlgDocCActive : "Virk stikla",
+DlgDocMargins : "HliðarspássÃa",
+DlgDocMaTop : "Efst",
+DlgDocMaLeft : "Vinstri",
+DlgDocMaRight : "Hægri",
+DlgDocMaBottom : "Neðst",
+DlgDocMeIndex : "Lykilorð efnisorðaskrár (aðgreind með kommum)",
+DlgDocMeDescr : "Lýsing skjals",
+DlgDocMeAuthor : "Höfundur",
+DlgDocMeCopy : "Höfundarréttur",
+DlgDocPreview : "Sýna",
+
+// Templates Dialog
+Templates : "Sniðmát",
+DlgTemplatesTitle : "Innihaldssniðmát",
+DlgTemplatesSelMsg : "Veldu sniðmát til að opna à ritlinum.<br>(Núverandi innihald vÃkur fyrir þvÃ!):",
+DlgTemplatesLoading : "Sæki lista yfir sniðmát...",
+DlgTemplatesNoTpl : "(Ekkert sniðmát er skilgreint!)",
+DlgTemplatesReplace : "Skipta út raunverulegu innihaldi",
+
+// About Dialog
+DlgAboutAboutTab : "Um",
+DlgAboutBrowserInfoTab : "Almennt",
+DlgAboutLicenseTab : "Leyfi",
+DlgAboutVersion : "útgáfa",
+DlgAboutInfo : "Nánari upplýsinar, sjá:",
+
+// Div Dialog
+DlgDivGeneralTab : "Almennt",
+DlgDivAdvancedTab : "Sérhæft",
+DlgDivStyle : "StÃll",
+DlgDivInlineStyle : "LÃnulægur stÃll"
+};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/it.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/it.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Collegamento",
InsertLink : "Inserisci/Modifica collegamento",
RemoveLink : "Elimina collegamento",
+VisitLink : "Open Link", //MISSING
Anchor : "Inserisci/Modifica Ancora",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Rimuovi Ancora",
InsertImageLbl : "Immagine",
InsertImage : "Inserisci/Modifica immagine",
InsertFlashLbl : "Oggetto Flash",
@@ -72,6 +73,9 @@
DecreaseIndent : "Riduci rientro",
IncreaseIndent : "Aumenta rientro",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Annulla",
Redo : "Ripristina",
NumberedListLbl : "Elenco numerato",
@@ -105,27 +109,27 @@
ImageButton : "Bottone immagine",
FitWindow : "Massimizza l'area dell'editor",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "Visualizza Blocchi",
// Context Menu
EditLink : "Modifica collegamento",
CellCM : "Cella",
RowCM : "Riga",
ColumnCM : "Colonna",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Inserisci Riga Dopo",
+InsertRowBefore : "Inserisci Riga Prima",
DeleteRows : "Elimina righe",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Inserisci Colonna Dopo",
+InsertColumnBefore : "Inserisci Colonna Prima",
DeleteColumns : "Elimina colonne",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Inserisci Cella Dopo",
+InsertCellBefore : "Inserisci Cella Prima",
DeleteCells : "Elimina celle",
MergeCells : "Unisce celle",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Unisci a Destra",
+MergeDown : "Unisci in Basso",
+HorizontalSplitCell : "Dividi Cella Orizzontalmente",
+VerticalSplitCell : "Dividi Cella Verticalmente",
TableDelete : "Cancella Tabella",
CellProperties : "Proprietà cella",
TableProperties : "Proprietà tabella",
@@ -157,6 +161,7 @@
NoActiveX : "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.",
BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",
DialogBlocked : "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Padding celle",
DlgTableCaption : "Intestazione",
DlgTableSummary : "Indice",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Proprietà cella",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Centrato",
DlgCellVerAlignBottom : "In Basso",
DlgCellVerAlignBaseline : "Linea base",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Righe occupate",
DlgCellCollSpan : "Colonne occupate",
DlgCellBackColor : "Colore sfondo",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Scegli...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Cerca e Sostituisci",
// Find Dialog
DlgFindTitle : "Trova",
@@ -356,7 +369,7 @@
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
+DlgPasteSec : "A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.",
DlgPasteIgnoreFont : "Ignora le definizioni di Font",
DlgPasteRemoveStyles : "Rimuovi le definizioni di Stile",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informazioni Browser",
DlgAboutLicenseTab : "Licenza",
DlgAboutVersion : "versione",
-DlgAboutInfo : "Per maggiori informazioni visitare"
+DlgAboutInfo : "Per maggiori informazioni visitare",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ja.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ja.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ja.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ãªã³ã¯",
InsertLink : "ãªã³ã¯æ¿å
¥/ç·¨é",
RemoveLink : "ãªã³ã¯åé¤",
+VisitLink : "ãªã³ã¯ãéã",
Anchor : "ã¢ã³ã«ã¼æ¿å
¥/ç·¨é",
AnchorDelete : "ã¢ã³ã«ã¼åé¤",
InsertImageLbl : "ã¤ã¡ã¼ã¸",
@@ -72,6 +73,9 @@
DecreaseIndent : "ã¤ã³ãã³ã解é¤",
IncreaseIndent : "ã¤ã³ãã³ã",
Blockquote : "ãããã¯å¼ç¨",
+CreateDiv : "Div ä½æ",
+EditDiv : "Div ç·¨é",
+DeleteDiv : "Div åé¤",
Undo : "å
ã«æ»ã",
Redo : "ããç´ã",
NumberedListLbl : "段è½çªå·",
@@ -157,6 +161,7 @@
NoActiveX : "ã¨ã©ã¼ãè¦åã¡ãã»ã¼ã¸ãªã©ãçºçããå ´åããã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®ããã¤ãã®æ©è½ãå¶éããã¦ããå¯è½æ§ãããã¾ããã»ãã¥ãªãã£è¨å®ã®ãªãã·ã§ã³ã§\"ActiveXã³ã³ããã¼ã«ã¨ãã©ã°ã¤ã³ã®å®è¡\"ãæå¹ã«ããã«ãã¦ãã ããã",
BrowseServerBlocked : "ãµã¼ãã¼ãã©ã¦ã¶ã¼ãéããã¨ãã§ãã¾ããã§ããããããã¢ããã»ãããã¯æ©è½ãç¡å¹ã«ãªã£ã¦ããã確èªãã¦ãã ããã",
DialogBlocked : "ãã¤ã¢ãã°ã¦ã£ã³ãã¦ãéããã¨ãã§ãã¾ããã§ããããããã¢ããã»ãããã¯æ©è½ãç¡å¹ã«ãªã£ã¦ããã確èªãã¦ãã ããã",
+VisitLinkBlocked : "æ°ããã¦ã£ã³ãã¦ãéããã¨ãã§ãã¾ããã§ããããããã¢ããã»ãããã¯æ©è½ãç¡å¹ã«ãªã£ã¦ããã確èªãã¦ãã ããã",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ã»ã«å
éé",
DlgTableCaption : "キャï¾ï¾ï½¼ï½®ï¾",
DlgTableSummary : "ãã¼ãã«ç®ç/æ§é ",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ã»ã« ããããã£",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ä¸å¤®",
DlgCellVerAlignBottom : "ä¸",
DlgCellVerAlignBaseline : "ãã¼ã¹ã©ã¤ã³",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "縦å¹
(è¡æ°)",
DlgCellCollSpan : "横å¹
(åæ°)",
DlgCellBackColor : "èæ¯è²",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ãã©ã¦ã¶æ
å ±",
DlgAboutLicenseTab : "ã©ã¤ã»ã³ã¹",
DlgAboutVersion : "ãã¼ã¸ã§ã³",
-DlgAboutInfo : "ãã詳ããæ
å ±ã¯ãã¡ãã§"
+DlgAboutInfo : "ãã詳ããæ
å ±ã¯ãã¡ãã§",
+
+// Div Dialog
+DlgDivGeneralTab : "å
¨è¬",
+DlgDivAdvancedTab : "é«åº¦ãªè¨å®",
+DlgDivStyle : "ã¹ã¿ã¤ã«",
+DlgDivInlineStyle : "ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/km.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/km.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/km.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "áááá¶áá",
InsertLink : "áááááá/áááááá áááá¶áá",
RemoveLink : "ááááááá¶áá",
+VisitLink : "Open Link", //MISSING
Anchor : "áááááá/áááááá áá»áááá¶",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "áá¼ááá¶á",
@@ -72,6 +73,9 @@
DecreaseIndent : "ááááááá¶áá
á¼áááááá¶áá",
IncreaseIndent : "áááááááá¶áá
á¼áááááá¶áá",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "áá¶áá¡á¾ááá·á",
Redo : "áááá¾á¡á¾ááá·á",
NumberedListLbl : "ááááá¸áá¶á¢áááá",
@@ -157,6 +161,7 @@
NoActiveX : "áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá áááâá¢á¶á
áááá¾á¢áááááá¢ááááá·áá¢á¶á
áááá¾áá»ááá¶ááááááááááááááá·áá¸áá¶áááááá¢áááááááá á áááá¢ááááááá¼ááááááá¢áá \"ActiveX áá·áâáááááá·áá¸áááá½ááááá»á (plug-ins)\" á¢áááááá¾ááá¶á á áááá¢áááá¢á¶á
áá½áááááááá¹á áááá ᶠáááááá¶áá½ááá¹ááá¶ááá¶ááááááá»ááá¶ááá¶áá½ááááááááááá·áá¸áá¶áááááá¢áááááááá á",
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING
DialogBlocked : "áá¸ááá¼ááá·áá¢á¶á
áá¾ááá¶ááá á áá¼ááá·áá·áááá
áááááááááá·áá¸áá·á áá¸ááá¼áááá (popup) áá¶áá¾áá¶áááá¾ááá¶áááºáá á",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "ááááááá",
@@ -303,6 +308,11 @@
DlgTableCellPad : "áááááá",
DlgTableCaption : "á
ááááá¾á",
DlgTableSummary : "ááá
áááá¸áááááá",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "áá¶áááááá ááá",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ááááá¶á",
DlgCellVerAlignBottom : "áá¶áááááá",
DlgCellVerAlignBaseline : "ááááá¶áááá¶áá¼ááááá¶á",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ááááá¼ááá½áááááá",
DlgCellCollSpan : "ááááá¼ááá½ááá",
DlgCellBackColor : "áááááááááá¶áááááá",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ááááá¶ááááááá·áá¸áá»ááá",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "áááá¶áá",
-DlgAboutInfo : "áááá¶ááááááá¶ááááááááá áá¼ááá¶áááá"
+DlgAboutInfo : "áááá¶ááááááá¶ááááááááá áá¼ááá¶áááá",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ko.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ko.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ë§í¬",
InsertLink : "ë§í¬ ì½ì
/ë³ê²½",
RemoveLink : "ë§í¬ ìì ",
+VisitLink : "Open Link", //MISSING
Anchor : "ì±
ê°í¼ ì½ì
/ë³ê²½",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "ì´ë¯¸ì§",
@@ -72,6 +73,9 @@
DecreaseIndent : "ë´ì´ì°ê¸°",
IncreaseIndent : "ë¤ì¬ì°ê¸°",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ì·¨ì",
Redo : "ì¬ì¤í",
NumberedListLbl : "ìììë 목ë¡",
@@ -157,6 +161,7 @@
NoActiveX : "ë¸ë¬ì°ì ì ë³´ì ì¤ì ì¼ë¡ ì¸í´ ëªëª 기ë¥ì ìëì ì¥ì ê° ìì ì ììµëë¤. \"ì¡í°ë¸-ì¡ì¤ 기ë¥ê³¼ íë¬ê·¸ ì¸\" ìµì
ì íì©íì¬ ì£¼ìì§ ìì¼ë©´ ì¤ë¥ê° ë°ìí ì ììµëë¤.",
BrowseServerBlocked : "ë¸ë¬ì°ì ììê° ì´ë¦¬ì§ ììµëë¤. íì
ì°¨ë¨ ì¤ì ì´ êº¼ì ¸ìëì§ íì¸íì¬ ì£¼ììì¤.",
DialogBlocked : "ìëì° ëíì°½ì ì´ ì ììµëë¤. íì
ì°¨ë¨ ì¤ì ì´ êº¼ì ¸ìëì§ íì¸íì¬ ì£¼ììì¤.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "ì",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ì
ì¬ë°±",
DlgTableCaption : "캡ì
",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ì
ì¤ì ",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ì¤ê°",
DlgCellVerAlignBottom : "ìë",
DlgCellVerAlignBaseline : "기ì¤ì ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ì¸ë¡ í©ì¹ê¸°",
DlgCellCollSpan : "ê°ë¡ í©ì¹ê¸°",
DlgCellBackColor : "ë°°ê²½ ìì",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ë¸ë¼ì°ì ì ë³´",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "ë²ì ",
-DlgAboutInfo : "ë ë§ì ì 보를 ë³´ìë ¤ë©´ ë¤ì ì¬ì´í¸ë¡ ê°ììì¤."
+DlgAboutInfo : "ë ë§ì ì 보를 ë³´ìë ¤ë©´ ë¤ì ì¬ì´í¸ë¡ ê°ììì¤.",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lt.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/lt.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lt.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Nuoroda",
InsertLink : "Ä®terpti/taisyti nuorodÄ
",
RemoveLink : "Panaikinti nuorodÄ
",
+VisitLink : "Open Link", //MISSING
Anchor : "Ä®terpti/modifikuoti žymÄ",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Vaizdas",
@@ -72,6 +73,9 @@
DecreaseIndent : "Sumažinti įtraukÄ
",
IncreaseIndent : "Padidinti įtraukÄ
",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Atšaukti",
Redo : "Atstatyti",
NumberedListLbl : "Numeruotas sÄ
rašas",
@@ -157,6 +161,7 @@
NoActiveX : "JÅ«sų narÅ¡yklÄs saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. JÅ«s turite aktyvuoti opcijÄ
\"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.",
BrowseServerBlocked : "Neįmanoma atidaryti naujo narÅ¡yklÄs lango. Ä®sitikinkite, kad iÅ¡kylanÄių langų blokavimo programos neveiksnios.",
DialogBlocked : "Neįmanoma atidaryti dialogo lango. Ä®sitikinkite, kad iÅ¡kylanÄių langų blokavimo programos neveiksnios.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Trapas nuo langelio rÄmo iki teksto",
DlgTableCaption : "AntraÅ¡tÄ",
DlgTableSummary : "Santrauka",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Langelio savybÄs",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Vidurį",
DlgCellVerAlignBottom : "ApaÄiÄ
",
DlgCellVerAlignBaseline : "ApatinÄ linijÄ
",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "EiluÄių apjungimas",
DlgCellCollSpan : "Stulpelių apjungimas",
DlgCellBackColor : "Fono spalva",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "NarÅ¡yklÄs informacija",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versija",
-DlgAboutInfo : "PapildomÄ
informacijÄ
galima gauti"
+DlgAboutInfo : "PapildomÄ
informacijÄ
galima gauti",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lv.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/lv.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/lv.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Hipersaite",
InsertLink : "Ievietot/Labot hipersaiti",
RemoveLink : "NoÅemt hipersaiti",
+VisitLink : "Open Link", //MISSING
Anchor : "Ievietot/Labot iezīmi",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "AttÄls",
@@ -72,6 +73,9 @@
DecreaseIndent : "SamazinÄt atkÄpi",
IncreaseIndent : "PalielinÄt atkÄpi",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Atcelt",
Redo : "AtkÄrtot",
NumberedListLbl : "NumurÄts saraksts",
@@ -157,6 +161,7 @@
NoActiveX : "Interneta pÄrlÅ«kprogrammas droÅ¡Ä«bas uzstÄdÄ«jumi varÄtu ietekmÄt dažas no redaktora Ä«paÅ¡Ä«bÄm. JÄbÅ«t aktivizÄtai sadaļai \"Run ActiveX controls and plug-ins\". SavÄdÄk ir iespÄjamas kļūdas darbÄ«bÄ un kļūdu paziÅojumu parÄdÄ«Å¡anÄs.",
BrowseServerBlocked : "Resursu pÄrlÅ«ks nevar tikt atvÄrts. PÄrliecinieties, ka uznirstoÅ¡o logu bloÄ·ÄtÄji ir atslÄgti.",
DialogBlocked : "Nav iespÄjams atvÄrt dialoglogu. PÄrliecinieties, ka uznirstoÅ¡o logu bloÄ·ÄtÄji ir atslÄgti.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "Darīts!",
@@ -303,6 +308,11 @@
DlgTableCellPad : "RÅ«tiÅu nobÄ«de",
DlgTableCaption : "Leģenda",
DlgTableSummary : "AnotÄcija",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "RÅ«tiÅas Ä«paÅ¡Ä«bas",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Vidus",
DlgCellVerAlignBottom : "Apakša",
DlgCellVerAlignBaseline : "PamatrindÄ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Rindu pÄrnese",
DlgCellCollSpan : "Kolonnu pÄrnese",
DlgCellBackColor : "Fona krÄsa",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "InformÄcija par pÄrlÅ«kprogrammu",
DlgAboutLicenseTab : "Licence",
DlgAboutVersion : "versija",
-DlgAboutInfo : "Papildus informÄcija ir pieejama"
+DlgAboutInfo : "Papildus informÄcija ir pieejama",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/mn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/mn.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/mn.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Ðинк",
InsertLink : "Ðинк ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
",
RemoveLink : "Ðинк Ð°Ð²Ñ Ñ
аÑÑ
",
+VisitLink : "Open Link", //MISSING
Anchor : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
",
AnchorDelete : "Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐваÑ
",
InsertImageLbl : "ÐÑÑаг",
@@ -72,6 +73,9 @@
DecreaseIndent : "Ðогол Ð¼Ó©Ñ Ð½ÑмÑÑ
",
IncreaseIndent : "Ðогол Ð¼Ó©Ñ Ñ
аÑаÑ
",
Blockquote : "ХайÑÑаглаÑ
",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Ð¥Ò¯Ñингүй болгоÑ
",
Redo : "ӨмнөÑ
үйлдлÑÑ ÑÑÑгÑÑÑ
",
NumberedListLbl : "ÐÑгааÑлагдÑан жагÑаалÑ",
@@ -157,6 +161,7 @@
NoActiveX : "Ð¢Ð°Ð½Ñ Ò¯Ð·Ò¯Ò¯Ð»ÑгÑ/browser-н Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-н заÑим боломжийг Ñ
ÑзгааÑлаж байна. Та \"Run ActiveX controls ба plug-ins\" ÑонголÑг идвÑÑ
иÑÑй болго.",
BrowseServerBlocked : "ÐÓ©Ó©Ñ Ò¯Ð·Ò¯Ò¯Ð³Ñ Ð½ÑÑж ÑадÑангүй. ÐÒ¯Ñ
popup blocker-г disabled болгоно ÑÑ.",
DialogBlocked : "ХаÑилÑаÑ
ÑонÑ
онд Ñнийг нÑÑÑ
Ñд боломжгүй ÑÑ. ÐÒ¯Ñ
popup blocker-г disabled болгоно ÑÑ.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÐÒ¯Ñ
доÑоÑлоÑ
(padding)",
DlgTableCaption : "ТайлбаÑ",
DlgTableSummary : "ТайлбаÑ",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ХооÑон зайн Ñинж ÑанаÑ",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ÐÑнд",
DlgCellVerAlignBottom : "Ðоод Ñал",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ÐÐ¸Ð¹Ñ Ð¼Ó©Ñ (span)",
DlgCellCollSpan : "ÐÐ¸Ð¹Ñ Ð±Ð°Ð³Ð°Ð½Ð° (span)",
DlgCellBackColor : "Ð¤Ð¾Ð½Ð½Ñ Ó©Ð½Ð³Ó©",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ÐÑдÑÑлÑл үзүүлÑгÑ",
DlgAboutLicenseTab : "ÐиÑенз",
DlgAboutVersion : "Ð¥ÑвилбаÑ",
-DlgAboutInfo : "ÐÑдÑÑллÑÑÑ ÑÑÑлаÑ
"
+DlgAboutInfo : "ÐÑдÑÑллÑÑÑ ÑÑÑлаÑ
",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ms.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ms.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ms.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Sambungan",
InsertLink : "Masukkan/Sunting Sambungan",
RemoveLink : "Buang Sambungan",
+VisitLink : "Open Link", //MISSING
Anchor : "Masukkan/Sunting Pautan",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Gambar",
@@ -72,6 +73,9 @@
DecreaseIndent : "Kurangkan Inden",
IncreaseIndent : "Tambahkan Inden",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Batalkan",
Redo : "Ulangkan",
NumberedListLbl : "Senarai bernombor",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Tambahan Ruang Sel",
DlgTableCaption : "Keterangan",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Ciri-ciri Sel",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Tengah",
DlgCellVerAlignBottom : "Bawah",
DlgCellVerAlignBaseline : "Garis Dasar",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Penggunaan Baris",
DlgCellCollSpan : "Penggunaan Lajur",
DlgCellBackColor : "Warna Latarbelakang",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Maklumat Perisian Browser",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "versi",
-DlgAboutInfo : "Untuk maklumat lanjut sila pergi ke"
+DlgAboutInfo : "Untuk maklumat lanjut sila pergi ke",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nb.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/nb.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nb.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Lenke",
InsertLink : "Sett inn/Rediger lenke",
RemoveLink : "Fjern lenke",
+VisitLink : "Ã
pne lenke",
Anchor : "Sett inn/Rediger anker",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Fjern anker",
InsertImageLbl : "Bilde",
InsertImage : "Sett inn/Rediger bilde",
InsertFlashLbl : "Flash",
@@ -72,10 +73,13 @@
DecreaseIndent : "Senk nivå",
IncreaseIndent : "Ãk nivÃ¥",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Angre",
Redo : "Gjør om",
-NumberedListLbl : "Numrert liste",
-NumberedList : "Sett inn/Fjern numrert liste",
+NumberedListLbl : "Nummerert liste",
+NumberedList : "Sett inn/Fjern nummerert liste",
BulletedListLbl : "Uordnet liste",
BulletedList : "Sett inn/Fjern uordnet liste",
ShowTableBorders : "Vis tabellrammer",
@@ -87,7 +91,7 @@
TextColor : "Tekstfarge",
BGColor : "Bakgrunnsfarge",
Source : "Kilde",
-Find : "Finn",
+Find : "Søk",
Replace : "Erstatt",
SpellCheck : "Stavekontroll",
UniversalKeyboard : "Universelt tastatur",
@@ -95,13 +99,13 @@
PageBreak : "Sett inn sideskift",
Form : "Skjema",
-Checkbox : "Sjekkboks",
-RadioButton : "Radioknapp",
-TextField : "Tekstfelt",
+Checkbox : "Avmerkingsboks",
+RadioButton : "Alternativknapp",
+TextField : "Tekstboks",
Textarea : "Tekstområde",
HiddenField : "Skjult felt",
Button : "Knapp",
-SelectionField : "Dropdown meny",
+SelectionField : "Rullegardinliste",
ImageButton : "Bildeknapp",
FitWindow : "Maksimer størrelsen på redigeringsverktøyet",
@@ -112,51 +116,52 @@
CellCM : "Celle",
RowCM : "Rader",
ColumnCM : "Kolonne",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Sett inn rad etter",
+InsertRowBefore : "Sett inn rad før",
DeleteRows : "Slett rader",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Sett inn kolonne etter",
+InsertColumnBefore : "Sett inn kolonne før",
DeleteColumns : "Slett kolonner",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Sett inn celle etter",
+InsertCellBefore : "Sett inn celle før",
DeleteCells : "Slett celler",
MergeCells : "Slå sammen celler",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Slå sammen høyre",
+MergeDown : "Slå sammen ned",
+HorizontalSplitCell : "Del celle horisontalt",
+VerticalSplitCell : "Del celle vertikalt",
TableDelete : "Slett tabell",
-CellProperties : "Celleegenskaper",
-TableProperties : "Tabellegenskaper",
-ImageProperties : "Bildeegenskaper",
-FlashProperties : "Flash Egenskaper",
+CellProperties : "Egenskaper for celle",
+TableProperties : "Egenskaper for tabell",
+ImageProperties : "Egenskaper for bilde",
+FlashProperties : "Egenskaper for Flash-objekt",
-AnchorProp : "Ankeregenskaper",
-ButtonProp : "Knappegenskaper",
-CheckboxProp : "Sjekkboksegenskaper",
-HiddenFieldProp : "Skjult felt egenskaper",
-RadioButtonProp : "Radioknappegenskaper",
-ImageButtonProp : "Bildeknappegenskaper",
-TextFieldProp : "Tekstfeltegenskaper",
-SelectionFieldProp : "Dropdown menyegenskaper",
-TextareaProp : "Tekstfeltegenskaper",
-FormProp : "Skjemaegenskaper",
+AnchorProp : "Egenskaper for anker",
+ButtonProp : "Egenskaper for knapp",
+CheckboxProp : "Egenskaper for avmerkingsboks",
+HiddenFieldProp : "Egenskaper for skjult felt",
+RadioButtonProp : "Egenskaper for alternativknapp",
+ImageButtonProp : "Egenskaper for bildeknapp",
+TextFieldProp : "Egenskaper for tekstfelt",
+SelectionFieldProp : "Egenskaper for rullegardinliste",
+TextareaProp : "Egenskaper for tekstområde",
+FormProp : "Egenskaper for skjema",
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...",
Done : "Ferdig",
-PasteWordConfirm : "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",
-NotCompatiblePaste : "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",
+PasteWordConfirm : "Teksten du prøver å lime inn ser ut som om den kommer fra Word. Vil du rense den for unødvendig kode før du limer inn?",
+NotCompatiblePaste : "Denne kommandoen er kun tilgjenglig for Internet Explorer versjon 5.5 eller bedre. Vil du fortsette uten å rense? (Du kan lime inn som ren tekst)",
UnknownToolbarItem : "Ukjent menyvalg \"%1\"",
UnknownCommand : "Ukjent kommando \"%1\"",
-NotImplemented : "Kommando ikke ennå implimentert",
+NotImplemented : "Kommando ikke implimentert",
UnknownToolbarSet : "Verktøylinjesett \"%1\" finnes ikke",
-NoActiveX : "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",
-BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",
-DialogBlocked : "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",
+NoActiveX : "Din nettlesers sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveX-kontroller og plugin-modeller\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Sjekk at popup-blokkering er deaktivert.",
+DialogBlocked : "Kunne ikke åpne dialogboksen. Sjekk at popup-blokkering er deaktivert.",
+VisitLinkBlocked : "Kunne ikke åpne et nytt vindu. Sjekk at popup-blokkering er deaktivert.",
// Dialogs
DlgBtnOK : "OK",
@@ -166,7 +171,7 @@
DlgAdvancedTag : "Avansert",
DlgOpOther : "<Annet>",
DlgInfoTab : "Info",
-DlgAlertUrl : "Vennligst skriv inn URL'en",
+DlgAlertUrl : "Vennligst skriv inn URL-en",
// General Dialogs Labels
DlgGenNotSet : "<ikke satt>",
@@ -174,7 +179,7 @@
DlgGenLangDir : "Språkretning",
DlgGenLangDirLtr : "Venstre til høyre (VTH)",
DlgGenLangDirRtl : "Høyre til venstre (HTV)",
-DlgGenLangCode : "Språk kode",
+DlgGenLangCode : "Språkkode",
DlgGenAccessKey : "Aksessknapp",
DlgGenName : "Navn",
DlgGenTabIndex : "Tab Indeks",
@@ -210,18 +215,18 @@
DlgImgAlignTextTop : "Tekst topp",
DlgImgAlignTop : "Topp",
DlgImgPreview : "Forhåndsvis",
-DlgImgAlertUrl : "Vennligst skriv bildeurlen",
+DlgImgAlertUrl : "Vennligst skriv bilde-urlen",
DlgImgLinkTab : "Lenke",
// Flash Dialog
-DlgFlashTitle : "Flash Egenskaper",
-DlgFlashChkPlay : "Auto Spill",
+DlgFlashTitle : "Flash-egenskaper",
+DlgFlashChkPlay : "Autospill",
DlgFlashChkLoop : "Loop",
-DlgFlashChkMenu : "Slå på Flash meny",
+DlgFlashChkMenu : "Slå på Flash-meny",
DlgFlashScale : "Skaler",
DlgFlashScaleAll : "Vis alt",
DlgFlashScaleNoBorder : "Ingen ramme",
-DlgFlashScaleFit : "Skaler til å passeExact Fit",
+DlgFlashScaleFit : "Skaler til å passe",
// Link Dialog
DlgLnkWindowTitle : "Lenke",
@@ -235,7 +240,7 @@
DlgLnkProto : "Protokoll",
DlgLnkProtoOther : "<annet>",
DlgLnkURL : "URL",
-DlgLnkAnchorSel : "Velg ett anker",
+DlgLnkAnchorSel : "Velg et anker",
DlgLnkAnchorByName : "Anker etter navn",
DlgLnkAnchorById : "Element etter ID",
DlgLnkNoAnchors : "(Ingen anker i dokumentet)",
@@ -249,12 +254,12 @@
DlgLnkTargetFrame : "<ramme>",
DlgLnkTargetPopup : "<popup vindu>",
DlgLnkTargetBlank : "Nytt vindu (_blank)",
-DlgLnkTargetParent : "Foreldre vindu (_parent)",
+DlgLnkTargetParent : "Foreldrevindu (_parent)",
DlgLnkTargetSelf : "Samme vindu (_self)",
DlgLnkTargetTop : "Hele vindu (_top)",
DlgLnkTargetFrameName : "MÃ¥lramme",
-DlgLnkPopWinName : "Popup vindus navn",
-DlgLnkPopWinFeat : "Popup vindus egenskaper",
+DlgLnkPopWinName : "Navn på popup-vindus",
+DlgLnkPopWinFeat : "Egenskaper for popup-vindu",
DlgLnkPopResize : "Endre størrelse",
DlgLnkPopLocation : "Adresselinje",
DlgLnkPopMenu : "Menylinje",
@@ -266,18 +271,18 @@
DlgLnkPopWidth : "Bredde",
DlgLnkPopHeight : "Høyde",
DlgLnkPopLeft : "Venstre posisjon",
-DlgLnkPopTop : "Topp posisjon",
+DlgLnkPopTop : "Topp-posisjon",
DlnLnkMsgNoUrl : "Vennligst skriv inn lenkens url",
DlnLnkMsgNoEMail : "Vennligst skriv inn e-postadressen",
-DlnLnkMsgNoAnchor : "Vennligst velg ett anker",
-DlnLnkMsgInvPopName : "Popup vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",
+DlnLnkMsgNoAnchor : "Vennligst velg et anker",
+DlnLnkMsgInvPopName : "Popup-vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",
// Color Dialog
DlgColorTitle : "Velg farge",
DlgColorBtnClear : "Tøm",
DlgColorHighlight : "Marker",
-DlgColorSelected : "Velg",
+DlgColorSelected : "Valgt",
// Smiley Dialog
DlgSmileyTitle : "Sett inn smil",
@@ -286,7 +291,7 @@
DlgSpecialCharTitle : "Velg spesielt tegn",
// Table Dialog
-DlgTableTitle : "Tabellegenskaper",
+DlgTableTitle : "Egenskaper for tabell",
DlgTableRows : "Rader",
DlgTableColumns : "Kolonner",
DlgTableBorder : "Rammestørrelse",
@@ -299,10 +304,15 @@
DlgTableWidthPx : "piksler",
DlgTableWidthPc : "prosent",
DlgTableHeight : "Høyde",
-DlgTableCellSpace : "Celle marg",
-DlgTableCellPad : "Celle polstring",
+DlgTableCellSpace : "Cellemarg",
+DlgTableCellPad : "Cellepolstring",
DlgTableCaption : "Tittel",
DlgTableSummary : "Sammendrag",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Celleegenskaper",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Midten",
DlgCellVerAlignBottom : "Bunn",
DlgCellVerAlignBaseline : "Bunnlinje",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Radspenn",
DlgCellCollSpan : "Kolonnespenn",
DlgCellBackColor : "Bakgrunnsfarge",
@@ -332,31 +345,31 @@
DlgCellBtnSelect : "Velg...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Søk og erstatt",
// Find Dialog
-DlgFindTitle : "Finn",
-DlgFindFindBtn : "Finn",
-DlgFindNotFoundMsg : "Den spesifiserte teksten ble ikke funnet.",
+DlgFindTitle : "Søk",
+DlgFindFindBtn : "Søk",
+DlgFindNotFoundMsg : "Fant ikke søketeksten.",
// Replace Dialog
DlgReplaceTitle : "Erstatt",
-DlgReplaceFindLbl : "Finn hva:",
+DlgReplaceFindLbl : "Søk etter:",
DlgReplaceReplaceLbl : "Erstatt med:",
-DlgReplaceCaseChk : "Riktig case",
+DlgReplaceCaseChk : "Skill mellom store og små bokstaver",
DlgReplaceReplaceBtn : "Erstatt",
DlgReplaceReplAllBtn : "Erstatt alle",
-DlgReplaceWordChk : "Finn hele ordet",
+DlgReplaceWordChk : "Bare hele ord",
// Paste Operations / Dialog
-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).",
+PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).",
+PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).",
PasteAsText : "Lim inn som ren tekst",
-PasteFromWord : "Lim inn fra word",
+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
+DlgPasteSec : "Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.",
DlgPasteIgnoreFont : "Fjern skrifttyper",
DlgPasteRemoveStyles : "Fjern stildefinisjoner",
@@ -380,17 +393,17 @@
DlgSpellBtnReplace : "Erstatt",
DlgSpellBtnReplaceAll : "Erstatt alle",
DlgSpellBtnUndo : "Angre",
-DlgSpellNoSuggestions : "- ingen forslag -",
+DlgSpellNoSuggestions : "- Ingen forslag -",
DlgSpellProgress : "Stavekontroll pågår...",
DlgSpellNoMispell : "Stavekontroll fullført: ingen feilstavinger funnet",
DlgSpellNoChanges : "Stavekontroll fullført: ingen ord endret",
DlgSpellOneChange : "Stavekontroll fullført: Ett ord endret",
DlgSpellManyChanges : "Stavekontroll fullført: %1 ord endret",
-IeSpellDownload : "Stavekontroll ikke installert, vil du laste den ned nå?",
+IeSpellDownload : "Stavekontroll er ikke installert. Vil du laste den ned nå?",
// Button Dialog
-DlgButtonText : "Tekst",
+DlgButtonText : "Tekst (verdi)",
DlgButtonType : "Type",
DlgButtonTypeBtn : "Knapp",
DlgButtonTypeSbm : "Send",
@@ -429,7 +442,7 @@
// Text Field Dialog
DlgTextName : "Navn",
-DlgTextValue : "verdi",
+DlgTextValue : "Verdi",
DlgTextCharWidth : "Tegnbredde",
DlgTextMaxChars : "Maks antall tegn",
DlgTextType : "Type",
@@ -441,24 +454,24 @@
DlgHiddenValue : "Verdi",
// Bulleted List Dialog
-BulletedListProp : "Uordnet listeegenskaper",
-NumberedListProp : "Ordnet listeegenskaper",
+BulletedListProp : "Egenskaper for uordnet liste",
+NumberedListProp : "Egenskaper for ordnet liste",
DlgLstStart : "Start",
DlgLstType : "Type",
DlgLstTypeCircle : "Sirkel",
DlgLstTypeDisc : "Hel sirkel",
DlgLstTypeSquare : "Firkant",
-DlgLstTypeNumbers : "Numre(1, 2, 3)",
+DlgLstTypeNumbers : "Numre (1, 2, 3)",
DlgLstTypeLCase : "Små bokstaver (a, b, c)",
-DlgLstTypeUCase : "Store bokstaver(A, B, C)",
-DlgLstTypeSRoman : "Små romerske tall(i, ii, iii)",
-DlgLstTypeLRoman : "Store romerske tall(I, II, III)",
+DlgLstTypeUCase : "Store bokstaver (A, B, C)",
+DlgLstTypeSRoman : "Små romerske tall (i, ii, iii)",
+DlgLstTypeLRoman : "Store romerske tall (I, II, III)",
// Document Properties Dialog
-DlgDocGeneralTab : "Generalt",
+DlgDocGeneralTab : "Generelt",
DlgDocBackTab : "Bakgrunn",
DlgDocColorsTab : "Farger og marginer",
-DlgDocMetaTab : "Meta Data",
+DlgDocMetaTab : "Meta-data",
DlgDocPageTitle : "Sidetittel",
DlgDocLangDir : "Språkretning",
@@ -473,16 +486,16 @@
DlgDocCharSetJP : "Japansk",
DlgDocCharSetKR : "Koreansk",
DlgDocCharSetTR : "Tyrkisk",
-DlgDocCharSetUN : "Unikode (UTF-8)",
+DlgDocCharSetUN : "Unicode (UTF-8)",
DlgDocCharSetWE : "Vesteuropeisk",
DlgDocCharSetOther : "Annet tegnsett",
DlgDocDocType : "Dokumenttype header",
DlgDocDocTypeOther : "Annet dokumenttype header",
-DlgDocIncXHTML : "Inkulder XHTML deklarasjon",
+DlgDocIncXHTML : "Inkluder XHTML-deklarasjon",
DlgDocBgColor : "Bakgrunnsfarge",
-DlgDocBgImage : "Bakgrunnsbilde url",
-DlgDocBgNoScroll : "Ikke scroll bakgrunnsbilde",
+DlgDocBgImage : "URL for bakgrunnsbilde",
+DlgDocBgNoScroll : "LÃ¥s bakgrunnsbilde",
DlgDocCText : "Tekst",
DlgDocCLink : "Link",
DlgDocCVisited : "Besøkt lenke",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Nettleserinfo",
DlgAboutLicenseTab : "Lisens",
DlgAboutVersion : "versjon",
-DlgAboutInfo : "For further information go to" //MISSING
+DlgAboutInfo : "For mer informasjon, se",
+
+// Div Dialog
+DlgDivGeneralTab : "Generelt",
+DlgDivAdvancedTab : "Avansert",
+DlgDivStyle : "Stil",
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/nl.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/nl.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Link invoegen/wijzigen",
RemoveLink : "Link verwijderen",
+VisitLink : "Link volgen",
Anchor : "Interne link",
AnchorDelete : "Anker verwijderen",
InsertImageLbl : "Afbeelding",
@@ -72,6 +73,9 @@
DecreaseIndent : "Inspringen verkleinen",
IncreaseIndent : "Inspringen vergroten",
Blockquote : "Citaatblok",
+CreateDiv : "DIV aanmaken",
+EditDiv : "DIV wijzigen",
+DeleteDiv : "DIV verwijderen",
Undo : "Ongedaan maken",
Redo : "Opnieuw uitvoeren",
NumberedListLbl : "Genummerde lijst",
@@ -148,15 +152,16 @@
// Alerts and Messages
ProcessingXHTML : "Bezig met verwerken XHTML. Even geduld aub...",
Done : "Klaar",
-PasteWordConfirm : "De tekst die je plakte lijkt gekopieerd uit te zijn Word. Wil je de tekst opschonen voordat deze geplakt wordt?",
-NotCompatiblePaste : "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder op te schonen?",
+PasteWordConfirm : "De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?",
+NotCompatiblePaste : "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wilt u plakken zonder op te schonen?",
UnknownToolbarItem : "Onbekend item op menubalk \"%1\"",
UnknownCommand : "Onbekende opdrachtnaam: \"%1\"",
NotImplemented : "Opdracht niet geïmplementeerd.",
UnknownToolbarSet : "Menubalk \"%1\" bestaat niet.",
-NoActiveX : "De beveilingsinstellingen van je browser zouden sommige functies van de editor kunnen beperken. De optie \"Activeer ActiveX-elementen en plug-ins\" dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.",
+NoActiveX : "De beveilingsinstellingen van uw browser zouden sommige functies van de editor kunnen beperken. De optie \"Activeer ActiveX-elementen en plug-ins\" dient ingeschakeld te worden. Het kan zijn dat er nu functies ontbreken of niet werken.",
BrowseServerBlocked : "De bestandsbrowser kon niet geopend worden. Zorg ervoor dat pop-up-blokkeerders uit staan.",
DialogBlocked : "Kan het dialoogvenster niet weergeven. Zorg ervoor dat pop-up-blokkeerders uit staan.",
+VisitLinkBlocked : "Het was niet mogelijk een nieuw venster te openen. Controleer of er geen pop-up-blocker aktief is.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Afstand vanaf rand cel",
DlgTableCaption : "Naam",
DlgTableSummary : "Samenvatting",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Eigenschappen cel",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Midden",
DlgCellVerAlignBottom : "Beneden",
DlgCellVerAlignBaseline : "Basislijn",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Overkoepeling rijen",
DlgCellCollSpan : "Overkoepeling kolommen",
DlgCellBackColor : "Achtergrondkleur",
@@ -355,7 +368,7 @@
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 uw toetsenbord (<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",
@@ -387,7 +400,7 @@
DlgSpellOneChange : "Klaar met spellingscontrole: één woord aangepast",
DlgSpellManyChanges : "Klaar met spellingscontrole: %1 woorden aangepast",
-IeSpellDownload : "De spellingscontrole niet geïnstalleerd. Wil je deze nu downloaden?",
+IeSpellDownload : "De spellingscontrole niet geïnstalleerd. Wilt u deze nu downloaden?",
// Button Dialog
DlgButtonText : "Tekst (waarde)",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Browserinformatie",
DlgAboutLicenseTab : "Licentie",
DlgAboutVersion : "Versie",
-DlgAboutInfo : "Voor meer informatie ga naar "
+DlgAboutInfo : "Voor meer informatie ga naar ",
+
+// Div Dialog
+DlgDivGeneralTab : "Algemeen",
+DlgDivAdvancedTab : "Geavanceerd",
+DlgDivStyle : "Style",
+DlgDivInlineStyle : "Inline Style"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/no.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/no.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/no.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Lenke",
InsertLink : "Sett inn/Rediger lenke",
RemoveLink : "Fjern lenke",
+VisitLink : "Ã
pne lenke",
Anchor : "Sett inn/Rediger anker",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Fjern anker",
InsertImageLbl : "Bilde",
InsertImage : "Sett inn/Rediger bilde",
InsertFlashLbl : "Flash",
@@ -72,10 +73,13 @@
DecreaseIndent : "Senk nivå",
IncreaseIndent : "Ãk nivÃ¥",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Angre",
Redo : "Gjør om",
-NumberedListLbl : "Numrert liste",
-NumberedList : "Sett inn/Fjern numrert liste",
+NumberedListLbl : "Nummerert liste",
+NumberedList : "Sett inn/Fjern nummerert liste",
BulletedListLbl : "Uordnet liste",
BulletedList : "Sett inn/Fjern uordnet liste",
ShowTableBorders : "Vis tabellrammer",
@@ -87,7 +91,7 @@
TextColor : "Tekstfarge",
BGColor : "Bakgrunnsfarge",
Source : "Kilde",
-Find : "Finn",
+Find : "Søk",
Replace : "Erstatt",
SpellCheck : "Stavekontroll",
UniversalKeyboard : "Universelt tastatur",
@@ -95,13 +99,13 @@
PageBreak : "Sett inn sideskift",
Form : "Skjema",
-Checkbox : "Sjekkboks",
-RadioButton : "Radioknapp",
-TextField : "Tekstfelt",
+Checkbox : "Avmerkingsboks",
+RadioButton : "Alternativknapp",
+TextField : "Tekstboks",
Textarea : "Tekstområde",
HiddenField : "Skjult felt",
Button : "Knapp",
-SelectionField : "Dropdown meny",
+SelectionField : "Rullegardinliste",
ImageButton : "Bildeknapp",
FitWindow : "Maksimer størrelsen på redigeringsverktøyet",
@@ -112,51 +116,52 @@
CellCM : "Celle",
RowCM : "Rader",
ColumnCM : "Kolonne",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Sett inn rad etter",
+InsertRowBefore : "Sett inn rad før",
DeleteRows : "Slett rader",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Sett inn kolonne etter",
+InsertColumnBefore : "Sett inn kolonne før",
DeleteColumns : "Slett kolonner",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Sett inn celle etter",
+InsertCellBefore : "Sett inn celle før",
DeleteCells : "Slett celler",
MergeCells : "Slå sammen celler",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Slå sammen høyre",
+MergeDown : "Slå sammen ned",
+HorizontalSplitCell : "Del celle horisontalt",
+VerticalSplitCell : "Del celle vertikalt",
TableDelete : "Slett tabell",
-CellProperties : "Celleegenskaper",
-TableProperties : "Tabellegenskaper",
-ImageProperties : "Bildeegenskaper",
-FlashProperties : "Flash Egenskaper",
+CellProperties : "Egenskaper for celle",
+TableProperties : "Egenskaper for tabell",
+ImageProperties : "Egenskaper for bilde",
+FlashProperties : "Egenskaper for Flash-objekt",
-AnchorProp : "Ankeregenskaper",
-ButtonProp : "Knappegenskaper",
-CheckboxProp : "Sjekkboksegenskaper",
-HiddenFieldProp : "Skjult felt egenskaper",
-RadioButtonProp : "Radioknappegenskaper",
-ImageButtonProp : "Bildeknappegenskaper",
-TextFieldProp : "Tekstfeltegenskaper",
-SelectionFieldProp : "Dropdown menyegenskaper",
-TextareaProp : "Tekstfeltegenskaper",
-FormProp : "Skjemaegenskaper",
+AnchorProp : "Egenskaper for anker",
+ButtonProp : "Egenskaper for knapp",
+CheckboxProp : "Egenskaper for avmerkingsboks",
+HiddenFieldProp : "Egenskaper for skjult felt",
+RadioButtonProp : "Egenskaper for alternativknapp",
+ImageButtonProp : "Egenskaper for bildeknapp",
+TextFieldProp : "Egenskaper for tekstfelt",
+SelectionFieldProp : "Egenskaper for rullegardinliste",
+TextareaProp : "Egenskaper for tekstområde",
+FormProp : "Egenskaper for skjema",
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...",
Done : "Ferdig",
-PasteWordConfirm : "Teksten du prøver å lime inn ser ut som om den kommer fra word , du bør rense den før du limer inn , vil du gjøre dette?",
-NotCompatiblePaste : "Denne kommandoen er tilgjenglig kun for Internet Explorer version 5.5 eller bedre. Vil du fortsette uten å rense?(Du kan lime inn som ren tekst)",
+PasteWordConfirm : "Teksten du prøver å lime inn ser ut som om den kommer fra Word. Vil du rense den for unødvendig kode før du limer inn?",
+NotCompatiblePaste : "Denne kommandoen er kun tilgjenglig for Internet Explorer versjon 5.5 eller bedre. Vil du fortsette uten å rense? (Du kan lime inn som ren tekst)",
UnknownToolbarItem : "Ukjent menyvalg \"%1\"",
UnknownCommand : "Ukjent kommando \"%1\"",
-NotImplemented : "Kommando ikke ennå implimentert",
+NotImplemented : "Kommando ikke implimentert",
UnknownToolbarSet : "Verktøylinjesett \"%1\" finnes ikke",
-NoActiveX : "Din nettleser's sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveXkontroller og plugins\". Du kan oppleve feil og advarsler om manglende funksjoner",
-BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Pass på at du har slått av popupstoppere.",
-DialogBlocked : "Kunne ikke åpne dialogboksen. Pass på at du har slått av popupstoppere.",
+NoActiveX : "Din nettlesers sikkerhetsinstillinger kan begrense noen av funksjonene i redigeringsverktøyet. Du må aktivere \"Kjør ActiveX-kontroller og plugin-modeller\". Du kan oppleve feil og advarsler om manglende funksjoner",
+BrowseServerBlocked : "Kunne ikke åpne dialogboksen for filarkiv. Sjekk at popup-blokkering er deaktivert.",
+DialogBlocked : "Kunne ikke åpne dialogboksen. Sjekk at popup-blokkering er deaktivert.",
+VisitLinkBlocked : "Kunne ikke åpne et nytt vindu. Sjekk at popup-blokkering er deaktivert.",
// Dialogs
DlgBtnOK : "OK",
@@ -166,7 +171,7 @@
DlgAdvancedTag : "Avansert",
DlgOpOther : "<Annet>",
DlgInfoTab : "Info",
-DlgAlertUrl : "Vennligst skriv inn URL'en",
+DlgAlertUrl : "Vennligst skriv inn URL-en",
// General Dialogs Labels
DlgGenNotSet : "<ikke satt>",
@@ -174,7 +179,7 @@
DlgGenLangDir : "Språkretning",
DlgGenLangDirLtr : "Venstre til høyre (VTH)",
DlgGenLangDirRtl : "Høyre til venstre (HTV)",
-DlgGenLangCode : "Språk kode",
+DlgGenLangCode : "Språkkode",
DlgGenAccessKey : "Aksessknapp",
DlgGenName : "Navn",
DlgGenTabIndex : "Tab Indeks",
@@ -210,18 +215,18 @@
DlgImgAlignTextTop : "Tekst topp",
DlgImgAlignTop : "Topp",
DlgImgPreview : "Forhåndsvis",
-DlgImgAlertUrl : "Vennligst skriv bildeurlen",
+DlgImgAlertUrl : "Vennligst skriv bilde-urlen",
DlgImgLinkTab : "Lenke",
// Flash Dialog
-DlgFlashTitle : "Flash Egenskaper",
-DlgFlashChkPlay : "Auto Spill",
+DlgFlashTitle : "Flash-egenskaper",
+DlgFlashChkPlay : "Autospill",
DlgFlashChkLoop : "Loop",
-DlgFlashChkMenu : "Slå på Flash meny",
+DlgFlashChkMenu : "Slå på Flash-meny",
DlgFlashScale : "Skaler",
DlgFlashScaleAll : "Vis alt",
DlgFlashScaleNoBorder : "Ingen ramme",
-DlgFlashScaleFit : "Skaler til å passeExact Fit",
+DlgFlashScaleFit : "Skaler til å passe",
// Link Dialog
DlgLnkWindowTitle : "Lenke",
@@ -235,7 +240,7 @@
DlgLnkProto : "Protokoll",
DlgLnkProtoOther : "<annet>",
DlgLnkURL : "URL",
-DlgLnkAnchorSel : "Velg ett anker",
+DlgLnkAnchorSel : "Velg et anker",
DlgLnkAnchorByName : "Anker etter navn",
DlgLnkAnchorById : "Element etter ID",
DlgLnkNoAnchors : "(Ingen anker i dokumentet)",
@@ -249,12 +254,12 @@
DlgLnkTargetFrame : "<ramme>",
DlgLnkTargetPopup : "<popup vindu>",
DlgLnkTargetBlank : "Nytt vindu (_blank)",
-DlgLnkTargetParent : "Foreldre vindu (_parent)",
+DlgLnkTargetParent : "Foreldrevindu (_parent)",
DlgLnkTargetSelf : "Samme vindu (_self)",
DlgLnkTargetTop : "Hele vindu (_top)",
DlgLnkTargetFrameName : "MÃ¥lramme",
-DlgLnkPopWinName : "Popup vindus navn",
-DlgLnkPopWinFeat : "Popup vindus egenskaper",
+DlgLnkPopWinName : "Navn på popup-vindus",
+DlgLnkPopWinFeat : "Egenskaper for popup-vindu",
DlgLnkPopResize : "Endre størrelse",
DlgLnkPopLocation : "Adresselinje",
DlgLnkPopMenu : "Menylinje",
@@ -266,18 +271,18 @@
DlgLnkPopWidth : "Bredde",
DlgLnkPopHeight : "Høyde",
DlgLnkPopLeft : "Venstre posisjon",
-DlgLnkPopTop : "Topp posisjon",
+DlgLnkPopTop : "Topp-posisjon",
DlnLnkMsgNoUrl : "Vennligst skriv inn lenkens url",
DlnLnkMsgNoEMail : "Vennligst skriv inn e-postadressen",
-DlnLnkMsgNoAnchor : "Vennligst velg ett anker",
-DlnLnkMsgInvPopName : "Popup vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",
+DlnLnkMsgNoAnchor : "Vennligst velg et anker",
+DlnLnkMsgInvPopName : "Popup-vinduets navn må begynne med en bokstav, og kan ikke inneholde mellomrom",
// Color Dialog
DlgColorTitle : "Velg farge",
DlgColorBtnClear : "Tøm",
DlgColorHighlight : "Marker",
-DlgColorSelected : "Velg",
+DlgColorSelected : "Valgt",
// Smiley Dialog
DlgSmileyTitle : "Sett inn smil",
@@ -286,7 +291,7 @@
DlgSpecialCharTitle : "Velg spesielt tegn",
// Table Dialog
-DlgTableTitle : "Tabellegenskaper",
+DlgTableTitle : "Egenskaper for tabell",
DlgTableRows : "Rader",
DlgTableColumns : "Kolonner",
DlgTableBorder : "Rammestørrelse",
@@ -299,10 +304,15 @@
DlgTableWidthPx : "piksler",
DlgTableWidthPc : "prosent",
DlgTableHeight : "Høyde",
-DlgTableCellSpace : "Celle marg",
-DlgTableCellPad : "Celle polstring",
+DlgTableCellSpace : "Cellemarg",
+DlgTableCellPad : "Cellepolstring",
DlgTableCaption : "Tittel",
DlgTableSummary : "Sammendrag",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Celleegenskaper",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Midten",
DlgCellVerAlignBottom : "Bunn",
DlgCellVerAlignBaseline : "Bunnlinje",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Radspenn",
DlgCellCollSpan : "Kolonnespenn",
DlgCellBackColor : "Bakgrunnsfarge",
@@ -332,31 +345,31 @@
DlgCellBtnSelect : "Velg...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Søk og erstatt",
// Find Dialog
-DlgFindTitle : "Finn",
-DlgFindFindBtn : "Finn",
-DlgFindNotFoundMsg : "Den spesifiserte teksten ble ikke funnet.",
+DlgFindTitle : "Søk",
+DlgFindFindBtn : "Søk",
+DlgFindNotFoundMsg : "Fant ikke søketeksten.",
// Replace Dialog
DlgReplaceTitle : "Erstatt",
-DlgReplaceFindLbl : "Finn hva:",
+DlgReplaceFindLbl : "Søk etter:",
DlgReplaceReplaceLbl : "Erstatt med:",
-DlgReplaceCaseChk : "Riktig case",
+DlgReplaceCaseChk : "Skill mellom store og små bokstaver",
DlgReplaceReplaceBtn : "Erstatt",
DlgReplaceReplAllBtn : "Erstatt alle",
-DlgReplaceWordChk : "Finn hele ordet",
+DlgReplaceWordChk : "Bare hele ord",
// Paste Operations / Dialog
-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).",
+PasteErrorCut : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).",
+PasteErrorCopy : "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).",
PasteAsText : "Lim inn som ren tekst",
-PasteFromWord : "Lim inn fra word",
+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
+DlgPasteSec : "Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.",
DlgPasteIgnoreFont : "Fjern skrifttyper",
DlgPasteRemoveStyles : "Fjern stildefinisjoner",
@@ -380,17 +393,17 @@
DlgSpellBtnReplace : "Erstatt",
DlgSpellBtnReplaceAll : "Erstatt alle",
DlgSpellBtnUndo : "Angre",
-DlgSpellNoSuggestions : "- ingen forslag -",
+DlgSpellNoSuggestions : "- Ingen forslag -",
DlgSpellProgress : "Stavekontroll pågår...",
DlgSpellNoMispell : "Stavekontroll fullført: ingen feilstavinger funnet",
DlgSpellNoChanges : "Stavekontroll fullført: ingen ord endret",
DlgSpellOneChange : "Stavekontroll fullført: Ett ord endret",
DlgSpellManyChanges : "Stavekontroll fullført: %1 ord endret",
-IeSpellDownload : "Stavekontroll ikke installert, vil du laste den ned nå?",
+IeSpellDownload : "Stavekontroll er ikke installert. Vil du laste den ned nå?",
// Button Dialog
-DlgButtonText : "Tekst",
+DlgButtonText : "Tekst (verdi)",
DlgButtonType : "Type",
DlgButtonTypeBtn : "Knapp",
DlgButtonTypeSbm : "Send",
@@ -429,7 +442,7 @@
// Text Field Dialog
DlgTextName : "Navn",
-DlgTextValue : "verdi",
+DlgTextValue : "Verdi",
DlgTextCharWidth : "Tegnbredde",
DlgTextMaxChars : "Maks antall tegn",
DlgTextType : "Type",
@@ -441,24 +454,24 @@
DlgHiddenValue : "Verdi",
// Bulleted List Dialog
-BulletedListProp : "Uordnet listeegenskaper",
-NumberedListProp : "Ordnet listeegenskaper",
+BulletedListProp : "Egenskaper for uordnet liste",
+NumberedListProp : "Egenskaper for ordnet liste",
DlgLstStart : "Start",
DlgLstType : "Type",
DlgLstTypeCircle : "Sirkel",
DlgLstTypeDisc : "Hel sirkel",
DlgLstTypeSquare : "Firkant",
-DlgLstTypeNumbers : "Numre(1, 2, 3)",
+DlgLstTypeNumbers : "Numre (1, 2, 3)",
DlgLstTypeLCase : "Små bokstaver (a, b, c)",
-DlgLstTypeUCase : "Store bokstaver(A, B, C)",
-DlgLstTypeSRoman : "Små romerske tall(i, ii, iii)",
-DlgLstTypeLRoman : "Store romerske tall(I, II, III)",
+DlgLstTypeUCase : "Store bokstaver (A, B, C)",
+DlgLstTypeSRoman : "Små romerske tall (i, ii, iii)",
+DlgLstTypeLRoman : "Store romerske tall (I, II, III)",
// Document Properties Dialog
-DlgDocGeneralTab : "Generalt",
+DlgDocGeneralTab : "Generelt",
DlgDocBackTab : "Bakgrunn",
DlgDocColorsTab : "Farger og marginer",
-DlgDocMetaTab : "Meta Data",
+DlgDocMetaTab : "Meta-data",
DlgDocPageTitle : "Sidetittel",
DlgDocLangDir : "Språkretning",
@@ -473,16 +486,16 @@
DlgDocCharSetJP : "Japansk",
DlgDocCharSetKR : "Koreansk",
DlgDocCharSetTR : "Tyrkisk",
-DlgDocCharSetUN : "Unikode (UTF-8)",
+DlgDocCharSetUN : "Unicode (UTF-8)",
DlgDocCharSetWE : "Vesteuropeisk",
DlgDocCharSetOther : "Annet tegnsett",
DlgDocDocType : "Dokumenttype header",
DlgDocDocTypeOther : "Annet dokumenttype header",
-DlgDocIncXHTML : "Inkulder XHTML deklarasjon",
+DlgDocIncXHTML : "Inkluder XHTML-deklarasjon",
DlgDocBgColor : "Bakgrunnsfarge",
-DlgDocBgImage : "Bakgrunnsbilde url",
-DlgDocBgNoScroll : "Ikke scroll bakgrunnsbilde",
+DlgDocBgImage : "URL for bakgrunnsbilde",
+DlgDocBgNoScroll : "LÃ¥s bakgrunnsbilde",
DlgDocCText : "Tekst",
DlgDocCLink : "Link",
DlgDocCVisited : "Besøkt lenke",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Nettleserinfo",
DlgAboutLicenseTab : "Lisens",
DlgAboutVersion : "versjon",
-DlgAboutInfo : "For further information go to" //MISSING
+DlgAboutInfo : "For mer informasjon, se",
+
+// Div Dialog
+DlgDivGeneralTab : "Generelt",
+DlgDivAdvancedTab : "Avansert",
+DlgDivStyle : "Stil",
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/pl.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pl.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "HiperÅÄ
cze",
InsertLink : "Wstaw/edytuj hiperÅÄ
cze",
RemoveLink : "UsuÅ hiperÅÄ
cze",
+VisitLink : "Open Link", //MISSING
Anchor : "Wstaw/edytuj kotwicÄ",
AnchorDelete : "UsuÅ kotwicÄ",
InsertImageLbl : "Obrazek",
@@ -72,6 +73,9 @@
DecreaseIndent : "Zmniejsz wciÄcie",
IncreaseIndent : "ZwiÄksz wciÄcie",
Blockquote : "Cytat",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Cofnij",
Redo : "Ponów",
NumberedListLbl : "Lista numerowana",
@@ -157,6 +161,7 @@
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 : "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.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Margines wewnÄtrzny komórek",
DlgTableCaption : "TytuÅ",
DlgTableSummary : "Podsumowanie",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "WÅaÅciwoÅci komórki",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Do Årodka",
DlgCellVerAlignBottom : "Do doÅu",
DlgCellVerAlignBaseline : "Do linii bazowej",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ZajÄtoÅÄ wierszy",
DlgCellCollSpan : "ZajÄtoÅÄ kolumn",
DlgCellBackColor : "Kolor tÅa",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "O przeglÄ
darce",
DlgAboutLicenseTab : "Licencja",
DlgAboutVersion : "wersja",
-DlgAboutInfo : "WiÄcej informacji uzyskasz pod adresem"
+DlgAboutInfo : "WiÄcej informacji uzyskasz pod adresem",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt-br.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/pt-br.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt-br.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Hiperlink",
InsertLink : "Inserir/Editar Hiperlink",
RemoveLink : "Remover Hiperlink",
+VisitLink : "Open Link", //MISSING
Anchor : "Inserir/Editar Ãncora",
AnchorDelete : "Remover Ãncora",
InsertImageLbl : "Figura",
@@ -72,6 +73,9 @@
DecreaseIndent : "Diminuir Recuo",
IncreaseIndent : "Aumentar Recuo",
Blockquote : "Recuo",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Desfazer",
Redo : "Refazer",
NumberedListLbl : "Numeração",
@@ -157,6 +161,7 @@
NoActiveX : "As configurações de segurança do seu browser podem limitar algumas caracterÃsticas do editor. Você precisa habilitar a opção \"Executar controles e plug-ins ActiveX\". Você pode experimentar erros e alertas de caracterÃsticas faltantes.",
BrowseServerBlocked : "Os recursos do browser não puderam ser abertos. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",
DialogBlocked : "Não foi possÃvel abrir a janela de diálogo. Tenha certeza que todos os bloqueadores de popup estão desabilitados.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Enchimento",
DlgTableCaption : "Legenda",
DlgTableSummary : "Resumo",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Formatar célula",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Centralizado",
DlgCellVerAlignBottom : "Inferior",
DlgCellVerAlignBaseline : "Baseline",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Transpor Linhas",
DlgCellCollSpan : "Transpor Colunas",
DlgCellBackColor : "Cor do Plano de Fundo",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informações do Navegador",
DlgAboutLicenseTab : "Licença",
DlgAboutVersion : "versão",
-DlgAboutInfo : "Para maiores informações visite"
+DlgAboutInfo : "Para maiores informações visite",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/pt.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/pt.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Hiperligação",
InsertLink : "Inserir/Editar Hiperligação",
RemoveLink : "Eliminar Hiperligação",
+VisitLink : "Open Link", //MISSING
Anchor : " Inserir/Editar Ãncora",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Imagem",
@@ -72,6 +73,9 @@
DecreaseIndent : "Diminuir Avanço",
IncreaseIndent : "Aumentar Avanço",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Anular",
Redo : "Repetir",
NumberedListLbl : "Numeração",
@@ -157,6 +161,7 @@
NoActiveX : "As definições de segurança do navegador podem limitar algumas potencalidades do editr. Deve activar a opção \"Executar controlos e extensões ActiveX\". Pode ocorrer erros ou verificar que faltam potencialidades.",
BrowseServerBlocked : "Não foi possÃvel abrir o navegador de recursos. Certifique-se que todos os bloqueadores de popup estão desactivados.",
DialogBlocked : "Não foi possÃvel abrir a janela de diálogo. Certifique-se que todos os bloqueadores de popup estão desactivados.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Esp. interior",
DlgTableCaption : "TÃtulo",
DlgTableSummary : "Sumário",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Propriedades da Célula",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Médio",
DlgCellVerAlignBottom : "Fundi",
DlgCellVerAlignBaseline : "Linha de Base",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Unir Linhas",
DlgCellCollSpan : "Unir Colunas",
DlgCellBackColor : "Cor do Fundo",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informação do Nevegador",
DlgAboutLicenseTab : "Licença",
DlgAboutVersion : "versão",
-DlgAboutInfo : "Para mais informações por favor dirija-se a"
+DlgAboutInfo : "Para mais informações por favor dirija-se a",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ro.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ro.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ro.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link (LegÄturÄ web)",
InsertLink : "InsereazÄ/EditeazÄ link (legÄturÄ web)",
RemoveLink : "ÃnlÄturÄ link (legÄturÄ web)",
+VisitLink : "Open Link", //MISSING
Anchor : "InsereazÄ/EditeazÄ ancorÄ",
AnchorDelete : "Återge ancorÄ",
InsertImageLbl : "Imagine",
@@ -72,6 +73,9 @@
DecreaseIndent : "Scade indentarea",
IncreaseIndent : "CreÅte indentarea",
Blockquote : "Citat",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Starea anterioarÄ (undo)",
Redo : "Starea ulterioarÄ (redo)",
NumberedListLbl : "ListÄ numerotatÄ",
@@ -157,6 +161,7 @@
NoActiveX : "SetÄrile de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser) pot limita anumite funcÅ£ionalitÄÅ£i ale editorului. Pentru a evita asta, trebuie sÄ activaÅ£i opÅ£iunea \"Run ActiveX controls and plug-ins\". Poate veÅ£i întâlni erori sau veÅ£i observa funcÅ£ionalitÄÅ£i lipsÄ.",
BrowseServerBlocked : "The resources browser could not be opened. AsiguraÅ£i-vÄ cÄ nu e activ niciun \"popup blocker\" (funcÅ£ionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",
DialogBlocked : "Nu a fost posibilÄ deschiderea unei ferestre de dialog. AsiguraÅ£i-vÄ cÄ nu e activ niciun \"popup blocker\" (funcÅ£ionalitate a programului de navigat (browser) sau a unui plug-in al acestuia de a bloca deschiderea unui noi ferestre).",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "Bine",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Spaţiu în cadrul celulei",
DlgTableCaption : "Titlu (Caption)",
DlgTableSummary : "Rezumat",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ProprietÄÅ£ile celulei",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Mijloc",
DlgCellVerAlignBottom : "Jos",
DlgCellVerAlignBaseline : "Linia de jos (Baseline)",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Lungimea în linii (Span)",
DlgCellCollSpan : "Lungimea în coloane (Span)",
DlgCellBackColor : "Culoarea fundalului",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informaţii browser",
DlgAboutLicenseTab : "LicenÅ£Ä",
DlgAboutVersion : "versiune",
-DlgAboutInfo : "Pentru informaÅ£ii amÄnunÅ£ite, vizitaÅ£i"
+DlgAboutInfo : "Pentru informaÅ£ii amÄnunÅ£ite, vizitaÅ£i",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ru.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/ru.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/ru.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "СÑÑлка",
InsertLink : "ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑÑÑлкÑ",
RemoveLink : "УбÑаÑÑ ÑÑÑлкÑ",
+VisitLink : "ÐеÑейÑи по ÑÑÑлке",
Anchor : "ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑкоÑÑ",
AnchorDelete : "УбÑаÑÑ ÑкоÑÑ",
InsertImageLbl : "ÐзобÑажение",
@@ -72,6 +73,9 @@
DecreaseIndent : "УменÑÑиÑÑ Ð¾ÑÑÑÑп",
IncreaseIndent : "УвелиÑиÑÑ Ð¾ÑÑÑÑп",
Blockquote : "ЦиÑаÑа",
+CreateDiv : "СоздаÑÑ Div конÑейнеÑ",
+EditDiv : "РедакÑиÑоваÑÑ Div конÑейнеÑ",
+DeleteDiv : "УдалиÑÑ Div конÑейнеÑ",
Undo : "ÐÑмениÑÑ",
Redo : "ÐовÑоÑиÑÑ",
NumberedListLbl : "ÐÑмеÑованнÑй ÑпиÑок",
@@ -157,6 +161,7 @@
NoActiveX : "ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа могÑÑ Ð¾Ð³ÑаниÑиваÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе ÑвойÑÑва ÑедакÑоÑа. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð¾Ð¿ÑÐ¸Ñ \"ÐапÑÑкаÑÑ ÑлеменÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ActiveX и плÑгинÑ\". ÐÑ Ð¼Ð¾Ð¶ÐµÑе видеÑÑ Ð¾Ñибки и замеÑаÑÑ Ð¾ÑÑÑÑÑÑвие возможноÑÑей.",
BrowseServerBlocked : "РеÑÑÑÑÑ Ð±ÑаÑзеÑа не могÑÑ Ð±ÑÑÑ Ð¾ÑкÑÑÑÑ. ÐÑовеÑÑÑе ÑÑо блокиÑовки вÑплÑваÑÑиÑ
окон вÑклÑÑенÑ.",
DialogBlocked : "Ðевозможно оÑкÑÑÑÑ Ð¾ÐºÐ½Ð¾ диалога. ÐÑовеÑÑÑе ÑÑо блокиÑовки вÑплÑваÑÑиÑ
окон вÑклÑÑенÑ.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "ÐÐ",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÐÑÑÑÑп (padding)",
DlgTableCaption : "Ðаголовок",
DlgTableSummary : "РезÑме",
+DlgTableHeaders : "Ðаголовки",
+DlgTableHeadersNone : "ÐеÑ",
+DlgTableHeadersColumn : "ÐеÑвÑй ÑÑолбеÑ",
+DlgTableHeadersRow : "ÐеÑÐ²Ð°Ñ ÑÑÑока",
+DlgTableHeadersBoth : "Ðба ваÑианÑа",
// Table Cell Dialog
DlgCellTitle : "СвойÑÑва ÑÑейки",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ÐоÑеÑедине",
DlgCellVerAlignBottom : "СнизÑ",
DlgCellVerAlignBaseline : "Ðо базовой линии",
+DlgCellType : "Тип ÑÑейки",
+DlgCellTypeData : "ÐаннÑе",
+DlgCellTypeHeader : "Ðаголовок",
DlgCellRowSpan : "Ðиапазон ÑÑÑок (span)",
DlgCellCollSpan : "Ðиапазон колонок (span)",
DlgCellBackColor : "Ð¦Ð²ÐµÑ Ñона",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ÐнÑоÑмаÑÐ¸Ñ Ð±ÑаÑзеÑа",
DlgAboutLicenseTab : "ÐиÑензиÑ",
DlgAboutVersion : "ÐеÑÑиÑ",
-DlgAboutInfo : "ÐÐ»Ñ Ð±Ð¾Ð»ÑÑей инÑоÑмаÑии, поÑеÑиÑе"
+DlgAboutInfo : "ÐÐ»Ñ Ð±Ð¾Ð»ÑÑей инÑоÑмаÑии, поÑеÑиÑе",
+
+// Div Dialog
+DlgDivGeneralTab : "ÐнÑоÑмаÑиÑ",
+DlgDivAdvancedTab : "РаÑÑиÑеннÑе наÑÑÑойки",
+DlgDivStyle : "СÑилÑ",
+DlgDivInlineStyle : "ÐÑÑÑоеннÑе ÑÑили"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/sk.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sk.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -30,7 +30,7 @@
ToolbarExpand : "Zobraziť panel nástrojov",
// Toolbar Items and Context Menu
-Save : "Uložit",
+Save : "Uložiť",
NewPage : "Nová stránka",
Preview : "Náhľad",
Cut : "Vystrihnúť",
@@ -44,8 +44,9 @@
InsertLinkLbl : "Odkaz",
InsertLink : "Vložiť/zmeniť odkaz",
RemoveLink : "Odstrániť odkaz",
+VisitLink : "ÃsÅ¥ na odkaz",
Anchor : "Vložiť/zmeniť kotvu",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Odstrániť kotvu",
InsertImageLbl : "Obrázok",
InsertImage : "Vložiť/zmeniť obrázok",
InsertFlashLbl : "Flash",
@@ -58,7 +59,7 @@
InsertSpecialChar : "Vložiť špeciálne znaky",
InsertSmileyLbl : "SmajlÃky",
InsertSmiley : "VložiÅ¥ smajlÃka",
-About : "O aplikáci FCKeditor",
+About : "O aplikácii FCKeditor",
Bold : "TuÄné",
Italic : "KurzÃva",
Underline : "PodÄiarknuté",
@@ -71,11 +72,14 @@
BlockJustify : "Zarovnať do bloku",
DecreaseIndent : "Zmenšiť odsadenie",
IncreaseIndent : "ZväÄÅ¡iÅ¥ odsadenie",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "Citácia",
+CreateDiv : "Vytvoriť Div kontajner",
+EditDiv : "Editovať Div kontajner",
+DeleteDiv : "Odstrániť Div kontajner",
Undo : "Späť",
Redo : "Znovu",
NumberedListLbl : "ÄÃslovanie",
-NumberedList : "VložiÅ¥/odstrániÅ¥ ÄÃslovaný zoznam",
+NumberedList : "VložiÅ¥/odstrániÅ¥ ÄÃslovanie",
BulletedListLbl : "Odrážky",
BulletedList : "Vložiť/odstraniť odrážky",
ShowTableBorders : "Zobraziť okraje tabuliek",
@@ -100,32 +104,32 @@
TextField : "Textové pole",
Textarea : "Textová oblasť",
HiddenField : "Skryté pole",
-Button : "TlaÄÃidlo",
+Button : "TlaÄidlo",
SelectionField : "Rozbaľovacà zoznam",
ImageButton : "Obrázkové tlaÄidlo",
FitWindow : "Maximalizovať veľkosť okna editora",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "Ukázať bloky",
// Context Menu
EditLink : "Zmeniť odkaz",
CellCM : "Bunka",
RowCM : "Riadok",
ColumnCM : "Stĺpec",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Vložiť riadok pred",
+InsertRowBefore : "Vložiť riadok za",
DeleteRows : "Vymazať riadok",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Vložiť stĺpec pred",
+InsertColumnBefore : "Vložiť stĺpec za",
DeleteColumns : "Zmazať stĺpec",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Vložiť bunku za",
+InsertCellBefore : "Vložiť bunku pred",
DeleteCells : "Vymazať bunky",
MergeCells : "ZlúÄiÅ¥ bunky",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "ZlúÄiÅ¥ doprava",
+MergeDown : "ZlúÄiÅ¥ dole",
+HorizontalSplitCell : "Rozdeliť bunky horizontálne",
+VerticalSplitCell : "Rozdeliť bunky vertikálne",
TableDelete : "Vymazať tabuľku",
CellProperties : "Vlastnosti bunky",
TableProperties : "Vlastnosti tabuľky",
@@ -155,8 +159,9 @@
NotImplemented : "PrÃkaz nie je implementovaný",
UnknownToolbarSet : "Panel nástrojov \"%1\" neexistuje",
NoActiveX : "BezpeÄnostné nastavenia vášho prehliadaÄa môžu obmedzovaÅ¥ niektoré funkcie editora. Pre ich plnú funkÄnosÅ¥ musÃte zapnúť voľbu \"SpúšťaÅ¥ ActiveX moduly a zásuvné moduly\", inak sa môžete stretnúť s chybami a nefunkÄnosÅ¥ou niektorých funkciÃ.",
-BrowseServerBlocked : "PrehliadaÄ zdrojových prvkov nebolo možné otvoriÅ¥. Uistite sa, že máte vypnuté vÅ¡etky blokovaÄe vyskakujúcich okien.",
-DialogBlocked : "Dialógové okno nebolo možné otvoriÅ¥. Uistite sa, že máte vypnuté vÅ¡etky blokovaÄe vyskakujúcich okien.",
+BrowseServerBlocked : "PrehliadaÄ zdrojových prvkov nebolo možné otvoriÅ¥. Uistite sa, že máte vypnutú službu blokovania popup okien.",
+DialogBlocked : "Dialógové okno nebolo možné otvoriť. Uistite sa, že máte vypnutú službu blokovania popup okien.",
+VisitLinkBlocked : "Nebolo možné otvoriť nové okno. Uistite sa, že máte vypnutú službu blokovania popup okien.",
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Odsadenie obsahu",
DlgTableCaption : "Popis",
DlgTableSummary : "Prehľad",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Vlastnosti bunky",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Doprostred",
DlgCellVerAlignBottom : "Dole",
DlgCellVerAlignBaseline : "Na základÅu",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ZlúÄené riadky",
DlgCellCollSpan : "ZlúÄené stĺpce",
DlgCellBackColor : "Farba pozadia",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Výber...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Nájsť a nahradiť",
// Find Dialog
DlgFindTitle : "Hľadať",
@@ -349,14 +362,14 @@
DlgReplaceWordChk : "Len celé slová",
// Paste Operations / Dialog
-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).",
+PasteErrorCut : "BezpeÄnostné nastavenia 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é nastavenia 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).",
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
+DlgPasteSec : "BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru pristupovaÅ¥ priamo k datám v schránke. MusÃte ich vložiÅ¥ znovu do tohto okna.",
DlgPasteIgnoreFont : "IgnorovaÅ¥ nastavenia typu pÃsma",
DlgPasteRemoveStyles : "Odstrániť formátovanie",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informácie o prehliadaÄi",
DlgAboutLicenseTab : "Licencia",
DlgAboutVersion : "verzia",
-DlgAboutInfo : "Viac informácià zÃskate na"
+DlgAboutInfo : "Viac informácià zÃskate na",
+
+// Div Dialog
+DlgDivGeneralTab : "Hlavné",
+DlgDivAdvancedTab : "RozÅ¡Ãrené",
+DlgDivStyle : "Štýl",
+DlgDivInlineStyle : "Inline štýl"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/sl.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sl.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Povezava",
InsertLink : "Vstavi/uredi povezavo",
RemoveLink : "Odstrani povezavo",
+VisitLink : "Open Link", //MISSING
Anchor : "Vstavi/uredi zaznamek",
AnchorDelete : "Odstrani zaznamek",
InsertImageLbl : "Slika",
@@ -72,6 +73,9 @@
DecreaseIndent : "Zmanjšaj zamik",
IncreaseIndent : "PoveÄaj zamik",
Blockquote : "Citat",
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Razveljavi",
Redo : "Ponovi",
NumberedListLbl : "OÅ¡tevilÄen seznam",
@@ -157,6 +161,7 @@
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.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "V redu",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Polnilo med celicami",
DlgTableCaption : "Naslov",
DlgTableSummary : "Povzetek",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Lastnosti celice",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "V sredino",
DlgCellVerAlignBottom : "Na dno",
DlgCellVerAlignBaseline : "Na osnovno Ärto",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Spojenih vrstic (row-span)",
DlgCellCollSpan : "Spojenih stolpcev (col-span)",
DlgCellBackColor : "Barva ozadja",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informacije o brskalniku",
DlgAboutLicenseTab : "Dovoljenja",
DlgAboutVersion : "razliÄica",
-DlgAboutInfo : "Za veÄ informacij obiÅ¡Äite"
+DlgAboutInfo : "Za veÄ informacij obiÅ¡Äite",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr-latn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/sr-latn.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr-latn.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Link",
InsertLink : "Unesi/izmeni link",
RemoveLink : "Ukloni link",
+VisitLink : "Open Link", //MISSING
Anchor : "Unesi/izmeni sidro",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Slika",
@@ -72,6 +73,9 @@
DecreaseIndent : "Smanji levu marginu",
IncreaseIndent : "UveÄaj levu marginu",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Poni�ti akciju",
Redo : "Ponovi akciju",
NumberedListLbl : "Nabrojiva lista",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Razmak Äelija",
DlgTableCaption : "Naslov tabele",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Osobine Äelije",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Sredina",
DlgCellVerAlignBottom : "Donje",
DlgCellVerAlignBaseline : "Bazno",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Spajanje redova",
DlgCellCollSpan : "Spajanje kolona",
DlgCellBackColor : "Boja pozadine",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Informacije o pretraživacu",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "verzija",
-DlgAboutInfo : "Za više informacija posetite"
+DlgAboutInfo : "Za više informacija posetite",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/sr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "Ðинк",
InsertLink : "УнеÑи/измени линк",
RemoveLink : "Уклони линк",
+VisitLink : "Open Link", //MISSING
Anchor : "УнеÑи/измени ÑидÑо",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "Слика",
@@ -72,6 +73,9 @@
DecreaseIndent : "СмаÑи Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ",
IncreaseIndent : "УвеÑÐ°Ñ Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ÐониÑÑи акÑиÑÑ",
Redo : "Ðонови акÑиÑÑ",
NumberedListLbl : "ÐабÑоÑÐ¸Ð²Ñ Ð»Ð¸ÑÑÑ",
@@ -157,6 +161,7 @@
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
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Размак ÑелиÑа",
DlgTableCaption : "ÐаÑлов Ñабеле",
DlgTableSummary : "Summary", //MISSING
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ÐÑобине ÑелиÑе",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "СÑедина",
DlgCellVerAlignBottom : "ÐоÑе",
DlgCellVerAlignBaseline : "Ðазно",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "СпаÑаÑе Ñедова",
DlgCellCollSpan : "СпаÑаÑе колона",
DlgCellBackColor : "ÐоÑа позадине",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ÐнÑоÑмаÑиÑе о пÑеÑÑаживаÑÑ",
DlgAboutLicenseTab : "License", //MISSING
DlgAboutVersion : "веÑзиÑа",
-DlgAboutInfo : "Ðа виÑе инÑоÑмаÑиÑа поÑеÑиÑе"
+DlgAboutInfo : "Ðа виÑе инÑоÑмаÑиÑа поÑеÑиÑе",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sv.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/sv.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/sv.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Länk",
InsertLink : "Infoga/Redigera länk",
RemoveLink : "Radera länk",
+VisitLink : "Open Link", //MISSING
Anchor : "Infoga/Redigera ankarlänk",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Radera ankarlänk",
InsertImageLbl : "Bild",
InsertImage : "Infoga/Redigera bild",
InsertFlashLbl : "Flash",
@@ -72,6 +73,9 @@
DecreaseIndent : "Minska indrag",
IncreaseIndent : "Ãka indrag",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "Ã
ngra",
Redo : "Gör om",
NumberedListLbl : "Numrerad lista",
@@ -112,20 +116,20 @@
CellCM : "Cell",
RowCM : "Rad",
ColumnCM : "Kolumn",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Lägg till Rad Efter",
+InsertRowBefore : "Lägg till Rad Före",
DeleteRows : "Radera rad",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Lägg till Kolumn Efter",
+InsertColumnBefore : "Lägg till Kolumn Före",
DeleteColumns : "Radera kolumn",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Lägg till Cell Efter",
+InsertCellBefore : "Lägg till Cell Före",
DeleteCells : "Radera celler",
MergeCells : "Sammanfoga celler",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Sammanfoga Höger",
+MergeDown : "Sammanfoga Ner",
+HorizontalSplitCell : "Dela Cell Horisontellt",
+VerticalSplitCell : "Dela Cell Vertikalt",
TableDelete : "Radera tabell",
CellProperties : "Cellegenskaper",
TableProperties : "Tabellegenskaper",
@@ -157,6 +161,7 @@
NoActiveX : "Din webläsares säkerhetsinställningar kan begränsa funktionaliteten. Du bör aktivera \"Kör ActiveX kontroller och plug-ins\". Fel och avsaknad av funktioner kan annars uppstå.",
BrowseServerBlocked : "Kunde Ej öppna resursfönstret. Var god och avaktivera alla popup-blockerare.",
DialogBlocked : "Kunde Ej öppna dialogfönstret. Var god och avaktivera alla popup-blockerare.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "OK",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Cellutfyllnad",
DlgTableCaption : "Rubrik",
DlgTableSummary : "Sammanfattning",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Cellegenskaper",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Mitten",
DlgCellVerAlignBottom : "Nederkant",
DlgCellVerAlignBaseline : "Underst",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Radomfång",
DlgCellCollSpan : "Kolumnomfång",
DlgCellBackColor : "Bakgrundsfärg",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Välj...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Sök och ersätt",
// Find Dialog
DlgFindTitle : "Sök",
@@ -443,7 +456,7 @@
// Bulleted List Dialog
BulletedListProp : "Egenskaper för punktlista",
NumberedListProp : "Egenskaper för numrerad lista",
-DlgLstStart : "Start", //MISSING
+DlgLstStart : "Start",
DlgLstType : "Typ",
DlgLstTypeCircle : "Cirkel",
DlgLstTypeDisc : "Punkt",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Webläsare",
DlgAboutLicenseTab : "Licens",
DlgAboutVersion : "version",
-DlgAboutInfo : "För mer information se"
+DlgAboutInfo : "För mer information se",
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/th.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/th.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/th.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸§à¹à¸ à¸à¸µà¹à¸¡à¸¥à¹ รูà¸à¸ าภหรืà¸à¹à¸à¸¥à¹à¸à¸·à¹à¸à¹",
InsertLink : "à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ ลิà¸à¸à¹",
RemoveLink : "ลภลิà¸à¸à¹",
+VisitLink : "Open Link", //MISSING
Anchor : "à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor",
AnchorDelete : "Remove Anchor", //MISSING
InsertImageLbl : "รูà¸à¸ าà¸",
@@ -72,6 +73,9 @@
DecreaseIndent : "ลà¸à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²",
IncreaseIndent : "à¹à¸à¸´à¹à¸¡à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²",
Blockquote : "Blockquote", //MISSING
+CreateDiv : "Create Div Container", //MISSING
+EditDiv : "Edit Div Container", //MISSING
+DeleteDiv : "Remove Div Container", //MISSING
Undo : "ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸ªà¸±à¹à¸",
Redo : "à¸à¸³à¸à¹à¸³à¸à¸³à¸ªà¸±à¹à¸",
NumberedListLbl : "ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸",
@@ -157,6 +161,7 @@
NoActiveX : "à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¹à¸à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸à¸à¸à¸à¹à¸²à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¸à¸µà¸à¸´à¸à¹à¸à¸à¸£à¹à¸à¸³à¸à¸²à¸ \"Run ActiveX controls and plug-ins\". หาà¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¸´à¹à¸«à¹à¹à¸à¹à¸à¸²à¸ ActiveX controls à¸à¹à¸²à¸à¸à¸°à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸¡à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸.",
BrowseServerBlocked : "à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¸·à¹à¸à¸à¸³à¸à¸²à¸à¸à¹à¸à¹à¸¡à¹à¹à¸à¹ à¸à¸£à¸¸à¸à¸²à¸à¸´à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¹à¸à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸à¸à¸à¸à¹à¸²à¸à¸à¹à¸§à¸¢",
DialogBlocked : "à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¸·à¹à¸à¸à¸³à¸à¸²à¸à¸à¹à¸à¹à¸¡à¹à¹à¸à¹ à¸à¸£à¸¸à¸à¸²à¸à¸´à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¹à¸à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸à¸à¸à¸à¹à¸²à¸à¸à¹à¸§à¸¢",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "à¸à¸à¸¥à¸",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ระยะà¹à¸à¸§à¸à¸±à¹à¸",
DlgTableCaption : "หัวà¹à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸²à¸£à¸²à¸",
DlgTableSummary : "สรุà¸à¸à¸§à¸²à¸¡",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¹à¸à¸",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "à¸à¸¶à¹à¸à¸à¸¥à¸²à¸",
DlgCellVerAlignBottom : "ลà¹à¸²à¸à¸ªà¸¸à¸",
DlgCellVerAlignBaseline : "à¸à¸´à¸à¸à¸£à¸£à¸à¸±à¸",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "à¸à¸³à¸à¸§à¸à¹à¸à¸§à¸à¸µà¹à¸à¸£à¹à¸à¸¡à¸à¸±à¸",
DlgCellCollSpan : "à¸à¸³à¸à¸§à¸à¸ªà¸à¸¡à¸à¹à¸à¸µà¹à¸à¸£à¹à¸à¸¡à¸à¸±à¸",
DlgCellBackColor : "สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¹à¸²à¸à¹à¸à¹",
DlgAboutLicenseTab : "ลิà¸à¸ªà¸´à¸à¸à¸´à¹",
DlgAboutVersion : "รุà¹à¸",
-DlgAboutInfo : "For further information go to" //MISSING
+DlgAboutInfo : "For further information go to", //MISSING
+
+// Div Dialog
+DlgDivGeneralTab : "General", //MISSING
+DlgDivAdvancedTab : "Advanced", //MISSING
+DlgDivStyle : "Style", //MISSING
+DlgDivInlineStyle : "Inline Style" //MISSING
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/tr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/tr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/tr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Köprü",
InsertLink : "Köprü Ekle/Düzenle",
RemoveLink : "Köprü Kaldır",
+VisitLink : "Köprü Aç",
Anchor : "Ãapa Ekle/Düzenle",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Ãapa Sil",
InsertImageLbl : "Resim",
InsertImage : "Resim Ekle/Düzenle",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "Ä°ki Kenara YaslanmıÅ",
DecreaseIndent : "Sekme Azalt",
IncreaseIndent : "Sekme Arttır",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "Blok OluÅtur",
+CreateDiv : "Div Ekle",
+EditDiv : "Div Düzenle",
+DeleteDiv : "Div Sil",
Undo : "Geri Al",
Redo : "Tekrarla",
NumberedListLbl : "Numaralı Liste",
@@ -105,27 +109,27 @@
ImageButton : "Resimli DüÄme",
FitWindow : "Düzenleyici boyutunu büyüt",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "Blokları Göster",
// Context Menu
EditLink : "Köprü Düzenle",
CellCM : "Hücre",
RowCM : "Satır",
ColumnCM : "Sütun",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Satır Ekle - Sonra",
+InsertRowBefore : "Satır Ekle - Ãnce",
DeleteRows : "Satır Sil",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Kolon Ekle - Sonra",
+InsertColumnBefore : "Kolon Ekle - Ãnce",
DeleteColumns : "Sütun Sil",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Hücre Ekle - Sonra",
+InsertCellBefore : "Hücre Ekle - Ãnce",
DeleteCells : "Hücre Sil",
MergeCells : "Hücreleri BirleÅtir",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "BirleÅtir - SaÄdaki Ä°le ",
+MergeDown : "BirleÅtir - AÅaÄıdaki Ä°le ",
+HorizontalSplitCell : "Hücreyi Yatay Böl",
+VerticalSplitCell : "Hücreyi Dikey Böl",
TableDelete : "Tabloyu Sil",
CellProperties : "Hücre Ãzellikleri",
TableProperties : "Tablo Ãzellikleri",
@@ -157,6 +161,7 @@
NoActiveX : "KullandıÄınız tarayıcının güvenlik ayarları bazı özelliklerin kullanılmasını engelliyor. Bu özelliklerin çalıÅması için \"Run ActiveX controls and plug-ins (Activex ve eklentileri çalıÅtır)\" seçeneÄinin aktif yapılması gerekiyor. Kullanılamayan eklentiler ve hatalar konusunda daha fazla bilgi sahibi olun.",
BrowseServerBlocked : "Kaynak tarayıcısı açılamadı. Tüm \"popup blocker\" programlarının devre dıÅı olduÄundan emin olun. (Yahoo toolbar, Msn toolbar, Google toolbar gibi)",
DialogBlocked : "Diyalog açmak mümkün olmadı. Tüm \"Popup Blocker\" programlarının devre dıÅı olduÄundan emin olun.",
+VisitLinkBlocked : "Yeni pencere açmak mümkün olmadı. Tüm \"Popup Blocker\" programlarının devre dıÅı olduÄundan emin olun",
// Dialogs
DlgBtnOK : "Tamam",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Izgara yazı arası",
DlgTableCaption : "BaÅlık",
DlgTableSummary : "Ãzet",
+DlgTableHeaders : "BaÅlıklar",
+DlgTableHeadersNone : "Yok",
+DlgTableHeadersColumn : "İlk Sütun",
+DlgTableHeadersRow : "İlk Satır",
+DlgTableHeadersBoth : "Her Ä°kisi",
// Table Cell Dialog
DlgCellTitle : "Hücre Ãzellikleri",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "Orta",
DlgCellVerAlignBottom : "Alt",
DlgCellVerAlignBaseline : "Taban Ãizgisi",
+DlgCellType : "Hücre Tipi",
+DlgCellTypeData : "Veri",
+DlgCellTypeHeader : "BaÅlık",
DlgCellRowSpan : "Satır Kapla",
DlgCellCollSpan : "Sütun Kapla",
DlgCellBackColor : "Arka Plan Rengi",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Seç...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Bul ve DeÄiÅtir",
// Find Dialog
DlgFindTitle : "Bul",
@@ -356,7 +369,7 @@
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
+DlgPasteSec : "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya eriÅimine izin vermiyor. Bu pencere içine tekrar yapıÅtırmalısınız..",
DlgPasteIgnoreFont : "Yazı Tipi tanımlarını yoksay",
DlgPasteRemoveStyles : "Biçem Tanımlarını çıkar",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "Gezgin Bilgisi",
DlgAboutLicenseTab : "Lisans",
DlgAboutVersion : "sürüm",
-DlgAboutInfo : "Daha fazla bilgi için:"
+DlgAboutInfo : "Daha fazla bilgi için:",
+
+// Div Dialog
+DlgDivGeneralTab : "Genel",
+DlgDivAdvancedTab : "GeliÅmiÅ",
+DlgDivStyle : "Sitil",
+DlgDivInlineStyle : "Satıriçi Sitil"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/uk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/uk.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/uk.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "ÐоÑиланнÑ",
InsertLink : "ÐÑÑавиÑи/РедагÑваÑи поÑиланнÑ",
RemoveLink : "ÐниÑиÑи поÑиланнÑ",
+VisitLink : "ÐÑдкÑиÑи поÑиланнÑ",
Anchor : "ÐÑÑавиÑи/РедагÑваÑи ÑкÑÑ",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "ÐидалиÑи ÑкÑÑ",
InsertImageLbl : "ÐобÑаженнÑ",
InsertImage : "ÐÑÑавиÑи/РедагÑваÑи зобÑаженнÑ",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "Ðо ÑиÑинÑ",
DecreaseIndent : "ÐменÑиÑи вÑдÑÑÑп",
IncreaseIndent : "ÐбÑлÑÑиÑи вÑдÑÑÑп",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "ЦиÑаÑа",
+CreateDiv : "СÑвоÑиÑи Div конÑейнеÑ",
+EditDiv : "РедагÑваÑи Div конÑейнеÑ",
+DeleteDiv : "ÐидалиÑи Div конÑейнеÑ",
Undo : "ÐовеÑнÑÑи",
Redo : "ÐовÑоÑиÑи",
NumberedListLbl : "ÐÑмеÑований ÑпиÑок",
@@ -105,27 +109,27 @@
ImageButton : "Ðнопка Ñз зобÑаженнÑм",
FitWindow : "РозвеÑнÑÑи вÑкно ÑедакÑоÑа",
-ShowBlocks : "Show Blocks", //MISSING
+ShowBlocks : "ÐоказÑваÑи блоки",
// Context Menu
EditLink : "ÐÑÑавиÑи поÑиланнÑ",
CellCM : "ÐÑеÑедок",
RowCM : "Ð Ñдок",
ColumnCM : "Ðолонка",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "ÐÑÑавиÑи ÑÑдок пÑÑлÑ",
+InsertRowBefore : "ÐÑÑавиÑи ÑÑдок до",
DeleteRows : "ÐидалиÑи ÑÑÑоки",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð¿ÑÑлÑ",
+InsertColumnBefore : "ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð´Ð¾",
DeleteColumns : "ÐидалиÑи колонки",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÑÑлÑ",
+InsertCellBefore : "ÐÑÑавиÑи комÑÑÐºÑ Ð´Ð¾",
DeleteCells : "ÐидалиÑи комÑÑки",
MergeCells : "Ðб'ÑднаÑи комÑÑки",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeRight : "Ðб'ÑднаÑи зпÑава",
+MergeDown : "Ðб'ÑднаÑи до низÑ",
+HorizontalSplitCell : "РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ гоÑизонÑалÑ",
+VerticalSplitCell : "РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ веÑÑикалÑ",
TableDelete : "ÐидалиÑи ÑаблиÑÑ",
CellProperties : "ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки",
TableProperties : "ÐлаÑÑивоÑÑÑ ÑаблиÑÑ",
@@ -157,6 +161,7 @@
NoActiveX : "ÐаÑÑÑойки безпеки ваÑого бÑаÑзеÑа можÑÑÑ Ð¾Ð±Ð¼ÐµÐ¶ÑваÑи деÑÐºÑ Ð²Ð»Ð°ÑÑивоÑÑÑ ÑедакÑоÑа. Ðи Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð²ÐºÐ»ÑÑиÑи опÑÑÑ \"ÐапÑÑкаÑи елеменÑи ÑпÑавлÑÐ½Ð½Ñ ACTIVEX Ñ Ð¿Ð»ÑгÑни\". Ðи можеÑе баÑиÑи помилки Ñ Ð¿Ð¾Ð¼ÑÑаÑи вÑдÑÑÑнÑÑÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑей.",
BrowseServerBlocked : "РеÑÑÑÑи бÑаÑзеÑа не можÑÑÑ Ð±ÑÑи вÑдкÑиÑÑ. ÐеÑевÑÑÑе Ñо блокÑÐ²Ð°Ð½Ð½Ñ ÑпливаÑÑиÑ
вÑкон вимкненÑ.",
DialogBlocked : "Ðе можливо вÑдкÑиÑи вÑкно дÑалогÑ. ÐеÑевÑÑÑе Ñо блокÑÐ²Ð°Ð½Ð½Ñ ÑпливаÑÑиÑ
вÑкон вимкненÑ.",
+VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING
// Dialogs
DlgBtnOK : "ÐÐ",
@@ -303,6 +308,11 @@
DlgTableCellPad : "ÐÑдÑÑÑп (padding)",
DlgTableCaption : "Ðаголовок",
DlgTableSummary : "РезÑме",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ÐоÑеÑединÑ",
DlgCellVerAlignBottom : "ÐнизÑ",
DlgCellVerAlignBaseline : "Ðо базовÑй лÑнÑÑ",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "ÐÑапазон ÑÑÑок (span)",
DlgCellCollSpan : "ÐÑапазон колонок (span)",
DlgCellBackColor : "ÐолÑÑ Ñона",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "ÐбеÑÑÑÑ...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "ÐнайÑи Ñ Ð·Ð°Ð¼ÑниÑи",
// Find Dialog
DlgFindTitle : "ÐоÑÑк",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ÐнÑоÑмаÑÑÑ Ð±ÑаÑзеÑа",
DlgAboutLicenseTab : "ÐÑÑензÑÑ",
DlgAboutVersion : "ÐеÑÑÑÑ",
-DlgAboutInfo : "ÐодаÑÐºÐ¾Ð²Ñ ÑнÑоÑмаÑÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ð½Ð° "
+DlgAboutInfo : "ÐодаÑÐºÐ¾Ð²Ñ ÑнÑоÑмаÑÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ð½Ð° ",
+
+// Div Dialog
+DlgDivGeneralTab : "ÐагалÑна",
+DlgDivAdvancedTab : "РозÑиÑена",
+DlgDivStyle : "СÑилÑ",
+DlgDivInlineStyle : "Inline ÑÑилÑ"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/vi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/vi.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/vi.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,8 +44,9 @@
InsertLinkLbl : "Liên kết",
InsertLink : "Chèn/Sá»a Liên kết",
RemoveLink : "Xoá Liên kết",
+VisitLink : "MỠLiên Kết",
Anchor : "Chèn/Sá»a Neo",
-AnchorDelete : "Remove Anchor", //MISSING
+AnchorDelete : "Gỡ bỠNeo",
InsertImageLbl : "Hình ảnh",
InsertImage : "Chèn/Sá»a Hình ảnh",
InsertFlashLbl : "Flash",
@@ -71,7 +72,10 @@
BlockJustify : "Canh Äá»u",
DecreaseIndent : "Dá»ch ra ngoà i",
IncreaseIndent : "Dá»ch và o trong",
-Blockquote : "Blockquote", //MISSING
+Blockquote : "Khá»i TrÃch dẫn",
+CreateDiv : "Tạo Div Container",
+EditDiv : "Chá»nh sá»a Div Container",
+DeleteDiv : "Gỡ bỠDiv Container",
Undo : "Khôi phục thao tác",
Redo : "Là m lại thao tác",
NumberedListLbl : "Danh sách có thứ tự",
@@ -105,27 +109,27 @@
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
+ShowBlocks : "Hiá»n thá» các Khá»i",
// Context Menu
EditLink : "Sá»a Liên kết",
CellCM : "Ã",
RowCM : "HÃ ng",
ColumnCM : "Cá»t",
-InsertRowAfter : "Insert Row After", //MISSING
-InsertRowBefore : "Insert Row Before", //MISSING
+InsertRowAfter : "Chèn Hà ng PhÃa sau",
+InsertRowBefore : "Chèn Hà ng PhÃa trÆ°á»c",
DeleteRows : "Xoá Hà ng",
-InsertColumnAfter : "Insert Column After", //MISSING
-InsertColumnBefore : "Insert Column Before", //MISSING
+InsertColumnAfter : "Chèn Cá»t PhÃa sau",
+InsertColumnBefore : "Chèn Cá»t PhÃa trÆ°á»c",
DeleteColumns : "Xoá Cá»t",
-InsertCellAfter : "Insert Cell After", //MISSING
-InsertCellBefore : "Insert Cell Before", //MISSING
+InsertCellAfter : "Chèn à PhÃa sau",
+InsertCellBefore : "Chèn à PhÃa trÆ°á»c",
DeleteCells : "Xoá Ã",
-MergeCells : "Trá»n Ã",
-MergeRight : "Merge Right", //MISSING
-MergeDown : "Merge Down", //MISSING
-HorizontalSplitCell : "Split Cell Horizontally", //MISSING
-VerticalSplitCell : "Split Cell Vertically", //MISSING
+MergeCells : "Kết hợp Ã",
+MergeRight : "Kết hợp Sang phải",
+MergeDown : "Kết hợp Xuá»ng dÆ°á»i",
+HorizontalSplitCell : "Tách ngang Ã",
+VerticalSplitCell : "Tách dá»c Ã",
TableDelete : "Xóa Bảng",
CellProperties : "Thuá»c tÃnh Ã",
TableProperties : "Thuá»c tÃnh Bảng",
@@ -154,9 +158,10 @@
UnknownCommand : "Không rõ lá»nh \"%1\"",
NotImplemented : "Lá»nh không Äược thá»±c hiá»n",
UnknownToolbarSet : "Thanh công cụ \"%1\" không tá»n tại",
-NoActiveX : "Các thiết láºp bảo máºt của trình duyá»t có thá» giá»i hạn má»t sá» chức nÄng của trình biên táºp. Bạn phải báºt tùy chá»n \"Run ActiveX controls and plug-ins\". Bạn có thá» gặp má»t sá» lá»i và thấy thiếu Äi má»t sá» chức nÄng.",
+NoActiveX : "Các thiết láºp bảo máºt của trình duyá»t có thá» giá»i hạn má»t sá» chức nÄng của trình biên táºp. Bạn phải báºt tùy chá»n \"Run ActiveX controls and plug-ins\". Bạn có thá» gặp má»t sá» lá»i và thấy thiếu má»t sá» chức nÄng.",
BrowseServerBlocked : "Không thá» má» Äược bá» duyá»t tà i nguyên. Hãy Äảm bảo chức nÄng chặn popup Äã bá» vô hiá»u hóa.",
DialogBlocked : "Không thá» má» Äược cá»a sá» há»p thoại. Hãy Äảm bảo chức nÄng chặn popup Äã bá» vô hiá»u hóa.",
+VisitLinkBlocked : "Không thá» má» Äược cá»a sá» trình duyá»t má»i. Hãy Äảm bảo chức nÄng chặn popup Äã bá» vô hiá»u hóa.",
// Dialogs
DlgBtnOK : "Äá»ng ý",
@@ -194,7 +199,7 @@
DlgImgAlt : "Chú thÃch Hình ảnh",
DlgImgWidth : "Rá»ng",
DlgImgHeight : "Cao",
-DlgImgLockRatio : "Giữ tá»· lá»",
+DlgImgLockRatio : "Giữ nguyên tá»· lá»",
DlgBtnResetSize : "KÃch thÆ°á»c gá»c",
DlgImgBorder : "ÄÆ°á»ng viá»n",
DlgImgHSpace : "HSpace",
@@ -203,7 +208,7 @@
DlgImgAlignLeft : "Trái",
DlgImgAlignAbsBottom: "DÆ°á»i tuyá»t Äá»i",
DlgImgAlignAbsMiddle: "Giữa tuyá»t Äá»i",
-DlgImgAlignBaseline : "Baseline",
+DlgImgAlignBaseline : "ÄÆ°á»ng cÆ¡ sá»",
DlgImgAlignBottom : "DÆ°á»i",
DlgImgAlignMiddle : "Giữa",
DlgImgAlignRight : "Phải",
@@ -303,6 +308,11 @@
DlgTableCellPad : "Äá»m Ã",
DlgTableCaption : "Äầu Äá»",
DlgTableSummary : "Tóm lược",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "Thuá»c tÃnh Ã",
@@ -324,7 +334,10 @@
DlgCellVerAlignTop : "Trên",
DlgCellVerAlignMiddle : "Giữa",
DlgCellVerAlignBottom : "DÆ°á»i",
-DlgCellVerAlignBaseline : "Baseline",
+DlgCellVerAlignBaseline : "ÄÆ°á»ng cÆ¡ sá»",
+DlgCellType : "Cell Type", //MISSING
+DlgCellTypeData : "Data", //MISSING
+DlgCellTypeHeader : "Header", //MISSING
DlgCellRowSpan : "Ná»i Hà ng",
DlgCellCollSpan : "Ná»i Cá»t",
DlgCellBackColor : "Mà u ná»n",
@@ -332,7 +345,7 @@
DlgCellBtnSelect : "Chá»n...",
// Find and Replace Dialog
-DlgFindAndReplaceTitle : "Find and Replace", //MISSING
+DlgFindAndReplaceTitle : "Tìm kiếm và Thay Thế",
// Find Dialog
DlgFindTitle : "Tìm kiếm",
@@ -370,7 +383,7 @@
// Anchor Dialog
DlgAnchorTitle : "Thuá»c tÃnh Neo",
DlgAnchorName : "Tên của Neo",
-DlgAnchorErrorName : "Hãy ÄÆ°a và o tên của Neo",
+DlgAnchorErrorName : "Hãy nháºp và o tên của Neo",
// Speller Pages Dialog
DlgSpellNotInDic : "Không có trong từ Äiá»n",
@@ -511,5 +524,11 @@
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"
+DlgAboutInfo : "Äá» biết thêm thông tin, hãy truy cáºp",
+
+// Div Dialog
+DlgDivGeneralTab : "Chung",
+DlgDivAdvancedTab : "Nâng cao",
+DlgDivStyle : "Kiá»u Style",
+DlgDivInlineStyle : "Kiá»u Style Trá»±c tiếp"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh-cn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/zh-cn.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh-cn.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "è¶
é¾æ¥",
InsertLink : "æå
¥/ç¼è¾è¶
é¾æ¥",
RemoveLink : "åæ¶è¶
é¾æ¥",
+VisitLink : "æå¼è¶
é¾æ¥",
Anchor : "æå
¥/ç¼è¾éç¹é¾æ¥",
AnchorDelete : "æ¸
é¤éç¹é¾æ¥",
InsertImageLbl : "å¾è±¡",
@@ -71,7 +72,10 @@
BlockJustify : "两端对é½",
DecreaseIndent : "åå°ç¼©è¿é",
IncreaseIndent : "å¢å 缩è¿é",
-Blockquote : "å¼ç¨æå",
+Blockquote : "åå¼ç¨",
+CreateDiv : "æå
¥ Div æ ç¾",
+EditDiv : "ç¼è¾ Div æ ç¾",
+DeleteDiv : "å é¤ Div æ ç¾",
Undo : "æ¤æ¶",
Redo : "éå",
NumberedListLbl : "ç¼å·å表",
@@ -112,20 +116,20 @@
CellCM : "åå
æ ¼",
RowCM : "è¡",
ColumnCM : "å",
-InsertRowAfter : "ä¸æå
¥è¡",
-InsertRowBefore : "ä¸æå
¥è¡",
+InsertRowAfter : "å¨ä¸æ¹æå
¥è¡",
+InsertRowBefore : "å¨ä¸æ¹æå
¥è¡",
DeleteRows : "å é¤è¡",
-InsertColumnAfter : "å³æå
¥å",
-InsertColumnBefore : "å·¦æå
¥å",
+InsertColumnAfter : "å¨å³ä¾§æå
¥å",
+InsertColumnBefore : "å¨å·¦ä¾§æå
¥å",
DeleteColumns : "å é¤å",
-InsertCellAfter : "å³æå
¥åå
æ ¼",
-InsertCellBefore : "å·¦æå
¥åå
æ ¼",
+InsertCellAfter : "å¨å³ä¾§æå
¥åå
æ ¼",
+InsertCellBefore : "å¨å·¦ä¾§æå
¥åå
æ ¼",
DeleteCells : "å é¤åå
æ ¼",
MergeCells : "å并åå
æ ¼",
-MergeRight : "å³å并åå
æ ¼",
-MergeDown : "ä¸å并åå
æ ¼",
-HorizontalSplitCell : "æ©«æååå
æ ¼",
-VerticalSplitCell : "縱æååå
æ ¼",
+MergeRight : "åå³å并åå
æ ¼",
+MergeDown : "åä¸å并åå
æ ¼",
+HorizontalSplitCell : "æ°´å¹³æååå
æ ¼",
+VerticalSplitCell : "åç´æååå
æ ¼",
TableDelete : "å é¤è¡¨æ ¼",
CellProperties : "åå
æ ¼å±æ§",
TableProperties : "è¡¨æ ¼å±æ§",
@@ -157,6 +161,7 @@
NoActiveX : "æµè§å¨å®å
¨è®¾ç½®éå¶äºæ¬ç¼è¾å¨çæäºåè½ãæ¨å¿
é¡»å¯ç¨å®å
¨è®¾ç½®ä¸çâè¿è¡ ActiveX æ§ä»¶åæ件âï¼å¦åå°åºç°æäºé误并缺å°åè½ã",
BrowseServerBlocked : "æ æ³æå¼èµæºæµè§å¨ï¼è¯·ç¡®è®¤æ¯å¦å¯ç¨äºç¦æ¢å¼¹åºçªå£ã",
DialogBlocked : "æ æ³æå¼å¯¹è¯æ¡çªå£ï¼è¯·ç¡®è®¤æ¯å¦å¯ç¨äºç¦æ¢å¼¹åºçªå£æç½é¡µå¯¹è¯æ¡ï¼IEï¼ã",
+VisitLinkBlocked : "æ æ³æå¼æ°çªå£ï¼è¯·ç¡®è®¤æ¯å¦å¯ç¨äºç¦æ¢å¼¹åºçªå£æç½é¡µå¯¹è¯æ¡ï¼IEï¼ã",
// Dialogs
DlgBtnOK : "ç¡®å®",
@@ -303,6 +308,11 @@
DlgTableCellPad : "è¾¹è·",
DlgTableCaption : "æ é¢",
DlgTableSummary : "æè¦",
+DlgTableHeaders : "æ é¢åå
æ ¼",
+DlgTableHeadersNone : "æ ",
+DlgTableHeadersColumn : "第ä¸å",
+DlgTableHeadersRow : "第ä¸è¡",
+DlgTableHeadersBoth : "第ä¸åå第ä¸è¡",
// Table Cell Dialog
DlgCellTitle : "åå
æ ¼å±æ§",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "å±
ä¸",
DlgCellVerAlignBottom : "åºé¨",
DlgCellVerAlignBaseline : "åºçº¿",
+DlgCellType : "åå
æ ¼ç±»å",
+DlgCellTypeData : "èµæ",
+DlgCellTypeHeader : "æ é¢",
DlgCellRowSpan : "纵跨è¡æ°",
DlgCellCollSpan : "横跨åæ°",
DlgCellBackColor : "èæ¯é¢è²",
@@ -501,7 +514,7 @@
// Templates Dialog
Templates : "模æ¿",
DlgTemplatesTitle : "å
容模æ¿",
-DlgTemplatesSelMsg : "请éæ©ç¼è¾å¨å
容模æ¿<br>(å½åå
容å°ä¼è¢«æ¸
é¤æ¿æ¢):",
+DlgTemplatesSelMsg : "请éæ©ç¼è¾å¨å
容模æ¿:",
DlgTemplatesLoading : "æ£å¨å 载模æ¿å表ï¼è¯·ç¨ç...",
DlgTemplatesNoTpl : "(没æ模æ¿)",
DlgTemplatesReplace : "æ¿æ¢å½åå
容",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "æµè§å¨ä¿¡æ¯",
DlgAboutLicenseTab : "许å¯è¯",
DlgAboutVersion : "çæ¬",
-DlgAboutInfo : "è¦è·å¾æ´å¤ä¿¡æ¯è¯·è®¿é® "
+DlgAboutInfo : "è¦è·å¾æ´å¤ä¿¡æ¯è¯·è®¿é® ",
+
+// Div Dialog
+DlgDivGeneralTab : "常è§",
+DlgDivAdvancedTab : "é«çº§",
+DlgDivStyle : "æ ·å¼",
+DlgDivInlineStyle : "CSS æ ·å¼"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/lang/zh.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/lang/zh.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -44,6 +44,7 @@
InsertLinkLbl : "è¶
é£çµ",
InsertLink : "æå
¥/編輯è¶
é£çµ",
RemoveLink : "移é¤è¶
é£çµ",
+VisitLink : "éåè¶
é£çµ",
Anchor : "æå
¥/編輯é¨é»",
AnchorDelete : "移é¤é¨é»",
InsertImageLbl : "å½±å",
@@ -71,7 +72,10 @@
BlockJustify : "å·¦å³å°é½",
DecreaseIndent : "æ¸å°ç¸®æ",
IncreaseIndent : "å¢å 縮æ",
-Blockquote : "åå¼ç¨",
+Blockquote : "å¼ç¨æå",
+CreateDiv : "æ°å¢ Div æ¨ç±¤",
+EditDiv : "è®æ´ Div æ¨ç±¤",
+DeleteDiv : "ç§»é¤ Div æ¨ç±¤",
Undo : "復å",
Redo : "éè¤",
NumberedListLbl : "ç·¨èæ¸
å®",
@@ -157,6 +161,7 @@
NoActiveX : "ç覽å¨çå®å
¨æ§è¨å®éå¶äºæ¬ç·¨è¼¯å¨çæäºåè½ãæ¨å¿
é åç¨å®å
¨æ§è¨å®ä¸çãå·è¡ActiveXæ§å¶é
èå¤æç¨å¼ãé
ç®ï¼å¦åæ¬ç·¨è¼¯å¨å°æåºç¾é¯èª¤ä¸¦ç¼ºå°æäºåè½",
BrowseServerBlocked : "ç¡æ³éåè³æºç覽å¨ï¼è«ç¢ºå®ææ快顯è¦çªå°éç¨å¼æ¯å¦éé",
DialogBlocked : "ç¡æ³éåå°è©±è¦çªï¼è«ç¢ºå®ææ快顯è¦çªå°éç¨å¼æ¯å¦éé",
+VisitLinkBlocked : "ç¡æ³éåæ°è¦çªï¼è«ç¢ºå®ææ快顯è¦çªå°éç¨å¼æ¯å¦éé",
// Dialogs
DlgBtnOK : "確å®",
@@ -303,6 +308,11 @@
DlgTableCellPad : "å
§è·",
DlgTableCaption : "æ¨é¡",
DlgTableSummary : "æè¦",
+DlgTableHeaders : "Headers", //MISSING
+DlgTableHeadersNone : "None", //MISSING
+DlgTableHeadersColumn : "First column", //MISSING
+DlgTableHeadersRow : "First Row", //MISSING
+DlgTableHeadersBoth : "Both", //MISSING
// Table Cell Dialog
DlgCellTitle : "å²åæ ¼å±¬æ§",
@@ -325,6 +335,9 @@
DlgCellVerAlignMiddle : "ç½®ä¸",
DlgCellVerAlignBottom : "é ä¸å°é½",
DlgCellVerAlignBaseline : "åºæºç·",
+DlgCellType : "å²åæ ¼é¡å",
+DlgCellTypeData : "è³æ",
+DlgCellTypeHeader : "æ¨é¡",
DlgCellRowSpan : "åä½µåæ¸",
DlgCellCollSpan : "åä½µæ¬æ°",
DlgCellBackColor : "èæ¯é¡è²",
@@ -511,5 +524,11 @@
DlgAboutBrowserInfoTab : "ç覽å¨è³è¨",
DlgAboutLicenseTab : "許å¯è",
DlgAboutVersion : "çæ¬",
-DlgAboutInfo : "æ³ç²å¾æ´å¤è³è¨è«è³ "
+DlgAboutInfo : "æ³ç²å¾æ´å¤è³è¨è«è³ ",
+
+// Div Dialog
+DlgDivGeneralTab : "ä¸è¬",
+DlgDivAdvancedTab : "é²é",
+DlgDivStyle : "樣å¼",
+DlgDivInlineStyle : "CSS 樣å¼"
};
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/autogrow/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/autogrow/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/autogrow/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -22,78 +22,90 @@
* height (FCKConfig.AutoGrowMax), based on its contents.
*/
-var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
+var FCKAutoGrow = {
+ MIN_HEIGHT : window.frameElement.offsetHeight,
-function FCKAutoGrow_Check()
-{
- var oInnerDoc = FCK.EditorDocument ;
+ Check : function()
+ {
+ var delta = FCKAutoGrow.GetHeightDelta() ;
+ if ( delta != 0 )
+ {
+ var newHeight = window.frameElement.offsetHeight + delta ;
- var iFrameHeight, iInnerHeight ;
+ newHeight = FCKAutoGrow.GetEffectiveHeight( newHeight ) ;
- if ( FCKBrowserInfo.IsIE )
+ if ( newHeight != window.frameElement.height )
+ {
+ window.frameElement.style.height = newHeight + "px" ;
+
+ // Gecko browsers use an onresize handler to update the innermost
+ // IFRAME's height. If the document is modified before the onresize
+ // is triggered, the plugin will miscalculate the new height. Thus,
+ // forcibly trigger onresize. #1336
+ if ( typeof window.onresize == 'function' )
+ {
+ window.onresize() ;
+ }
+ }
+ }
+ },
+
+ CheckEditorStatus : function( sender, status )
{
- iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
- iInnerHeight = oInnerDoc.body.scrollHeight ;
- }
- else
+ if ( status == FCK_STATUS_COMPLETE )
+ FCKAutoGrow.Check() ;
+ },
+
+ GetEffectiveHeight : function( height )
{
- iFrameHeight = FCK.EditorWindow.innerHeight ;
- iInnerHeight = oInnerDoc.body.offsetHeight ;
- }
+ if ( height < FCKAutoGrow.MIN_HEIGHT )
+ height = FCKAutoGrow.MIN_HEIGHT;
+ else
+ {
+ var max = FCKConfig.AutoGrowMax;
+ if ( max && max > 0 && height > max )
+ height = max;
+ }
- var iDiff = iInnerHeight - iFrameHeight ;
+ return height;
+ },
- if ( iDiff != 0 )
+ GetHeightDelta : function()
{
- var iMainFrameSize = window.frameElement.offsetHeight ;
+ var oInnerDoc = FCK.EditorDocument ;
- if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
+ var iFrameHeight ;
+ var iInnerHeight ;
+
+ if ( FCKBrowserInfo.IsIE )
{
- iMainFrameSize += iDiff ;
- if ( iMainFrameSize > FCKConfig.AutoGrowMax )
- iMainFrameSize = FCKConfig.AutoGrowMax ;
+ iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+ iInnerHeight = oInnerDoc.body.scrollHeight ;
}
- else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
+ else
{
- iMainFrameSize += iDiff ;
- if ( iMainFrameSize < FCKAutoGrow_Min )
- iMainFrameSize = FCKAutoGrow_Min ;
+ iFrameHeight = FCK.EditorWindow.innerHeight ;
+ iInnerHeight = oInnerDoc.body.offsetHeight +
+ ( parseInt( FCKDomTools.GetCurrentElementStyle( oInnerDoc.body, 'margin-top' ), 10 ) || 0 ) +
+ ( parseInt( FCKDomTools.GetCurrentElementStyle( oInnerDoc.body, 'margin-bottom' ), 10 ) || 0 ) ;
}
- else
+
+ return iInnerHeight - iFrameHeight ;
+ },
+
+ SetListeners : function()
+ {
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
return ;
- window.frameElement.height = iMainFrameSize ;
-
- // Gecko browsers use an onresize handler to update the innermost
- // IFRAME's height. If the document is modified before the onresize
- // is triggered, the plugin will miscalculate the new height. Thus,
- // forcibly trigger onresize. #1336
- if ( typeof window.onresize == 'function' )
- window.onresize() ;
+ FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow.Check ) ;
+ FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow.Check ) ;
}
-}
+};
-FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
+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 ) ;
-}
+ FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow.SetListeners ) ;
-function FCKAutoGrow_CheckEditorStatus( sender, status )
-{
- if ( status == FCK_STATUS_COMPLETE )
- FCKAutoGrow_Check() ;
-}
-
-FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow.CheckEditorStatus ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/bbcode/_sample/sample.config.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.config.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/bbcode/_sample/sample.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/_sample/sample.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!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-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/bbcode/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/bbcode/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/dragresizetable/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/dragresizetable/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/dragresizetable/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -88,8 +88,6 @@
},
"_ResizeBarMouseDownListener" : function( evt )
{
- if ( ! evt )
- evt = window.event ;
if ( FCKDragTableHandler._LeftCell )
FCKDragTableHandler._MouseMoveMode = 1 ;
if ( FCKBrowserInfo.IsIE )
@@ -121,11 +119,14 @@
FCKDragTableHandler._MinimumX = minX + offset.x ;
FCKDragTableHandler._MaximumX = maxX + offset.x ;
FCKDragTableHandler._LastX = null ;
+
+ if (evt.preventDefault)
+ evt.preventDefault();
+ else
+ evt.returnValue = false;
},
"_ResizeBarMouseUpListener" : function( evt )
{
- if ( ! evt )
- evt = window.event ;
FCKDragTableHandler._MouseMoveMode = 0 ;
FCKDragTableHandler._HideResizeBar() ;
@@ -218,8 +219,6 @@
},
"_ResizeBarMouseMoveListener" : function( evt )
{
- if ( ! evt )
- evt = window.event ;
if ( FCKDragTableHandler._MouseMoveMode == 0 )
return FCKDragTableHandler._MouseFindHandler( FCK, evt ) ;
else
@@ -421,8 +420,6 @@
// 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
@@ -520,8 +517,13 @@
backgroundImage : 'none',
border : '0'
} ) ;
+ },
+ "Reset" : function()
+ {
+ FCKDragTableHandler._LeftCell = FCKDragTableHandler._RightCell = FCKDragTableHandler._TableMap = null ;
}
};
FCK.Events.AttachEvent( "OnMouseMove", FCKDragTableHandler.MouseMoveListener ) ;
+FCK.Events.AttachEvent( "OnAfterSetHTML", FCKDragTableHandler.Reset ) ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fck_placeholder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/fck_placeholder.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fck_placeholder.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/de.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/de.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/de.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/en.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/en.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/es.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/es.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/es.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/fr.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/fr.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/it.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/it.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/pl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/placeholder/lang/pl.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/placeholder/lang/pl.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/simplecommands/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/simplecommands/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/simplecommands/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/tablecommands/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/plugins/tablecommands/fckplugin.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/plugins/tablecommands/fckplugin.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/_fckviewstrips.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/_fckviewstrips.html 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/_fckviewstrips.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/default/fck_dialog.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog_ie6.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/default/fck_dialog_ie6.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_dialog_ie6.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/default/fck_editor.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_editor.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/default/fck_strip.gif
===================================================================
(Binary files differ)
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/office2003/fck_dialog.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog_ie6.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/office2003/fck_dialog_ie6.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_dialog_ie6.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/office2003/fck_editor.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_editor.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/office2003/fck_strip.gif
===================================================================
(Binary files differ)
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/silver/fck_dialog.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog_ie6.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/silver/fck_dialog_ie6.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_dialog_ie6.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/editor/skins/silver/fck_editor.css 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_editor.css 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/skins/silver/fck_strip.gif
===================================================================
(Binary files differ)
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/ciframe.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/ciframe.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/ciframe.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html>
+<head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <script type="text/javascript">
+
+function gup( name )
+{
+ name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
+ var regexS = '[\\?&]' + name + '=([^&#]*)' ;
+ var regex = new RegExp( regexS ) ;
+ var results = regex.exec( window.location.href ) ;
+
+ if( results == null )
+ return '' ;
+ else
+ return results[ 1 ] ;
+}
+
+function sendData2Master()
+{
+ var destination = parent.parent ;
+ try
+ {
+ if ( destination.XDTMaster )
+ {
+ var t = destination.XDTMaster.read( [ gup( 'cmd' ), gup( 'data' ) ] ) ;
+ window.clearInterval( interval ) ;
+ }
+ }
+ catch (e) {}
+}
+
+function onLoad()
+{
+ interval = window.setInterval( sendData2Master, 100 );
+}
+
+ </script>
+</head>
+<body onload="onLoad()">
+ <p></p>
+</body>
+</html>
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/tmpFrameset.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/tmpFrameset.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/tmpFrameset.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html>
+<head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <script type="text/javascript">
+
+function doLoadScript( url )
+{
+ if ( !url )
+ return false ;
+
+ var s = document.createElement( "script" ) ;
+ s.type = "text/javascript" ;
+ s.src = url ;
+ document.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ;
+
+ return true ;
+}
+
+function tryLoad ()
+{
+ if ( typeof( opener ) == 'undefined' || !opener )
+ opener = parent ;
+
+ // get access to global parameters
+ oParams = opener.oldFramesetPageParams ;
+
+ // make frameset rows string prepare
+ sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || '30') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || '150' ) + ',0' ;
+ document.getElementById( 'itFrameset' ).rows = sFramesetRows ;
+
+ // dynamic including init frames and crossdomain transport code
+ // from config sproxy_js_frameset url
+ var addScriptUrl = oParams.sproxy_js_frameset ;
+ doLoadScript( addScriptUrl ) ;
+}
+
+ </script>
+</head>
+<frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0">
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame>
+ <frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame>
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame>
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame>
+</frameset>
+</html>
Added: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/w.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/w.html (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/editor/wsc/w.html 2009-07-06 15:24:41 UTC (rev 101620)
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ * - GNU General Public License Version 2 or later (the "GPL")
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ * http://www.gnu.org/licenses/lgpl.html
+ *
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
+ * http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html>
+<head>
+ <title></title>
+ <style>
+ #wsc_frames , #errorMessage{
+ position:absolute;
+ top:0px;
+ left:0px;
+ width:500px;
+ height:395px;
+ margin:0px;
+ padding:0px;
+ border:0px;
+ display:block;
+ overflow: hidden;
+ }
+ #wsc_frames { z-index:10;}
+ #errorMessage {
+ color:red;
+ display:none;
+ font-size:16px;
+ font-weight:bold;
+ padding-top:160px;
+ text-align:center;
+ z-index:11;
+ }
+ #errorMessage p {
+ color:#000;
+ font-size:11px;
+ text-align:left;
+ font-weight: normal;
+ padding-left:80px;
+ }
+
+ </style>
+ <script type="text/javascript">
+
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCKConfig = oEditor.FCKConfig;
+
+function doLoadScript(url)
+{
+ if (!url)
+ return false ;
+
+ var s = document.createElement('script') ;
+ s.type = 'text/javascript' ;
+ s.src = url ;
+
+ document.getElementsByTagName('head')[0].appendChild(s) ;
+
+ return true ;
+}
+
+function Ok()
+{
+ return window.parent.Cancel() ;
+}
+
+function _callOnCancel( dT )
+{
+ window.parent.Cancel() ;
+}
+
+function _callOnFinish( dT )
+{
+ oEditor.FCK.SetData( dT.value ) ;
+ window.parent.CloseDialog( true ) ;
+}
+
+function _cancelOnError(m)
+{
+ var _conId = 'errorMessage' ;
+ var message = m || 'Sorry, but service is unavailable now.' ;
+
+ if ( typeof( WSC_Error ) == 'undefined' )
+ {
+ var _con = document.createElement( 'div' ) ;
+ _con.setAttribute( 'id', _conId ) ;
+ document.body.appendChild( _con ) ;
+ dom_con = document.getElementById( _conId ) ;
+ dom_con.innerHTML = message ;
+ dom_con.style.display = 'block' ;
+ }
+ //return Ok() ;
+}
+
+function URL_abs2full( uri )
+{
+ return uri.match( 'http' )
+ ? uri
+ : document.location.protocol + '//' + document.location.host + uri ;
+}
+
+function clearErrorUsermessage()
+{
+ // empty error container
+ var _con = document.getElementById( 'errorMessage' ) ;
+
+ if ( !_con )
+ return ;
+
+ _con.innerHTML = '' ;
+ _con.style.display = 'none' ;
+}
+
+var gInterval ;
+
+function onLoad()
+{
+ clearErrorUsermessage() ;
+ var _errorMessage = 'The SpellChecker Service is currently unavailable.' ;
+ if ( 'undefined' != typeof( oEditor.FCK.Config.WSChLoaderScript ) )
+ _errorMessage = '<div>The SpellChecker Service is currently unavailable.</div><p>Error loading application<br>service host: ' + oEditor.FCK.Config.WSChLoaderScript + '</p>';
+
+ var burnSpelling = function( oName, _eMessage )
+ {
+ var i = 0 ;
+
+ return function ()
+ {
+ if ( typeof( window[oName] ) == 'function' )
+ initAndSpell() ;
+ else if ( i++ == 180 )
+ _cancelOnError( _eMessage ) ;
+ }
+ }
+
+ gInterval = window.setInterval( burnSpelling( 'doSpell', _errorMessage ), 250 ) ;
+
+ // WSC CORE init section
+ var protocol = document.location.protocol || 'http:' ;
+ var baseUrl = protocol + '//loader.spellchecker.net/sproxy_fck/sproxy.php' ;
+ var plugin = "fck2" ;
+ var customerid = oEditor.FCK.Config.WSCnCustomerId
+ || "1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk" ;
+ var wscCoreUrl = oEditor.FCK.Config.WSChLoaderScript
+ || ( baseUrl + '?'
+ + 'plugin=' + plugin + '&'
+ + 'customerid='+ customerid + '&'
+ + 'cmd=script&doc=wsc&schema=22' ) ;
+
+ // load WSC core
+ doLoadScript( wscCoreUrl ) ;
+}
+
+function initAndSpell()
+{
+ //xall from window.setInteval expected at once
+ if ( typeof( gInterval ) == 'undefined' )
+ return null ;
+ window.clearInterval( gInterval ) ;
+
+ // global var is used in FCK specific core
+ // change on equal var used in fckplugin.js
+ gFCKPluginName = 'wsc' ;
+
+ // get the data to be checked
+ var sData = oEditor.FCK.GetData() ;
+
+ // prepare content
+ var ctrlId = 'myEditor' ;
+ var dCurT = document.getElementById( ctrlId ) ;
+ dCurT.value = sData ;
+
+ // service paths corecting/preparing
+ var sPath2Scin = URL_abs2full( oEditor.FCK.Config.SkinDialogCSS ) ;
+ var sPathCiframe = FCKConfig.BasePath + 'wsc/ciframe.html' ;
+ var sPathFrameset = FCKConfig.BasePath + 'wsc/tmpFrameset.html' ;
+
+ // language abbr standarts comparer
+ var LangComparer = new _SP_FCK_LangCompare() ;
+ LangComparer.setDefaulLangCode( oEditor.FCK.Language.DefaultLanguage ) ;
+
+ // clear user message console (if application was loaded more then after 2 seconds)
+ clearErrorUsermessage() ;
+
+ doSpell( {
+ ctrl : ctrlId,
+ lang : LangComparer.getSPLangCode( oEditor.FCK.Language.GetActiveLanguage() ),
+ winType : 'wsc_frames',// if not defined app will run on winpopup
+
+ // callback binding section
+ onCancel :window._callOnCancel,
+ onFinish :window._callOnFinish,
+
+ // @TODO: basePath assingning
+
+ // some manipulations with client static pages
+ framesetPath : sPathFrameset,
+ iframePath : sPathCiframe,
+
+ // styles defining
+ schemaURI : sPath2Scin
+ } ) ;
+
+ return true ;
+}
+
+ </script>
+</head>
+<body onload="onLoad()" style="padding: 0px; overflow: hidden;">
+ <textarea style="display: none;" id="myEditor" rows="10" cols="40"></textarea>
+ <iframe src="" name="wsc_frames" id="wsc_frames"></iframe>
+</body>
+</html>
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckconfig.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckconfig.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckconfig.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -21,7 +21,7 @@
* Editor configuration settings.
*
* Follow this link for more information:
- * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
+ * http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options
*/
FCKConfig.CustomConfigurationsPath = '' ;
@@ -76,6 +76,9 @@
FCKConfig.FormatOutput = true ;
FCKConfig.FormatIndentator = ' ' ;
+FCKConfig.EMailProtection = 'none' ; // none | encode | function
+FCKConfig.EMailProtectionFunction = 'mt(NAME,DOMAIN,SUBJECT,BODY)' ;
+
FCKConfig.StartupFocus = false ;
FCKConfig.ForcePasteAsPlainText = false ;
FCKConfig.AutoDetectPasteFromWord = true ; // IE only.
@@ -87,7 +90,6 @@
FCKConfig.ToolbarStartExpanded = true ;
FCKConfig.ToolbarCanCollapse = true ;
FCKConfig.IgnoreEmptyParagraphValue = true ;
-FCKConfig.PreserveSessionOnFileBrowser = false ;
FCKConfig.FloatingPanelsZIndex = 10000 ;
FCKConfig.HtmlEncodeOutput = false ;
@@ -103,7 +105,7 @@
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
- ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote'],
+ ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
@@ -128,6 +130,7 @@
[ CTRL + 84 /*T*/, true ],
[ CTRL + 88 /*X*/, true ],
[ CTRL + 86 /*V*/, 'Paste' ],
+ [ CTRL + 45 /*INS*/, true ],
[ SHIFT + 45 /*INS*/, 'Paste' ],
[ CTRL + 88 /*X*/, 'Cut' ],
[ SHIFT + 46 /*DEL*/, 'Cut' ],
@@ -139,11 +142,13 @@
[ CTRL + 73 /*I*/, 'Italic' ],
[ CTRL + 85 /*U*/, 'Underline' ],
[ CTRL + SHIFT + 83 /*S*/, 'Save' ],
- [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ]
+ [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
+ [ SHIFT + 32 /*SPACE*/, 'Nbsp' ]
] ;
-FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form','DivContainer'] ;
FCKConfig.BrowserContextMenuOnCtrl = false ;
+FCKConfig.BrowserContextMenu = 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' ;
@@ -155,7 +160,7 @@
FCKConfig.StylesXmlPath = FCKConfig.EditorPath + 'fckstyles.xml' ;
FCKConfig.TemplatesXmlPath = FCKConfig.EditorPath + 'fcktemplates.xml' ;
-FCKConfig.SpellChecker = 'ieSpell' ; // 'ieSpell' | 'SpellerPages'
+FCKConfig.SpellChecker = 'WSC' ; // 'WSC' | 'SpellerPages' | 'ieSpell'
FCKConfig.IeSpellDownloadUrl = 'http://www.iespell.com/download.php' ;
FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ; // Available extension: .php .cfm .pl
FCKConfig.FirefoxSpellChecker = false ;
@@ -314,3 +319,7 @@
FCKConfig.BackgroundBlockerColor = '#ffffff' ;
FCKConfig.BackgroundBlockerOpacity = 0.50 ;
+
+FCKConfig.MsWebBrowserControlCompat = false ;
+
+FCKConfig.PreventSubmitHandler = false ;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.afp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.afp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<%
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.asp 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.asp 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfc
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.cfc 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfc 2009-07-06 15:24:41 UTC (rev 101620)
@@ -2,7 +2,7 @@
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -190,7 +190,7 @@
lConfigKeys = lConfigKeys & ",FillEmptyBlocks,FormatSource,FormatOutput,FormatIndentator";
lConfigKeys = lConfigKeys & ",StartupFocus,ForcePasteAsPlainText,AutoDetectPasteFromWord,ForceSimpleAmpersand";
lConfigKeys = lConfigKeys & ",TabSpaces,ShowBorders,SourcePopup,ToolbarStartExpanded,ToolbarCanCollapse";
- lConfigKeys = lConfigKeys & ",IgnoreEmptyParagraphValue,PreserveSessionOnFileBrowser,FloatingPanelsZIndex,TemplateReplaceAll,TemplateReplaceCheckbox";
+ lConfigKeys = lConfigKeys & ",IgnoreEmptyParagraphValue,FloatingPanelsZIndex,TemplateReplaceAll,TemplateReplaceCheckbox";
lConfigKeys = lConfigKeys & ",ToolbarLocation,ToolbarSets,EnterMode,ShiftEnterMode,Keystrokes";
lConfigKeys = lConfigKeys & ",ContextMenu,BrowserContextMenuOnCtrl,FontColors,FontNames,FontSizes";
lConfigKeys = lConfigKeys & ",FontFormats,StylesXmlPath,TemplatesXmlPath,SpellChecker,IeSpellDownloadUrl";
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<cfsetting enablecfoutputonly="Yes">
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -97,7 +97,7 @@
lConfigKeys = lConfigKeys & ",FillEmptyBlocks,FormatSource,FormatOutput,FormatIndentator";
lConfigKeys = lConfigKeys & ",StartupFocus,ForcePasteAsPlainText,AutoDetectPasteFromWord,ForceSimpleAmpersand";
lConfigKeys = lConfigKeys & ",TabSpaces,ShowBorders,SourcePopup,ToolbarStartExpanded,ToolbarCanCollapse";
- lConfigKeys = lConfigKeys & ",IgnoreEmptyParagraphValue,PreserveSessionOnFileBrowser,FloatingPanelsZIndex,TemplateReplaceAll,TemplateReplaceCheckbox";
+ lConfigKeys = lConfigKeys & ",IgnoreEmptyParagraphValue,FloatingPanelsZIndex,TemplateReplaceAll,TemplateReplaceCheckbox";
lConfigKeys = lConfigKeys & ",ToolbarLocation,ToolbarSets,EnterMode,ShiftEnterMode,Keystrokes";
lConfigKeys = lConfigKeys & ",ContextMenu,BrowserContextMenuOnCtrl,FontColors,FontNames,FontSizes";
lConfigKeys = lConfigKeys & ",FontFormats,StylesXmlPath,TemplatesXmlPath,SpellChecker,IeSpellDownloadUrl";
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.js 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.js 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -59,8 +59,8 @@
*/
FCKeditor.MinWidth = 750 ;
-FCKeditor.prototype.Version = '2.6' ;
-FCKeditor.prototype.VersionBuild = '18638' ;
+FCKeditor.prototype.Version = '2.6.4.1' ;
+FCKeditor.prototype.VersionBuild = '23187' ;
FCKeditor.prototype.Create = function()
{
@@ -88,7 +88,17 @@
{
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 += '<textarea name="' + this.InstanceName +
+ '" rows="4" cols="40" style="width:' + sWidth +
+ ';height:' + sHeight ;
+
+ if ( this.TabIndex )
+ sHtml += '" tabindex="' + this.TabIndex ;
+
+ sHtml += '">' +
+ this._HTMLEncode( this.Value ) +
+ '<\/textarea>' ;
}
return sHtml ;
@@ -96,6 +106,8 @@
FCKeditor.prototype.ReplaceTextarea = function()
{
+ if ( document.getElementById( this.InstanceName + '___Frame' ) )
+ return ;
if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
{
// We must check the elements firstly using the Id and then the name.
@@ -116,6 +128,10 @@
}
oTextarea.style.display = 'none' ;
+
+ if ( oTextarea.tabIndex )
+ this.TabIndex = oTextarea.tabIndex ;
+
this._InsertHtmlBefore( this._GetConfigHtml(), oTextarea ) ;
this._InsertHtmlBefore( this._GetIFrameHtml(), oTextarea ) ;
}
@@ -158,9 +174,20 @@
catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;
- if (this.ToolbarSet) sLink += '&Toolbar=' + this.ToolbarSet ;
+ if (this.ToolbarSet)
+ sLink += '&Toolbar=' + this.ToolbarSet ;
- return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ;
+ var html = '<iframe id="' + this.InstanceName +
+ '___Frame" src="' + sLink +
+ '" width="' + this.Width +
+ '" height="' + this.Height ;
+
+ if ( this.TabIndex )
+ html += '" tabindex="' + this.TabIndex ;
+
+ html += '" frameborder="0" scrolling="no"></iframe>' ;
+
+ return html ;
}
FCKeditor.prototype._IsCompatibleBrowser = function()
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.lasso 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.lasso 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,52 +25,6 @@
* strict error messages with PHP 5).
*/
-/**
- * Check if browser is compatible with FCKeditor.
- * Return true if is compatible.
- *
- * @return boolean
- */
-function FCKeditor_IsCompatibleBrowser()
-{
- if ( isset( $_SERVER ) ) {
- $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
- }
- else {
- global $HTTP_SERVER_VARS ;
- if ( isset( $HTTP_SERVER_VARS ) ) {
- $sAgent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ;
- }
- else {
- global $HTTP_USER_AGENT ;
- $sAgent = $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
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.pl 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.pl 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,143 +1,143 @@
-#####
-# FCKeditor - The text editor for Internet - http://www.fckeditor.net
-# Copyright (C) 2003-2008 Frederico Caldeira Knabben
-#
-# == BEGIN LICENSE ==
-#
-# Licensed under the terms of any of the following licenses at your
-# choice:
-#
-# - GNU General Public License Version 2 or later (the "GPL")
-# http://www.gnu.org/licenses/gpl.html
-#
-# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
-# http://www.gnu.org/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 Perl.
-#####
-
-#my $InstanceName;
-#my $BasePath;
-#my $Width;
-#my $Height;
-#my $ToolbarSet;
-#my $Value;
-#my %Config;
-
-sub FCKeditor
-{
-
- local($instanceName) = @_;
- $InstanceName = $instanceName;
- $BasePath = '/fckeditor/';
- $Width = '100%';
- $Height = '200';
- $ToolbarSet = 'Default';
- $Value = '';
-}
-
-sub Create
-{
- print &CreateHtml();
-}
-
-sub specialchar_cnv
-{
-
- local($ch) = @_;
-
- $ch =~ s/&/&/g; # &
- $ch =~ s/\"/"/g; #"
- $ch =~ s/\'/'/g; # '
- $ch =~ s/</</g; # <
- $ch =~ s/>/>/g; # >
- return($ch);
-}
-
-sub CreateHtml
-{
-
- $HtmlValue = &specialchar_cnv($Value);
- $Html = '' ;
- if(&IsCompatible()) {
- $Link = $BasePath . "editor/fckeditor.html?InstanceName=$InstanceName";
- if($ToolbarSet ne '') {
- $Link .= "&Toolbar=$ToolbarSet";
- }
- #// Render the linked hidden field.
- $Html .= "<input type=\"hidden\" id=\"$InstanceName\" name=\"$InstanceName\" value=\"$HtmlValue\" style=\"display:none\" />" ;
-
- #// Render the configurations hidden field.
- $cfgstr = &GetConfigFieldString();
- $wk = $InstanceName."___Config";
- $Html .= "<input type=\"hidden\" id=\"$wk\" value=\"$cfgstr\" style=\"display:none\" />" ;
-
- #// Render the editor IFRAME.
- $wk = $InstanceName."___Frame";
- $Html .= "<iframe id=\"$wk\" src=\"$Link\" width=\"$Width\" height=\"$Height\" frameborder=\"0\" scrolling=\"no\"></iframe>";
- } else {
- if($Width =~ /\%/g){
- $WidthCSS = $Width;
- } else {
- $WidthCSS = $Width . 'px';
- }
- if($Height =~ /\%/g){
- $HeightCSS = $Height;
- } else {
- $HeightCSS = $Height . 'px';
- }
- $Html .= "<textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\">$HtmlValue</textarea>";
- }
- return($Html);
-}
-
-sub IsCompatible
-{
-
- $sAgent = $ENV{'HTTP_USER_AGENT'};
- if(($sAgent =~ /MSIE/i) && !($sAgent =~ /mac/i) && !($sAgent =~ /Opera/i)) {
- $iVersion = substr($sAgent,index($sAgent,'MSIE') + 5,3);
- return($iVersion >= 5.5) ;
- } elsif($sAgent =~ /Gecko\//i) {
- $iVersion = substr($sAgent,index($sAgent,'Gecko/') + 6,8);
- return($iVersion >= 20030210) ;
- } elsif($sAgent =~ /Opera\//i) {
- $iVersion = substr($sAgent,index($sAgent,'Opera/') + 6,4);
- return($iVersion >= 9.5) ;
- } elsif($sAgent =~ /AppleWebKit\/(\d+)/i) {
- return($1 >= 522) ;
- } else {
- return(0); # 2.0 PR fix
- }
-}
-
-sub GetConfigFieldString
-{
- $sParams = '';
- $bFirst = 0;
- foreach $sKey (keys %Config) {
- $sValue = $Config{$sKey};
- if($bFirst == 1) {
- $sParams .= '&';
- } else {
- $bFirst = 1;
- }
- $k = &specialchar_cnv($sKey);
- $v = &specialchar_cnv($sValue);
- if($sValue eq "true") {
- $sParams .= "$k=true";
- } elsif($sValue eq "false") {
- $sParams .= "$k=false";
- } else {
- $sParams .= "$k=$v";
- }
- }
- return($sParams);
-}
-
-1;
+#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2009 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/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 Perl.
+#####
+
+#my $InstanceName;
+#my $BasePath;
+#my $Width;
+#my $Height;
+#my $ToolbarSet;
+#my $Value;
+#my %Config;
+
+sub FCKeditor
+{
+
+ local($instanceName) = @_;
+ $InstanceName = $instanceName;
+ $BasePath = '/fckeditor/';
+ $Width = '100%';
+ $Height = '200';
+ $ToolbarSet = 'Default';
+ $Value = '';
+}
+
+sub Create
+{
+ print &CreateHtml();
+}
+
+sub specialchar_cnv
+{
+
+ local($ch) = @_;
+
+ $ch =~ s/&/&/g; # &
+ $ch =~ s/\"/"/g; #"
+ $ch =~ s/\'/'/g; # '
+ $ch =~ s/</</g; # <
+ $ch =~ s/>/>/g; # >
+ return($ch);
+}
+
+sub CreateHtml
+{
+
+ $HtmlValue = &specialchar_cnv($Value);
+ $Html = '' ;
+ if(&IsCompatible()) {
+ $Link = $BasePath . "editor/fckeditor.html?InstanceName=$InstanceName";
+ if($ToolbarSet ne '') {
+ $Link .= "&Toolbar=$ToolbarSet";
+ }
+ #// Render the linked hidden field.
+ $Html .= "<input type=\"hidden\" id=\"$InstanceName\" name=\"$InstanceName\" value=\"$HtmlValue\" style=\"display:none\" />" ;
+
+ #// Render the configurations hidden field.
+ $cfgstr = &GetConfigFieldString();
+ $wk = $InstanceName."___Config";
+ $Html .= "<input type=\"hidden\" id=\"$wk\" value=\"$cfgstr\" style=\"display:none\" />" ;
+
+ #// Render the editor IFRAME.
+ $wk = $InstanceName."___Frame";
+ $Html .= "<iframe id=\"$wk\" src=\"$Link\" width=\"$Width\" height=\"$Height\" frameborder=\"0\" scrolling=\"no\"></iframe>";
+ } else {
+ if($Width =~ /\%/g){
+ $WidthCSS = $Width;
+ } else {
+ $WidthCSS = $Width . 'px';
+ }
+ if($Height =~ /\%/g){
+ $HeightCSS = $Height;
+ } else {
+ $HeightCSS = $Height . 'px';
+ }
+ $Html .= "<textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\">$HtmlValue</textarea>";
+ }
+ return($Html);
+}
+
+sub IsCompatible
+{
+
+ $sAgent = $ENV{'HTTP_USER_AGENT'};
+ if(($sAgent =~ /MSIE/i) && !($sAgent =~ /mac/i) && !($sAgent =~ /Opera/i)) {
+ $iVersion = substr($sAgent,index($sAgent,'MSIE') + 5,3);
+ return($iVersion >= 5.5) ;
+ } elsif($sAgent =~ /Gecko\//i) {
+ $iVersion = substr($sAgent,index($sAgent,'Gecko/') + 6,8);
+ return($iVersion >= 20030210) ;
+ } elsif($sAgent =~ /Opera\//i) {
+ $iVersion = substr($sAgent,index($sAgent,'Opera/') + 6,4);
+ return($iVersion >= 9.5) ;
+ } elsif($sAgent =~ /AppleWebKit\/(\d+)/i) {
+ return($1 >= 522) ;
+ } else {
+ return(0); # 2.0 PR fix
+ }
+}
+
+sub GetConfigFieldString
+{
+ $sParams = '';
+ $bFirst = 0;
+ foreach $sKey (keys %Config) {
+ $sValue = $Config{$sKey};
+ if($bFirst == 1) {
+ $sParams .= '&';
+ } else {
+ $bFirst = 1;
+ }
+ $k = &specialchar_cnv($sKey);
+ $v = &specialchar_cnv($sValue);
+ if($sValue eq "true") {
+ $sParams .= "$k=true";
+ } elsif($sValue eq "false") {
+ $sParams .= "$k=false";
+ } else {
+ $sParams .= "$k=$v";
+ }
+ }
+ return($sParams);
+}
+
+1;
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor.py 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
"""
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
== BEGIN LICENSE ==
@@ -67,7 +67,7 @@
self.InstanceName
)
if (self.ToolbarSet is not None):
- Link += "&ToolBar=%s" % self.ToolbarSet
+ Link += "&Toolbar=%s" % self.ToolbarSet
# Render the linked hidden field
Html += "<input type=\"hidden\" id=\"%s\" name=\"%s\" value=\"%s\" style=\"display:none\" />" % (
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php4.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor_php4.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php4.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,6 +25,52 @@
* instances in PHP pages on server side.
*/
+/**
+ * Check if browser is compatible with FCKeditor.
+ * Return true if is compatible.
+ *
+ * @return boolean
+ */
+function FCKeditor_IsCompatibleBrowser()
+{
+ if ( isset( $_SERVER ) ) {
+ $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+ }
+ else {
+ global $HTTP_SERVER_VARS ;
+ if ( isset( $HTTP_SERVER_VARS ) ) {
+ $sAgent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ;
+ }
+ else {
+ global $HTTP_USER_AGENT ;
+ $sAgent = $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 ;
+}
+
class FCKeditor
{
/**
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php5.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckeditor_php5.php 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckeditor_php5.php 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -25,6 +25,52 @@
* instances in PHP pages on server side.
*/
+/**
+ * Check if browser is compatible with FCKeditor.
+ * Return true if is compatible.
+ *
+ * @return boolean
+ */
+function FCKeditor_IsCompatibleBrowser()
+{
+ if ( isset( $_SERVER ) ) {
+ $sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+ }
+ else {
+ global $HTTP_SERVER_VARS ;
+ if ( isset( $HTTP_SERVER_VARS ) ) {
+ $sAgent = $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ;
+ }
+ else {
+ global $HTTP_USER_AGENT ;
+ $sAgent = $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 ;
+}
+
class FCKeditor
{
/**
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckpackager.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckpackager.xml 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckpackager.xml 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -27,7 +27,7 @@
<Package>
<Header><![CDATA[/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
@@ -77,7 +77,7 @@
<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/fckdebug_empty.js" />
<File path="editor/_source/internals/fckdomtools.js" />
<File path="editor/_source/internals/fcktools.js" />
<File path="editor/_source/internals/fcktools_ie.js" />
@@ -173,7 +173,7 @@
<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/fckdebug_empty.js" />
<File path="editor/_source/internals/fckdomtools.js" />
<File path="editor/_source/internals/fcktools.js" />
<File path="editor/_source/internals/fcktools_gecko.js" />
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckstyles.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckstyles.xml 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckstyles.xml 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fcktemplates.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fcktemplates.xml 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fcktemplates.xml 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckutils.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/fckutils.cfm 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/fckutils.cfm 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,6 +1,6 @@
<!---
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
- * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
Modified: zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/license.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/2.6/fckeditor/license.txt 2009-07-06 12:14:35 UTC (rev 101617)
+++ zope.html/trunk/src/zope/html/fckeditor/2.6.4.1/fckeditor/license.txt 2009-07-06 15:24:41 UTC (rev 101620)
@@ -1,5 +1,5 @@
FCKeditor - The text editor for Internet - http://www.fckeditor.net
-Copyright (C) 2003-2008 Frederico Caldeira Knabben
+Copyright (C) 2003-2009 Frederico Caldeira Knabben
Licensed under the terms of any of the following licenses at your
choice:
Modified: zope.html/trunk/src/zope/html/widget.py
===================================================================
--- zope.html/trunk/src/zope/html/widget.py 2009-07-06 15:20:48 UTC (rev 101619)
+++ zope.html/trunk/src/zope/html/widget.py 2009-07-06 15:24:41 UTC (rev 101620)
@@ -25,7 +25,7 @@
editorWidth = 600
editorHeight = 400
- fckVersion = 2.6
+ fckVersion = '2.6.4.1'
configurationPath = "/@@/zope_fckconfig.js"
toolbarConfiguration = "zope"
More information about the Checkins
mailing list