[Checkins] SVN: zope.html/trunk/src/zope/html/fckeditor/ upgrade FCKEditor to version 2.4.2

Benji York benji at zope.com
Fri Jun 1 16:54:20 EDT 2007


Log message for revision 76138:
  upgrade FCKEditor to version 2.4.2
  

Changed:
  U   zope.html/trunk/src/zope/html/fckeditor/_documentation.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.gif
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/en.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/fr.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/it.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.gif
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/samples/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/fck.afpa.code
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample01.afp
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample02.afp
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample03.afp
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample04.afp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sampleposteddata.afp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample01.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample02.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample03.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample04.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sampleposteddata.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample01.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample02_mx.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/default.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample01.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample02.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample03.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample04.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample05.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.config.js
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample07.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample08.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample09.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample10.html
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11.html
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11_frame.html
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample12.html
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample13.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.asp
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.html
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample01.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample02.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample03.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample04.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sampleposteddata.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample01.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample02.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample03.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample04.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sampleposteddata.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample01.php
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample02.php
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample03.php
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample04.php
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/php/sampleposteddata.php
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/py/
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/py/sample01.py
  A   zope.html/trunk/src/zope/html/fckeditor/_samples/py/sampleposteddata.py
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/sample.css
  U   zope.html/trunk/src/zope/html/fckeditor/_samples/sampleslist.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/001.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/002.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/003.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/004.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/005.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/006.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/007.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/008.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/009.html
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/sampleposteddata.asp
  D   zope.html/trunk/src/zope/html/fckeditor/_testcases/testcases.css
  A   zope.html/trunk/src/zope/html/fckeditor/_upgrade.html
  U   zope.html/trunk/src/zope/html/fckeditor/_whatsnew.html
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenu.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenugroup.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuitem.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuseparator.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_gecko.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_ie.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckeditingarea.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckelementpath.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckenterkey.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckevents.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckicon.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckiecleanup.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckimagepreloader.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckkeystrokehandler.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublock.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublockpanel.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenuitem.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_gecko.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckspecialcombo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstylesloader.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbar.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbutton.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckw3crange.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fck_othercommands.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckfitwindow.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcknamedcommand.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckstylecommand.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktablecommand.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckconstants.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckeditorapi.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckjscoreextensions.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckscriptloader.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fck_constants.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fckeditorapi.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_gecko.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_ie.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_gecko.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_ie.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_contextmenu.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_gecko.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_ie.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_last.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_onload.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckbrowserinfo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcodeformatter.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcommands.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckconfig.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_ie.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcoreextensions.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdebug.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_ie.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdocumentprocessor.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdomtools.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklanguagemanager.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklisthandler.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklistslib.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcknamespace.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckplugins.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckregexlib.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckscriptloader.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbaritems.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbarset.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckurlparams.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_gecko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_ie.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtmlentities.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.htc
  U   zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/showtableborders.htc
  U   zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_editorarea.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_internal.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_showtableborders_gecko.css
  A   zope.html/trunk/src/zope/html/fckeditor/editor/css/images/fck_hiddenfield.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/moz-bindings.xml
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about/lgpl.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_anchor.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_button.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_checkbox.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_colorselector.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_find.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_form.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_hiddenfield.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image_preview.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link/fck_link.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_listprop.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_paste.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_radiobutton.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_replace.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select/fck_select.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_smiley.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_source.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_specialchar.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_table.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_tablecell.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_template.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textarea.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textfield.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/00.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/data.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/diacritic.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/dialogue.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/keyboard_layout.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/multihexa.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/fckblank.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/fckdebug.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/fckdialog.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.original.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/config.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/io.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/util.php
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/test.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmfolders.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmupload.html
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/common.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/fckxml.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.css
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Auth/Default.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/CreateFolder.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFile.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFolder.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/FileUpload.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFolders.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetUploadProgress.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFile.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFolder.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/Thumbnail.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/.htaccess
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/header.cgi
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/iconlookup.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/progress.cgi
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/upload.cgi
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/AuthenticationHandlers.txt
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/license.txt
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/readme.txt
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/config.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/connector.php
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/dtd/iso-lat1.ent
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/ascii.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/binary.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/document2.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/email.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/empty.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/html.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/image.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/info.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/kmplot.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/kmultiple.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/pdf.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/php.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/postscript.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/real_doc.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/sound.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/spreadsheet.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/tar.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/video.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/test.html.suspended
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/testme.php.suspended
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmactualfolder.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmcreatefolder.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmfolders.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmimageeditor.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourceslist.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourcetype.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmupload.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/2x2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/2x2_w.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/ButtonArrow.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder32.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder96.jpg
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderOpened.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderOpened32.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderUp.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/close.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/delete.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/edit.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/editImage.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/ai.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/avi.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/bmp.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/cs.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/default.icon.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/dll.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/doc.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/exe.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/fla.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/gif.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/htm.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/html.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/jpg.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/js.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/mdb.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/mp3.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/pdf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/ppt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/rdp.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/swf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/swt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/txt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/vsd.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/xls.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/xml.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/zip.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/ai.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/avi.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/bmp.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/cs.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/default.icon.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/dll.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/doc.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/exe.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/fla.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/gif.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/htm.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/html.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/jpg.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/js.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/mdb.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/mp3.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/pdf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/ppt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/rdp.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/swf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/swt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/txt.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/vsd.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/xls.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/xml.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/zip.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/spacer.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/close.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/crop.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/flip.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/resize.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/rotate.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/save.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/EditorContent.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/common.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/fckxml.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/wz_jsgraphics.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/class_upload.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/config.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/io.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/upload.asp
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/aspx/upload.aspx
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/config.cfm
  A   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/upload.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/config.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/upload.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/config.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/upload.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/util.php
  U   zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/test.html
  A   zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_ltr.gif
  A   zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_rtl.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/aiua.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/ak.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/alien.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/alien2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/angry.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/angry1.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/apophys.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/assjani.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/asthanos.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bazuzeus.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/beaute.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bigsmile.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/blush.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/boid.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bonk.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bored.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/borg.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/capo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/confused.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/cool.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/crazy.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/cwm14.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/demis_roussos.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/devil.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/devil2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/double0smile.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/eek3.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/eltaf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/gele.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/halm.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/happy.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon12.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon23.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon26.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_angel.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_bandit.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_bravo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_clown.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/jesors.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/jesors1.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/lol3.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/love.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/mad.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/megaphone.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/mmm.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/music.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/notify.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/nuts.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/obanon.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/ouaip.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/pleure.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/plugin.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/question.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/question2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rasta2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rastapop.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rosebud.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sad.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sad2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/shocked.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sick.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sick2.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/slaap.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sleep.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/smile.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/smiley_peur.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sors.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sovxx.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/spamafote.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tap67.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/thumbdown.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/thumbup.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tigi.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/toad666.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tongue.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tuffgong.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/urgeman.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/vanadium.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wink.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/worship.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wouaf.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wow.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/xp1700.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/yltype.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/yopyopyop.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/youpi.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/zoor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/js/fck_startup.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_1.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_2.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_1.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_2.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/_getfontformat.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/_translationstatus.txt
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/af.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ar.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/bg.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/bn.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/bs.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ca.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/cs.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/da.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/de.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/el.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-au.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-ca.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-uk.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/en.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/eo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/es.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/et.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/eu.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/fa.js
  D   zope.html/trunk/src/zope/html/fckeditor/editor/lang/fcklanguagemanager.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/fi.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/fo.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/fr.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/gl.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/he.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/hi.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/hr.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/hu.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/it.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ja.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/km.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ko.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/lt.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/lv.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/mn.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ms.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/lang/nb.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/nl.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/no.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/pl.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt-br.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ro.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/ru.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/sk.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/sl.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr-latn.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/sv.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/th.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/tr.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/uk.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/vi.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh-cn.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/autogrow/
  A   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/autogrow/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fck_placeholder.html
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/de.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/en.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/fr.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/it.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/pl.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/placeholder.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/simplecommands/fckplugin.js
  U   zope.html/trunk/src/zope/html/fckeditor/editor/plugins/tablecommands/fckplugin.js
  A   zope.html/trunk/src/zope/html/fckeditor/editor/skins/_fckviewstrips.html
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_contextmenu.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_dialog.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_editor.css
  A   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_strip.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/images/toolbar.start.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/about.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/anchor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bgcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bold.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bulletedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/button.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/checkbox.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/copy.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/cut.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/docprops.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/find.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/flash.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/form.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/hiddenfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/image.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/imagebutton.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/indent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/inserthorizontalrule.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/insertorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/insertunorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/italic.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifycenter.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyfull.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyleft.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyright.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/link.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/newpage.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/numberedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/outdent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pagebreak.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/paste.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pastetext.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pasteword.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/preview.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/print.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/radio.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/redo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/removeformat.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/replace.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/save.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/select.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/selectall.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/showdetails.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/showtableborders.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/smiley.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/source.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/specialchar.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/spellcheck.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/strikethrough.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/subscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/superscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/table.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablecell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeletecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeletecolumns.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeleterows.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertcolumn.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertrow.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablemergecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablesplitcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/templates.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textarea.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/underline.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/undo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/universalkey.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/unlink.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/unorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_contextmenu.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_dialog.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_editor.css
  A   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_strip.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/images/toolbar.end.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/images/toolbar.start.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/about.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/anchor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bgcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bold.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bulletedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/button.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/checkbox.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/copy.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/cut.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/docprops.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/find.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/flash.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/fontstyleadv.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/form.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/hidden.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/hiddenfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/image.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/imagebutton.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/indent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/input.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/inserthorizontalrule.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/insertorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/insertunorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/italic.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifycenter.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyfull.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyleft.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyright.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/link.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/mail.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/new.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/newpage.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/numberedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/open.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/outdent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pagebreak.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/paste.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pastetext.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pasteword.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/preview.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/print.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/radio.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/redo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/removeformat.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/replace.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/save.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/select.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/selectall.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/showdetails.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/showtableborders.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/smiley.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/source.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/specialchar.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/spellcheck.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/strikethrough.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/subscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/superscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/table.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablecell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeletecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeletecolumns.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeleterows.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertcolumn.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertrow.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablemergecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablesplitcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/templates.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textarea.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/underline.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/undo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/universalkey.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/unlink.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/unorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_contextmenu.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_dialog.css
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_editor.css
  A   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_strip.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif
  U   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/images/toolbar.start.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/about.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/anchor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bgcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bold.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bulletedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/button.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/checkbox.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/copy.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/cut.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/docprops.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/find.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/flash.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/form.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/hiddenfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/image.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/imagebutton.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/indent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/inserthorizontalrule.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/insertorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/insertunorderedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/italic.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifycenter.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyfull.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyleft.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyright.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/link.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/newpage.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/numberedlist.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/outdent.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pagebreak.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/paste.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pastetext.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pasteword.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/preview.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/print.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/radio.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/redo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/removeformat.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/replace.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/save.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/select.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/selectall.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/showdetails.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/showtableborders.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/smiley.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/source.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/specialchar.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/spellcheck.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/strikethrough.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/subscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/superscript.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/table.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablecell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeletecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeletecolumns.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeleterows.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertcolumn.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertrow.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablemergecells.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablesplitcell.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/templates.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textarea.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textcolor.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textfield.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/underline.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/undo.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/universalkey.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/unlink.gif
  D   zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/unorderedlist.gif
  U   zope.html/trunk/src/zope/html/fckeditor/fckconfig.js
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.afp
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.asp
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfc
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfm
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.js
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.lasso
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.php
  U   zope.html/trunk/src/zope/html/fckeditor/fckeditor.pl
  A   zope.html/trunk/src/zope/html/fckeditor/fckeditor.py
  A   zope.html/trunk/src/zope/html/fckeditor/fckeditor_php4.php
  A   zope.html/trunk/src/zope/html/fckeditor/fckeditor_php5.php
  A   zope.html/trunk/src/zope/html/fckeditor/fckpackager.xml
  U   zope.html/trunk/src/zope/html/fckeditor/fckstyles.xml
  U   zope.html/trunk/src/zope/html/fckeditor/fcktemplates.xml
  U   zope.html/trunk/src/zope/html/fckeditor/htaccess.txt
  U   zope.html/trunk/src/zope/html/fckeditor/license.txt

-=-
Modified: zope.html/trunk/src/zope/html/fckeditor/_documentation.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_documentation.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_documentation.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,38 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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>FCKeditor - Documentation</title>
-		<style>
-			BODY { FONT-FAMILY: Arial, Verdana, Sans-Serif }
-			P { MARGIN-LEFT: 20px }
-			</style>
-	</head>
-	<body>
-		<h1>FCKeditor Documentation</h1>
-		<p>You can find all the available documentation for FCKeditor online, at our wiki 
-			web site:</p>
-		<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
-			<p><a href="http://wiki.fckeditor.net/">http://wiki.fckeditor.net/</a></p>
-		</blockquote>
-	</body>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Documentation</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<style type="text/css">
+		body { font-family: arial, verdana, sans-serif }
+		p { margin-left: 20px }
+	</style>
+</head>
+<body>
+	<h1>
+		FCKeditor Documentation</h1>
+	<p>
+		You can find the official documentation for FCKeditor online, at <a href="http://wiki.fckeditor.net/">
+			http://wiki.fckeditor.net/</a>.</p>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	This is the sample plugin definition file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 sample plugin definition file.
  */
 
 // Register the related commands.

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/find.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: find.html
- * 	This is the sample "Find" plugin window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 sample "Find" plugin window.
 -->
 <html>
 	<head>
@@ -30,7 +34,7 @@
 	// Whole word is available on IE only.
 	if ( oEditor.FCKBrowserInfo.IsIE )
 		document.getElementById('divWord').style.display = '' ;
-	
+
 	// First of all, translate the dialog box texts.
 	oEditor.FCKLanguageManager.TranslatePage( document ) ;
 
@@ -39,7 +43,7 @@
 
 function btnStat(frm)
 {
-	document.getElementById('btnFind').disabled = 
+	document.getElementById('btnFind').disabled =
 		( document.getElementById('txtFind').value.length == 0 ) ;
 }
 
@@ -73,11 +77,11 @@
 		var sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
 	else
 		var sExpr = document.getElementById('txtFind').value ;
-		
+
 	return sExpr ;
 }
 
-function GetCase() 
+function GetCase()
 {
 	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
 }
@@ -86,7 +90,7 @@
 {
 	if ( document.getElementById('txtFind').value.length == 0 )
 		return ;
-	
+
 	if ( oEditor.FCKBrowserInfo.IsIE )
 		FindIE() ;
 	else
@@ -101,15 +105,15 @@
 		oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
 
 	var iFlags = 0 ;
-	
+
 	if ( chkCase.checked )
 		iFlags = iFlags | 4 ;
-	
+
 	if ( chkWord.checked )
 		iFlags = iFlags | 2 ;
-	
+
 	var bFound = oRange.findText( document.getElementById('txtFind').value, 1, iFlags ) ;
-	
+
 	if ( bFound )
 	{
 		oRange.scrollIntoView() ;
@@ -128,10 +132,10 @@
 {
 	var bCase = document.getElementById('chkCase').checked ;
 	var bWord = document.getElementById('chkWord').checked ;
-	
+
 	// window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;
 	oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) ;
-	
+
 }
 		</script>
 	</head>
@@ -154,11 +158,11 @@
 			</tr>
 			<tr>
 				<td valign="bottom" colSpan="3">
-					&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgMyReplaceCaseChk">Match 
+					&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgMyReplaceCaseChk">Match
 						case</label>
 					<br>
 					<div id="divWord" style="DISPLAY: none">
-						&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgMyReplaceWordChk">Match 
+						&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgMyReplaceWordChk">Match
 							whole word</label>
 					</div>
 				</td>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/en.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/en.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: en.js
- * 	English language file for the sample plugin.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English language file for the sample plugin.
  */
 
 FCKLang['DlgMyReplaceTitle']		= 'Plugin - Replace' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/fr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/fr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fr.js
- * 	French language file for the sample plugin.
- * 
- * File Authors:
- * 		Benjamin Cartereau (b.cartereau at infass.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * French language file for the sample plugin.
  */
 
 FCKLang['DlgMyReplaceTitle']		= 'Plugin - Remplacer' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/it.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/lang/it.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: it.js
- * 	Italian language file for the sample plugin.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Italian language file for the sample plugin.
  */
 
 FCKLang['DlgMyReplaceTitle']		= 'Plugin - Sostituisci' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/findreplace/replace.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: replace.html
- * 	This is the sample "Replace" plugin window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 sample "Replace" plugin window.
 -->
 <html>
 	<head>
@@ -35,8 +39,8 @@
 
 function btnStat(frm)
 {
-	document.getElementById('btnReplace').disabled = 
-		document.getElementById('btnReplaceAll').disabled = 
+	document.getElementById('btnReplace').disabled =
+		document.getElementById('btnReplaceAll').disabled =
 			( document.getElementById('txtFind').value.length == 0 ) ;
 }
 
@@ -61,7 +65,7 @@
 		if ( ! replaceAll && hasFound )
 			return true ;
 	}
-	
+
 	return hasFound ;
 }
 
@@ -71,11 +75,11 @@
 		var sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
 	else
 		var sExpr = document.getElementById('txtFind').value ;
-		
+
 	return sExpr ;
 }
 
-function GetCase() 
+function GetCase()
 {
 	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
 }
@@ -109,7 +113,7 @@
 				</td>
 			</tr>
 			<tr>
-				<td vAlign="top" nowrap><label for="txtReplace" fckLang="DlgMyReplaceReplaceLbl">Replace 
+				<td vAlign="top" nowrap><label for="txtReplace" fckLang="DlgMyReplaceReplaceLbl">Replace
 						with:</label>
 				</td>
 				<td vAlign="top"><input id="txtReplace" style="WIDTH: 100%" tabIndex="2" type="text">
@@ -119,10 +123,10 @@
 				</td>
 			</tr>
 			<tr>
-				<td vAlign="bottom" colSpan="3">&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgMyReplaceCaseChk">Match 
+				<td vAlign="bottom" colSpan="3">&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgMyReplaceCaseChk">Match
 						case</label>
 					<br>
-					&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgMyReplaceWordChk">Match 
+					&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgMyReplaceWordChk">Match
 						whole word</label>
 				</td>
 			</tr>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/samples/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/samples/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/_plugins/samples/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,73 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	This is a sample plugin definition file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a sample plugin definition file.
  */
 
-// Here we define our custom Style combo, with a custom widths.
+// Here we define our custom Style combo, with custom widths.
 var oMyBigStyleCombo = new FCKToolbarStyleCombo() ;
 oMyBigStyleCombo.FieldWidth = 250 ;
 oMyBigStyleCombo.PanelWidth = 300 ;
-FCKToolbarItems.RegisterItem( 'My_BigStyle', oMyBigStyleCombo ) ;
\ No newline at end of file
+FCKToolbarItems.RegisterItem( 'My_BigStyle', oMyBigStyleCombo ) ;
+
+
+// ##### Defining a custom context menu entry.
+
+// ## 1. Define the command to be executed when selecting the context menu item.
+var oMyCMCommand = new Object() ;
+oMyCMCommand.Name = 'OpenImage' ;
+
+// This is the standard function used to execute the command (called when clicking in the context menu item).
+oMyCMCommand.Execute = function()
+{
+	// This command is called only when an image element is selected (IMG).
+	// Get image URL (src).
+	var sUrl = FCKSelection.GetSelectedElement().src ;
+
+	// Open the URL in a new window.
+	window.top.open( sUrl ) ;
+}
+
+// This is the standard function used to retrieve the command state (it could be disabled for some reason).
+oMyCMCommand.GetState = function()
+{
+	// Let's make it always enabled.
+	return FCK_TRISTATE_OFF ;
+}
+
+// ## 2. Register our custom command.
+FCKCommands.RegisterCommand( 'OpenImage', oMyCMCommand ) ;
+
+// ## 3. Define the context menu "listener".
+var oMyContextMenuListener = new Object() ;
+
+// This is the standard function called right before sowing the context menu.
+oMyContextMenuListener.AddItems = function( contextMenu, tag, tagName )
+{
+	// Let's show our custom option only for images.
+	if ( tagName == 'IMG' )
+	{
+		contextMenu.AddSeparator() ;
+		contextMenu.AddItem( 'OpenImage', 'Open image in a new window (Custom)' ) ;
+	}
+}
+
+// ## 4. Register our context menu listener.
+FCK.ContextMenu.RegisterListener( oMyContextMenuListener ) ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/fck.afpa.code
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/fck.afpa.code	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/fck.afpa.code	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +1,26 @@
-DEFINE CLASS fckeditor AS custom
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 class definition file for the sample pages.
+ *
+
+ DEFINE CLASS fckeditor AS custom
 	cInstanceName =""
 	BasePath =""
 	cWIDTH =""
@@ -41,8 +63,8 @@
 		IF THIS.IsCompatible()
 			lcLink = THIS.BasePath+[editor/fckeditor.html?InstanceName=]+THIS.cInstanceName
 
-			IF ( THIS.ToolbarSet # '' )
-				lcLink = lcLink + [Toolbar=]+THIS.ToolbarSet
+			IF ( !THIS.ToolbarSet == '' )
+				lcLink = lcLink + [&Toolbar=]+THIS.ToolbarSet
 			ENDIF
 
 && Render the LINKED HIDDEN FIELD.
@@ -117,5 +139,28 @@
 		NEXT
 		RETURN(sParams)
 	ENDFUNC
+&& -----------------------------------------------------------------------
+&& This function removes unwanted characters in URL parameters mostly entered by hackers
+
+	FUNCTION StripAttacks
+		LPARAMETERS tcString
+		IF !EMPTY(tcString)
+			tcString=STRTRAN(tcString,"&","")
+			tcString=STRTRAN(tcString,"?","")
+			tcString=STRTRAN(tcString,";","")
+			tcString=STRTRAN(tcString,"!","")
+			tcString=STRTRAN(tcString,"<%","")
+			tcString=STRTRAN(tcString,"%>","")
+			tcString=STRTRAN(tcString,"<","")
+			tcString=STRTRAN(tcString,">","")
+			tcString=STRTRAN(tcString,"..","")
+			tcString=STRTRAN(tcString,"/","")
+			tcString=STRTRAN(tcString,"\","")
+			tcString=STRTRAN(tcString,":","")
+		ELSE
+			tcString=""
+		ENDIF
+		RETURN (tcString)
+
 ENDDEFINE
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample01.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample01.afp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample01.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,30 @@
-<% 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: sampleposteddata.php
- * 	This page lists the data posted by a form.
- * 
- * Version:  1.0 
- * Modified: 2005-07-01
- * 
- * File Authors: Soenke Freitag (www.afp-hosting.de)
- * 		
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
+ *
 %>
 
 <html>
 	<head>
-		<title>FCKeditor - Sample</title>
+		<title>FCKeditor - AFP Sample 1</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" />
@@ -32,17 +36,17 @@
 		<form action="sampleposteddata.afp" method="post" target="_blank">
 <%
 
-sBasePath="../../fckeditor/"		&& Change this to your local path
+			sBasePath="../../../fckeditor/"		&& Change this to your local path
 
-lcText=[This is some <strong>sample text</strong>. You are using ]
-lcText=lcText+[<a href='http://www.fckeditor.net/'>FCKeditor</a>.]
+			lcText=[This is some <strong>sample text</strong>. You are using ]
+			lcText=lcText+[<a href='http://www.fckeditor.net/'>FCKeditor</a>.]
 
-oFCKeditor = CREATEOBJECT("FCKeditor")
-oFCKeditor.fckeditor("FCKeditor1")
-oFCKeditor.BasePath	= sBasePath 
-oFCKeditor.cValue	= lcText
+			oFCKeditor = CREATEOBJECT("FCKeditor")
+			oFCKeditor.fckeditor("FCKeditor1")
+			oFCKeditor.BasePath	= sBasePath
+			oFCKeditor.cValue	= lcText
 
-? oFCKeditor.Create() 
+			? oFCKeditor.Create()
 
 %>
 			<br>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample02.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample02.afp	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample02.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,113 @@
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de)
+ *
+%>
+
+<html>
+	<head>
+		<title>FCKeditor - AFP Sample 2</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 - AFP - 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:&nbsp;
+				</td>
+				<td>
+					<select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
+					</select>
+				</td>
+			</tr>
+		</table>
+		<br>
+		<form action="sampleposteddata.afp" method="post" target="_blank">
+<%
+
+			sBasePath="../../../fckeditor/"						&& Change this to your local path
+
+			oFCKeditor = CREATEOBJECT("FCKeditor")
+			oFCKeditor.fckeditor("FCKeditor1")
+
+			lcLanguage=""										&& Initialize Variable
+			lcLanguage=request.querystring("Lang")				&& Request Parameter
+			lcLanguage=oFCKeditor.StripAttacks(lcLanguage)		&& Remove special escape characters
+			IF EMPTY(lcLanguage)
+				oFCKeditor.aconfig[1,1]="AutoDetectLanguage"
+				oFCKeditor.aconfig[1,2]="true"
+				oFCKeditor.aconfig[2,1]="DefaultLanguage"
+				oFCKeditor.aconfig[2,2]="en"
+			ELSE
+				oFCKeditor.aconfig[1,1]="AutoDetectLanguage"
+				oFCKeditor.aconfig[1,2]="false"
+				oFCKeditor.aconfig[2,1]="DefaultLanguage"
+				oFCKeditor.aconfig[2,2]=lcLanguage
+			ENDIF
+
+			lcText=[This is some <strong>sample text</strong>. You are using ]
+			lcText=lcText+[<a href='http://www.fckeditor.net/'>FCKeditor</a>.]
+
+			oFCKeditor.BasePath	= sBasePath
+			oFCKeditor.cValue	= lcText
+
+			? oFCKeditor.Create()
+
+%>
+			<br>
+			<input type="submit" value="Submit">
+		</form>
+	</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample03.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample03.afp	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample03.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,91 @@
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de)
+ *
+%>
+
+<html>
+	<head>
+		<title>FCKeditor - AFP Sample 3</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 - AFP - 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:&nbsp;
+				</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.afp" method="post" target="_blank">
+<%
+
+			sBasePath="../../../fckeditor/"						&& Change this to your local path
+
+			oFCKeditor = CREATEOBJECT("FCKeditor")
+			oFCKeditor.fckeditor("FCKeditor1")
+
+			lcToolbar=request.querystring("Toolbar")			&& Request Parameter
+			lcToolbar=oFCKeditor.StripAttacks(lcToolbar)		&& Remove special escape characters
+			IF !EMPTY(lcToolbar)
+				oFCKeditor.ToolbarSet=lcToolbar
+			ENDIF
+
+			lcText=[This is some <strong>sample text</strong>. You are using ]
+			lcText=lcText+[<a href='http://www.fckeditor.net/'>FCKeditor</a>.]
+
+			oFCKeditor.BasePath	= sBasePath
+			oFCKeditor.cValue	= lcText
+
+			? oFCKeditor.Create()
+
+%>
+			<br>
+			<input type="submit" value="Submit">
+		</form>
+	</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample04.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample04.afp	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sample04.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,98 @@
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de)
+ *
+%>
+
+<html>
+	<head>
+		<title>FCKeditor - AFP Sample 4</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 - AFP - 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:&nbsp;
+				</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.afp" method="post" target="_blank">
+<%
+
+			sBasePath="../../../fckeditor/"						&& <-- Change this to your local path
+
+			oFCKeditor = CREATEOBJECT("FCKeditor")
+			oFCKeditor.fckeditor("FCKeditor1")
+
+			lcSkin=request.querystring("Skin")					&& Request Parameter
+			lcSkin=oFCKeditor.StripAttacks(lcSkin)				&& Remove special escape characters
+			IF !EMPTY(lcSkin)
+				oFCKeditor.aconfig[1,1]="SkinPath"
+				oFCKeditor.aconfig[1,2]="/fckeditor/editor/skins/"+lcSkin+"/"	&& <-- Change this to your local path
+			ENDIF
+
+			lcText=[This is some <strong>sample text</strong>. You are using ]
+			lcText=lcText+[<a href='http://www.fckeditor.net/'>FCKeditor</a>.]
+
+			oFCKeditor.BasePath	= sBasePath
+			oFCKeditor.cValue	= lcText
+
+			? oFCKeditor.Create()
+
+%>
+			<br>
+			<input type="submit" value="Submit">
+		</form>
+	</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sampleposteddata.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sampleposteddata.afp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/afp/sampleposteddata.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,30 @@
-<% 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: sampleposteddata.php
- * 	This page lists the data posted by a form.
- * 
- * Version:  1.0 
- * Modified: 2005-07-01
- * 
- * File Authors: Soenke Freitag (www.afp-hosting.de)
- * 		
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
+ *
 %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
-		<title>FCKeditor - Samples - Posted Data</title>
+		<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" />
@@ -41,10 +45,12 @@
 		FOR lnLoop=1 TO MEMLINES(lcForm)
 			lcZeile=ALLTRIM(MLINE(lcForm,lnLoop))
 			IF AT("=",lcZeile)>0
-				lcVariable=UPPER(ALLTRIM(LEFT(lcZeile,AT("=",lcZeile)-1)))  
+				lcVariable=UPPER(ALLTRIM(LEFT(lcZeile,AT("=",lcZeile)-1)))
 				lcWert=ALLTRIM(RIGHT(lcZeile,LEN(lcZeile)-AT("=",lcZeile)))
-				lcWert=Server.UrlDecode( lcWert ) 
-	
+				lcWert=Server.UrlDecode( lcWert )
+				lcWert=STRTRAN(lcWert,"<","&lt;")
+				lcWert=STRTRAN(lcWert,">","&gt;")	&& ... if wanted remove/translate HTML Chars ...
+
 				? [<tr><td>]+lcVariable+[ =</td><td>]+lcWert+[</td></tr>]
 			ENDIF
 		NEXT

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample01.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample01.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample01.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,40 +1,47 @@
-<%@ CodePage=65001 Language="VBScript"%>
+<%@  codepage="65001" language="VBScript" %>
 <% Option Explicit %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample01.asp
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
 <% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
 <!-- #INCLUDE file="../../fckeditor.asp" -->
-<!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 - ASP - Sample 1</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
-		enabled.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-<%
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>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 - ASP - Sample 1
+	</h1>
+	<div>
+		This sample displays a normal HTML form with an FCKeditor with full features enabled.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<%
 ' 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.
@@ -47,9 +54,9 @@
 oFCKeditor.BasePath	= sBasePath
 oFCKeditor.Value	= "This is some <strong>sample text</strong>. You are using <a href=""http://www.fckeditor.net/"">FCKeditor</a>."
 oFCKeditor.Create "FCKeditor1"
-%>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+		%>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample02.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample02.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample02.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <% Option Explicit %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample02.asp
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
 <% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
 <!-- #INCLUDE file="../../fckeditor.asp" -->
@@ -37,7 +41,7 @@
 		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
 	}
 	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-}	
+}
 
 function AddComboOption(combo, optionText, optionValue)
 {
@@ -47,7 +51,7 @@
 
 	oOption.innerHTML = optionText ;
 	oOption.value     = optionValue ;
-	
+
 	return oOption ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample03.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample03.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample03.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <% Option Explicit %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample03.asp
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
 <% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
 <!-- #INCLUDE file="../../fckeditor.asp" -->
@@ -75,7 +79,7 @@
 oFCKeditor.BasePath = sBasePath
 
 If Request.QueryString("Toolbar") <> "" Then
-	oFCKeditor.ToolbarSet = Request.QueryString("Toolbar")
+	oFCKeditor.ToolbarSet = Server.HTMLEncode( Request.QueryString("Toolbar") )
 End If
 
 oFCKeditor.Value = "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/_samples/asp/sample04.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample04.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sample04.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <% Option Explicit %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample04.asp
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
 <% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %>
 <!-- #INCLUDE file="../../fckeditor.asp" -->
@@ -32,11 +36,11 @@
 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 = '' ;
 }
@@ -81,7 +85,7 @@
 oFCKeditor.BasePath = sBasePath
 
 If Request.QueryString("Skin") <> "" Then
-	oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/" & Request.QueryString("Skin") + "/"
+	oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/" & Server.HTMLEncode( Request.QueryString("Skin") ) + "/"
 End If
 
 oFCKeditor.Value = "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/_samples/asp/sampleposteddata.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sampleposteddata.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/asp/sampleposteddata.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <% Option Explicit %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleposteddata.asp
- * 	This page lists the data posted by a form.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
@@ -35,9 +39,9 @@
 				<td noWrap>Field Name&nbsp;&nbsp;</td>
 				<td>Value</td>
 			</tr>
-			<% 
+			<%
 			Dim sForm
-			For Each sForm in Request.Form 
+			For Each sForm in Request.Form
 			%>
 			<tr>
 				<td valign="top" nowrap><b><%=sForm%></b></td>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample01.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample01.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample01.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,10 +1,25 @@
 <cfsetting enablecfoutputonly="true" showdebugoutput="false">
-<!--- @Packager.Header
-<FileDescription>
-	Sample page for ColdFusion.
-</FileDescription>
-<Author name="Hendrik Kramer" email="hk at lwd.de" />
-<Author name="Mark Woods" email="mark at thickpaddy.com" />
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 for ColdFusion.
 --->
 
 <cfoutput>
@@ -20,16 +35,15 @@
 <body>
 
 <h1>FCKeditor - ColdFusion - Sample 1</h1>
-	
-This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Custom Tag / Module.<br>
-ColdFusion is a registered trademark and product of <a href="http://www.macromedia.com/software/coldfusion/" target="_blank">Macromedia, Inc</a>.
+
+This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Custom Tag / Module.
 <hr>
 <form method="POST" action="#cgi.script_name#">
 </cfoutput>
 
-<cfmodule 
+<cfmodule
 	template="../../fckeditor.cfm"
-	basePath="/fckeditor/"
+	basePath="#Left(cgi.script_name, FindNoCase('_samples', cgi.script_name)-1)#"
 	instanceName="myEditor"
 	value='This is some sample text. You are using <a href="http://fckeditor.net/" target="_blank">FCKeditor</a>.'
 	width="100%"
@@ -44,6 +58,7 @@
 
 <cfif isDefined( 'FORM.fieldnames' )>
 	<cfoutput>
+	<hr />
 	<style>
 	<!--
 		td, th { font: 11px Verdana, Arial, Helv, Helvetica, sans-serif; }

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample02_mx.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample02_mx.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/cfm/sample02_mx.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,45 @@
 <cfsetting enablecfoutputonly="true">
-<!--- @Packager.Header
-<FileDescription>
-	Sample page for ColdFusion MX.
-</FileDescription>
-<Author name="Hendrik Kramer" email="hk at lwd.de" />
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 for ColdFusion MX.
 --->
 
 <!--- ::
 	  * You must set the url path to the base directory for your media files (images, flash, files)
 	  * The best position for this variable is in your Application.cfm file
-	  * 
+	  *
 	  * Possible variable scopes are:
-	  * <cfset APPLICATION.userFilesPath = "/UserFiles/">
+	  * <cfset APPLICATION.userFilesPath = "/userfiles/">
 	  * OR:
-	  * <cfset SERVER.userFilesPath = "/UserFiles/">
+	  * <cfset SERVER.userFilesPath = "/userfiles/">
+	  * OR:
+	  * <cfset request.FCKeditor.userFilesPath = "/userfiles/">
+	  * OR:
+	  * <cfset application.FCKeditor.userFilesPath = "/userfiles/">
+	  * OR:
+	  * <cfset server.FCKeditor.userFilesPath = "/userfiles/">
 	  *
 	  * Note #1: Do _not_ set the physical directory on your server, only a path relative to your current webroot
 	  * Note #2: Directories will be automatically created
 	  :: --->
-<cfset APPLICATION.userFilesPath = "/UserFiles/">
 
 <cfoutput>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
@@ -32,46 +53,38 @@
 <body>
 <h1>FCKeditor - ColdFusion Component (CFC) - Sample 2</h1>
 
-This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Component.<br>
-ColdFusion is a registered trademark and product of <a href="http://www.macromedia.com/software/coldfusion/" target="_blank">Macromedia, Inc</a>.
+This sample displays a normal HTML form with a FCKeditor with full features enabled; invoked by a ColdFusion Component.
 <hr>
+
 <form method="POST" action="#cgi.script_name#">
 </cfoutput>
 
 <cfif listFirst( server.coldFusion.productVersion ) LT 6>
-	<cfoutput><br><em style="color: red;">This sample work only with a ColdFusion MX server and higher, because it uses some advantages of this version.</em></cfoutput>
+	<cfoutput><br><em style="color: red;">This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.</em></cfoutput>
 	<cfabort>
 </cfif>
 
-<!--- 
-	Note: You must first create a mapping in your coldfusion administrator to call the component fckeditor.cfc
-	in the root folder of this zip archive.
-	A relative path is not allowed. See your coldfusion documentation for more information.
- --->
 <cfscript>
-	// create a pseudo mapping for this demo only!
-	factory = createObject('java','coldfusion.server.ServiceFactory');
-	mappings = factory.runtimeservice.getMappings();
-	mappings['/fckeditor2'] = expandPath("../.."); // fckeditor.cfc resides two paths higher than this sample file.
-	// end create a pseudo mapping for this demo only!
+	// Calculate basepath for FCKeditor. It's in the folder right above _samples
+	basePath = Left(cgi.script_name, FindNoCase('_samples', cgi.script_name)-1);
 
-	fckEditor = createObject("component", "/fckeditor2/fckeditor");
+	fckEditor = createObject("component", "#basePath#fckeditor");
 	fckEditor.instanceName	= "myEditor";
 	fckEditor.value			= 'This is some sample text. You are using <a href="http://fckeditor.net/" target="_blank">FCKeditor</a>.';
-	fckEditor.basePath		= "/fckeditor/";
+	fckEditor.basePath		= basePath;
 	fckEditor.width			= "100%";
-	fckEditor.height		= 200;
+	fckEditor.height		= 300;
 	fckEditor.create(); // create the editor.
 </cfscript>
 
 <cfoutput>
 <br />
 <input type="submit" value="Submit">
-<br />
+<hr />
 </cfoutput>
 
-<cfdump 
-	var="#FORM#" 
+<cfdump
+	var="#FORM#"
 	label="Dump of FORM Variables"
 >
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/default.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/default.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/default.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: default.html
- * 	Samples Frameset page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Samples Frameset page.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <html>
 	<head>
 		<title>FCKeditor - Samples</title>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample01.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample01.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample01.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,37 +1,44 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample01.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 1</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
-		enabled.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+<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 1
+	</h1>
+	<div>
+		This sample displays a normal HTML form with an FCKeditor with full features enabled.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
@@ -44,9 +51,9 @@
 oFCKeditor.Value	= 'This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>
\ No newline at end of file
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample02.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample02.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample02.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,34 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample02.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-		<script type="text/javascript">
+<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">
 
 window.onload = function()
 {
@@ -38,19 +42,22 @@
 	oFCKeditor.ReplaceTextarea() ;
 }
 
-		</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 2</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
-		enabled. It uses the "ReplaceTextarea" command to create the editor.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<div>
-				<textarea name="FCKeditor1" style="WIDTH: 100%; HEIGHT: 200px">This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</textarea>
-			</div>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 2</h1>
+	<div>
+		This sample displays a normal HTML form with an FCKeditor with full features enabled.
+		It uses the "ReplaceTextarea" command to create the editor.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<div>
+			<textarea name="FCKeditor1" rows="10" cols="80" style="width: 100%; height: 200px">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt;.</textarea>
+		</div>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample03.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample03.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample03.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,45 +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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample03.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-			<script type="text/javascript">
+<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">
 
+var bIsLoaded = false ;
+
 function FCKeditor_OnComplete( editorInstance )
 {
-	var iCounter = 0 ;
+	if ( bIsLoaded )
+		return ;
+
 	var oCombo = document.getElementById( 'cmbLanguages' ) ;
+
+	var aLanguages = new Array() ;
+
 	for ( code in editorInstance.Language.AvailableLanguages )
-	{
-		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
-		iCounter++ ;
-	}
+		aLanguages.push( { Code : code, Name : editorInstance.Language.AvailableLanguages[code] } ) ;
+
+	aLanguages.sort( SortLanguage ) ;
+
+	for ( var i = 0 ; i < aLanguages.length ; i++ )
+		AddComboOption( oCombo, aLanguages[i].Name + ' (' + aLanguages[i].Code + ')', aLanguages[i].Code ) ;
+
 	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-	
-	document.getElementById('eNumLangs').innerHTML = '(' + iCounter + ' languages available!)' ;
-}	
 
+	document.getElementById('eNumLangs').innerHTML = '(' + aLanguages.length + ' languages available!)' ;
+
+	bIsLoaded = true ;
+}
+
+function SortLanguage( langA, langB )
+{
+	return ( langA.Name < langB.Name ? -1 : langA.Name > langB.Name ? 1 : 0 ) ;
+}
+
 function AddComboOption(combo, optionText, optionValue)
 {
 	var oOption = document.createElement("OPTION") ;
@@ -48,7 +69,7 @@
 
 	oOption.innerHTML = optionText ;
 	oOption.value     = optionValue ;
-	
+
 	return oOption ;
 }
 
@@ -56,34 +77,37 @@
 {
 	window.location.href = window.location.pathname + "?" + languageCode ;
 }
-			</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 3</h1>
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 3</h1>
+	<div>
 		This sample shows the editor in all its available languages.
-		<hr>
-		<table cellpadding="0" cellspacing="0" border="0">
-			<tr>
-				<td>
-					Select a language:&nbsp;
-				</td>
-				<td>
-					<select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
-					</select>
-				</td>
-				<td>
-					&nbsp;<span id="eNumLangs"></span>
-				</td>
-			</tr>
-		</table>
-		<br>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+	</div>
+	<hr />
+	<table cellpadding="0" cellspacing="0" border="0">
+		<tr>
+			<td>
+				Select a language:&nbsp;
+			</td>
+			<td>
+				<select id="cmbLanguages" onchange="ChangeLanguage(this.value);">
+				</select>
+			</td>
+			<td>
+				&nbsp;<span id="eNumLangs"></span>
+			</td>
+		</tr>
+	</table>
+	<br />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
 // oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/_samples/')+1) ;
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
 var sLang ;
 if ( document.location.search.length > 1 )
@@ -104,9 +128,9 @@
 oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample04.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample04.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample04.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,34 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample04.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-			<script type="text/javascript">
+<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">
 
 function FCKeditor_OnComplete( editorInstance )
 {
@@ -38,33 +42,36 @@
 	window.location.href = window.location.pathname + "?" + languageCode ;
 }
 
-			</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 4</h1>
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 4</h1>
+	<div>
 		This sample shows how to change the editor toolbar.
-		<hr>
-		<table cellpadding="0" cellspacing="0" border="0">
-			<tr>
-				<td>
-					Select the toolbar to load:&nbsp;
-				</td>
-				<td>
-					<select id="cmbToolbars" onchange="ChangeLanguage(this.value);" style="VISIBILITY: hidden">
-						<option value="Default" selected>Default</option>
-						<option value="Basic">Basic</option>
-					</select>
-				</td>
-			</tr>
-		</table>
-		<br>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+	</div>
+	<hr />
+	<table cellpadding="0" cellspacing="0" border="0">
+		<tr>
+			<td>
+				Select the toolbar to load:&nbsp;
+			</td>
+			<td>
+				<select id="cmbToolbars" onchange="ChangeLanguage(this.value);" style="visibility: hidden">
+					<option value="Default" selected="selected">Default</option>
+					<option value="Basic">Basic</option>
+				</select>
+			</td>
+		</tr>
+	</table>
+	<br />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
 // oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/_samples/')+1) ;
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
 // Get the toolbar from the URL.
 var sToolbar ;
@@ -80,9 +87,9 @@
 oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample05.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample05.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample05.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,39 +1,43 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample05.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-		<script type="text/javascript">
+<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">
 
 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 = '' ;
 }
@@ -43,34 +47,37 @@
 	window.location.href = window.location.pathname + "?" + languageCode ;
 }
 
-		</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 5</h1>
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 5</h1>
+	<div>
 		This sample shows how to change the editor skin.
-		<hr>
-		<table cellpadding="0" cellspacing="0" border="0">
-			<tr>
-				<td>
-					Select the skin to load:&nbsp;
-				</td>
-				<td>
-					<select id="cmbSkins" onchange="ChangeLanguage(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.asp" method="post" target="_blank">
-			<script type="text/javascript">
+	</div>
+	<hr />
+	<table cellpadding="0" cellspacing="0" border="0">
+		<tr>
+			<td>
+				Select the skin to load:&nbsp;
+			</td>
+			<td>
+				<select id="cmbSkins" onchange="ChangeLanguage(this.value);" style="visibility: hidden">
+					<option value="default" selected="selected">Default</option>
+					<option value="office2003">Office 2003</option>
+					<option value="silver">Silver</option>
+				</select>
+			</td>
+		</tr>
+	</table>
+	<br />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
 // oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/_samples/')+1) ;
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
 // Get the skin from the URL.
 var sSkin ;
@@ -81,14 +88,38 @@
 oFCKeditor.BasePath	= sBasePath ;
 
 if ( sSkin != null )
-	oFCKeditor.Config['SkinPath'] = sBasePath + 'editor/skins/' + sSkin + '/' ;
+{
+	var sSkinPath = sBasePath + 'editor/skins/' + sSkin + '/' ;
+	oFCKeditor.Config['SkinPath'] = sSkinPath ;
 
+	// The following switch is optional. It is done to enhance the loading
+	// time of the toolbar, by preloading the images used on it.
+	switch ( sSkin )
+	{
+		case 'office2003' :
+			oFCKeditor.Config['PreloadImages'] =
+				sSkinPath + 'images/toolbar.start.gif' + ';' +
+				sSkinPath + 'images/toolbar.end.gif' + ';' +
+				sSkinPath + 'images/toolbar.bg.gif' + ';' +
+				sSkinPath + 'images/toolbar.buttonarrow.gif' ;
+			break ;
+
+		case 'silver' :
+			oFCKeditor.Config['PreloadImages'] =
+				sSkinPath + 'images/toolbar.start.gif' + ';' +
+				sSkinPath + 'images/toolbar.end.gif' + ';' +
+				sSkinPath + 'images/toolbar.buttonbg.gif' + ';' +
+				sSkinPath + 'images/toolbar.buttonarrow.gif' ;
+			break ;
+	}
+}
+
 oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>
\ No newline at end of file
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.config.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.config.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.config.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample06.config.js
- * 	Sample custom configuration settings used in the plugin sample page (sample06).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
@@ -25,7 +29,7 @@
 	['Table','-','TableInsertRow','TableDeleteRows','TableInsertColumn','TableDeleteColumns','TableInsertCell','TableDeleteCells','TableMergeCells','TableSplitCell'],
 	['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink'],
 	'/',
-	['My_BigStyle','-','About']
+	['My_BigStyle','-','Smiley','-','About']
 ] ;
 
 // Change the default plugin path.

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample06.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,45 +1,57 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample06.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - 6</h1>
-		This sample shows a sample plugin implementation.
-		<br>
-		These are sample "Find" and "Replace" plugin that do exactly the same thing that the built in ones do. Use the green toolbar buttons the test then.
-		<br>
-		There is also another sample plugin that is available in the package: the "Placeholder" command (use the yellow icon).
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+<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 - 6</h1>
+	<div>
+		This sample shows some sample plugins implementations. Things to note:<br />
+		<ul>
+			<li>In the toolbar, you will find sample "Find" and "Replace" plugins that do exactly
+				the same thing that the built in ones do. It just shows how to do that with a custom
+				implementation. Use the green toolbar buttons the test then. </li>
+			<li>There is also another sample plugin that is available in the package: the "Placeholder"
+				command (use the yellow icon). </li>
+			<li>It also shows a custom context menu option when right cliking on images (insert
+				a smiley to test it).</li>
+		</ul>
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
 // oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/_samples/')+1) ;
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
 var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
 oFCKeditor.BasePath	= sBasePath ;
@@ -53,9 +65,9 @@
 oFCKeditor.Value		= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>
\ No newline at end of file
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample07.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample07.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample07.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,36 +1,44 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample07.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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>
-	<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 7</h1>
-		In this sample the user can edit the complete page contents and header (from 
-		&lt;HTML&gt; to &lt;/HTML&gt;).
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+<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 7</h1>
+	<div>
+		In this sample the user can edit the complete page contents and header (from &lt;HTML&gt;
+		to &lt;/HTML&gt;).
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
@@ -43,9 +51,9 @@
 oFCKeditor.Value = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Full Page Test</title><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/></head><body>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</body></html>' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample08.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample08.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample08.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,34 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample08.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-		<script type="text/javascript">
+<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">
 
 // FCKeditor_OnComplete is a special function that is called when an editor
 // instance is loaded ad available to the API. It must be named exactly in
@@ -47,7 +51,7 @@
 	if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
 	{
 		// Insert the desired HTML.
-		oEditor.InsertHtml( '- This is some <b>sample</b> HTML -' ) ;
+		oEditor.InsertHtml( '- This is some <a href="/Test1.html">sample</a> HTML -' ) ;
 	}
 	else
 		alert( 'You must be on WYSIWYG mode!' ) ;
@@ -110,15 +114,42 @@
 	alert( 'Actual text length (without HTML markups): ' + iLength + ' characters' ) ;
 }
 
-		</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 8</h1>
-		This sample shows how to use the FCKeditor Javascript API to interact with the
-		editor at runtime.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+function GetInnerHTML()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
+
+	alert( oEditor.EditorDocument.body.innerHTML ) ;
+}
+
+function CheckIsDirty()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
+	alert( oEditor.IsDirty() ) ;
+}
+
+function ResetIsDirty()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
+	oEditor.ResetIsDirty() ;
+	alert( 'The "IsDirty" status has been reset' ) ;
+}
+
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 8
+	</h1>
+	<div>
+		This sample shows how to use the FCKeditor JavaScript API to interact with the editor
+		at runtime.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
 <!--
 // Automatically calculates the editor base path based on the _samples directory.
 // This is usefull only for these samples. A real application should use something like this:
@@ -130,25 +161,36 @@
 oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-		<div>&nbsp;</div>
-		<hr>
-		<div id="eMessage">&nbsp;</div>
-		<div>&nbsp;</div>
-		<div id="eButtons" style="VISIBILITY: hidden">
-			<input type="button" value="Insert HTML" onclick="InsertHTML();">
-			<input type="button" value="Set Editor Contents" onclick="SetContents();">
-			<input type="button" value="Get Editor Contents (XHTML)" onclick="GetContents();">
-			<br>
-			<br>
-			<input type="button" value='Execute "Bold" Command' onclick="ExecuteCommand('Bold');">
-			<input type="button" value='Execute "Link" Command' onclick="ExecuteCommand('Link');">
-			<br>
-			<br>
-			<input type="button" value="Interact with the Editor Area DOM" onclick="GetLength();">
-		</div>
-	</body>
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+	<div>
+		&nbsp;
+	</div>
+	<hr />
+	<div id="eMessage">
+		&nbsp;
+	</div>
+	<div>
+		&nbsp;
+	</div>
+	<div id="eButtons" style="visibility: hidden">
+		<input type="button" value="Insert HTML" onclick="InsertHTML();" />
+		<input type="button" value="Set Editor Contents" onclick="SetContents();" />
+		<input type="button" value="Get Editor Contents (XHTML)" onclick="GetContents();" />
+		<br />
+		<br />
+		<input type="button" value='Execute "Bold" Command' onclick="ExecuteCommand('Bold');" />
+		<input type="button" value='Execute "Link" Command' onclick="ExecuteCommand('Link');" />
+		<br />
+		<br />
+		<input type="button" value="Interact with the Editor Area DOM" onclick="GetLength();" />
+		<input type="button" value="Get innerHTML" onclick="GetInnerHTML();" />
+		<br />
+		<br />
+		<input type="button" value="Check IsDirty()" onclick="CheckIsDirty();" />
+		<input type="button" value="Reset IsDirty()" onclick="ResetIsDirty();" />
+	</div>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample09.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample09.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample09.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,42 +1,69 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample09.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 9</h1>
-		This sample shows FCKeditor in a more complex form with two different 
-		instances.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			Normal text field:<br>
-			<input name="NormaText" value="Plain Text">
-			<br>
-			<br>
-			FCKeditor with Basic toolbar:
-			<script type="text/javascript">
+<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">
+
+function FCKeditor_OnComplete( editorInstance )
+{
+	editorInstance.Events.AttachEvent( 'OnBlur'	, FCKeditor_OnBlur ) ;
+	editorInstance.Events.AttachEvent( 'OnFocus', FCKeditor_OnFocus ) ;
+}
+
+function FCKeditor_OnBlur( editorInstance )
+{
+	editorInstance.ToolbarSet.Collapse() ;
+}
+
+function FCKeditor_OnFocus( editorInstance )
+{
+	editorInstance.ToolbarSet.Expand() ;
+}
+
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 9</h1>
+	<div>
+		This sample shows FCKeditor in a more complex form with two different instances.<br />
+		It also shows and interesting usage of the "OnFocus" and "OnBlur" events available
+		in the JavaScript API.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		Normal text field:<br />
+		<input name="NormaText" value="Plain Text" />
+		<br />
+		<br />
+		FCKeditor with Basic toolbar:
+		<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:
@@ -44,24 +71,30 @@
 var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
 var oFCKeditor = new FCKeditor( 'FCKeditor_Basic' ) ;
+
+oFCKeditor.Config['ToolbarStartExpanded'] = false ;
+
 oFCKeditor.BasePath		= sBasePath ;
 oFCKeditor.ToolbarSet	= 'Basic' ;
 oFCKeditor.Value		= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			FCKeditor with Default toolbar:
-			<script type="text/javascript">
+		</script>
+		<br />
+		FCKeditor with Default toolbar:
+		<script type="text/javascript">
 <!--
-var oFCKeditor = new FCKeditor( 'FCKeditor_Default' ) ;
+oFCKeditor = new FCKeditor( 'FCKeditor_Default' ) ;
+
+oFCKeditor.Config['ToolbarStartExpanded'] = false ;
+
 oFCKeditor.BasePath	= sBasePath ;
 oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample10.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample10.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample10.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,52 +1,79 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample10.html
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
 -->
-<!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" src="../../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Javascript - Sample 10</h1>
-		This sample is identical to Sample 1, but Safari support is enabled.
-		<hr>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
+<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 10</h1>
+	<div>
+		This sample shows a form with two FCKeditor instance. Both instances share the same
+		toolbar, available in the top.
+	</div>
+	<hr />
+	<div id="xToolbar"></div>
+	<hr />
+	<form action="sampleposteddata.asp" 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.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
 
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
+var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;
 oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Height	= 300 ;
-oFCKeditor.Value	= 'This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor<\/a>.' ;
-oFCKeditor.EnableSafari = true ;
+oFCKeditor.Height = 100 ;
+oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:xToolbar' ;
+oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 oFCKeditor.Create() ;
 //-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>
\ No newline at end of file
+		</script>
+		<br />
+		FCKeditor 2:
+		<script type="text/javascript">
+<!--
+oFCKeditor = new FCKeditor( 'FCKeditor_2' ) ;
+oFCKeditor.BasePath	= sBasePath ;
+oFCKeditor.Height = 100 ;
+oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:xToolbar' ;
+oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
+oFCKeditor.Create() ;
+//-->
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Sample page.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - 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 - JavaScript - Sample 11</h1>
+	<div>
+		This sample shows a form with two FCKeditor instance loaded inside an IFRAME. Both instances share the same
+		toolbar, available in the main page (top).
+	</div>
+	<hr />
+	<div id="xToolbar"></div>
+	<hr />
+	<iframe src="sample11_frame.html" width="100%" height="300"></iframe>
+</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11_frame.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11_frame.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample11_frame.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,69 @@
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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="sampleposteddata.asp" 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.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
+
+var oFCKeditor = new FCKeditor( 'FCKeditor_1' ) ;
+oFCKeditor.BasePath	= sBasePath ;
+oFCKeditor.Height = 100 ;
+oFCKeditor.Config[ 'ToolbarLocation' ] = 'Out:parent(xToolbar)' ;
+oFCKeditor.Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
+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 = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
+oFCKeditor.Create() ;
+//-->
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample12.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample12.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample12.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Sample page.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - 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">
+
+// The following function is used in this samples to reload the page,
+// setting the querystring parameters for the enter mode.
+function ChangeMode()
+{
+	var sEnterMode = document.getElementById('xEnter').value ;
+	var sShiftEnterMode = document.getElementById('xShiftEnter').value ;
+
+	window.location.href = window.location.pathname + '?enter=' + sEnterMode + '&shift=' + sShiftEnterMode ;
+}
+
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 12</h1>
+	<div>
+		This sample shows the different ways to configure the [Enter] key behavior on FCKeditor.
+	</div>
+	<hr />
+	<table cellpadding="0" cellspacing="0" border="0">
+		<tr>
+			<td>
+				When [Enter] is pressed:&nbsp;
+			</td>
+			<td>
+				<select id="xEnter" onchange="ChangeMode();">
+					<option value="p" selected="selected">Create new &lt;P&gt;</option>
+					<option value="div">Create new &lt;DIV&gt;</option>
+					<option value="br">Break the line with a &lt;BR&gt;</option>
+				</select>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				When [Shift] + [Enter] is pressed:&nbsp;
+			</td>
+			<td>
+				<select id="xShiftEnter" onchange="ChangeMode();">
+					<option value="p">Create new &lt;P&gt;</option>
+					<option value="div">Create new &lt;DIV&gt;</option>
+					<option value="br" selected="selected">Break the line with a &lt;BR&gt;</option>
+				</select>
+			</td>
+		</tr>
+	</table>
+	<br />
+	<form action="sampleposteddata.asp" method="post" target="_blank">
+		<script type="text/javascript">
+<!--
+// Automatically calculates the editor base path based on the _samples directory.
+// This is usefull only for these samples. A real application should use something like this:
+// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
+var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
+
+// The following are the default configurations for the Enter and Shift+Enter modes.
+var sEnterMode = 'p' ;
+var sShiftEnterMode = 'br' ;
+
+// Try to get the new configurations from the querystring, if available.
+if ( document.location.search.length > 1 )
+{
+	var aMatch = document.location.search.match( /enter=(p|div|br)/ ) ;
+	if ( aMatch )
+		sEnterMode = aMatch[1] ;
+
+	aMatch = document.location.search.match( /shift=(p|div|br)/ ) ;
+	if ( aMatch )
+		sShiftEnterMode = aMatch[1] ;
+}
+
+// Create the FCKeditor instance.
+var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
+oFCKeditor.BasePath	= sBasePath ;
+oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
+
+// Enable the Enter Key Handler. This feature will not be available in the release version.
+oFCKeditor.Config["DisableEnterKeyHandler"]	= false ;
+
+// Set the configuration options for the Enter Key mode.
+oFCKeditor.Config["EnterMode"]		= sEnterMode ;
+oFCKeditor.Config["ShiftEnterMode"]	= sShiftEnterMode ;
+
+oFCKeditor.Create() ;
+
+// Update the select combos with the current values.
+document.getElementById('xEnter').value = sEnterMode ;
+document.getElementById('xShiftEnter').value = sShiftEnterMode ;
+
+//-->
+		</script>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample13.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample13.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sample13.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Sample page.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - 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">
+
+function Toggle()
+{
+	// Try to get the FCKeditor instance, if available.
+	var oEditor ;
+	if ( typeof( FCKeditorAPI ) != 'undefined' )
+		oEditor = FCKeditorAPI.GetInstance( '_DataFCKeditor' ) ;
+
+	// Get the _Textarea and _FCKeditor DIVs.
+	var eTextareaDiv	= document.getElementById( '_Textarea' ) ;
+	var eFCKeditorDiv	= document.getElementById( '_FCKeditor' ) ;
+
+	// If the _Textarea DIV is visible, switch to FCKeditor.
+	if ( eTextareaDiv.style.display != 'none' )
+	{
+		// If it is the first time, create the editor.
+		if ( !oEditor )
+		{
+			CreateEditor() ;
+		}
+		else
+		{
+			// Set the current text in the textarea to the editor.
+			oEditor.SetHTML( document.getElementById('_DataTextarea').value ) ;
+		}
+
+		// Switch the DIVs display.
+		eTextareaDiv.style.display = 'none' ;
+		eFCKeditorDiv.style.display = '' ;
+
+		// This is a hack for Gecko 1.0.x ... it stops editing when the editor is hidden.
+		if ( oEditor && !document.all )
+		{
+			if ( oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
+				oEditor.MakeEditable() ;
+		}
+	}
+	else
+	{
+		// Set the textarea value to the editor value.
+		document.getElementById('_DataTextarea').value = oEditor.GetXHTML() ;
+
+		// Switch the DIVs display.
+		eTextareaDiv.style.display = '' ;
+		eFCKeditorDiv.style.display = 'none' ;
+	}
+}
+
+function CreateEditor()
+{
+	// Copy the value of the current textarea, to the textarea that will be used by the editor.
+	document.getElementById('_DataFCKeditor').value = document.getElementById('_DataTextarea').value ;
+
+	// Automatically calculates the editor base path based on the _samples directory.
+	// This is usefull only for these samples. A real application should use something like this:
+	// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
+	var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
+
+	// Create an instance of FCKeditor (using the target textarea as the name).
+	var oFCKeditor = new FCKeditor( '_DataFCKeditor' ) ;
+	oFCKeditor.BasePath = sBasePath ;
+	oFCKeditor.Width = '100%' ;
+	oFCKeditor.Height = '350' ;
+	oFCKeditor.ReplaceTextarea() ;
+}
+
+// The FCKeditor_OnComplete function is a special function called everytime an
+// editor instance is completely loaded and available for API interactions.
+function FCKeditor_OnComplete( editorInstance )
+{
+	// Enable the switch button. It is disabled at startup, waiting the editor to be loaded.
+	document.getElementById('_BtnSwitchTextarea').disabled = false ;
+}
+
+function PrepareSave()
+{
+	// If the textarea isn't visible update the content from the editor.
+	if ( document.getElementById( '_Textarea' ).style.display == 'none' )
+	{
+		var oEditor = FCKeditorAPI.GetInstance( '_DataFCKeditor' ) ;
+		document.getElementById( '_DataTextarea' ).value = oEditor.GetXHTML() ;
+	}
+}
+
+	</script>
+</head>
+<body>
+	<h1>
+		FCKeditor - JavaScript - Sample 13
+	</h1>
+	<div>
+		This sample starts with a normal textarea and provides the ability to switch back
+		and forth between the textarea and FCKeditor. It uses the JavaScript API to do the
+		operations so it will work even if the internal implementation changes.
+	</div>
+	<hr />
+	<form action="sampleposteddata.asp" method="post" target="_blank" onsubmit="PrepareSave();">
+		<div id="_Textarea">
+			<input type="button" value="Switch to FCKeditor" onclick="Toggle()" />
+			<br />
+			<br />
+			<textarea id="_DataTextarea" name="Data" cols="80" rows="20" style="width: 95%">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;FCKeditor&lt;/a&gt;.</textarea>
+		</div>
+		<div id="_FCKeditor" style="display: none">
+			<!-- Note that the following button is disabled at startup.
+				It will be enabled once the editor is completely loaded. -->
+			<input id="_BtnSwitchTextarea" type="button" disabled="disabled" value="Switch to Textarea" onclick="Toggle()" />
+			<br />
+			<br />
+			<!-- Note that the following textarea doesn't have a "name", so it will not be posted. -->
+			<textarea id="_DataFCKeditor" cols="80" rows="20"></textarea>
+		</div>
+		<br />
+		<input type="submit" value="Submit" />
+	</form>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,44 +1,72 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleposteddata.asp
- * 	This page lists the data posted by a form.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This page lists the data posted by a form.
 -->
-<!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>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<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>
+	<div>
 		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&nbsp;&nbsp;</td>
-				<td>Value</td>
-			</tr>
-			<% For Each sForm in Request.Form %>
-			<tr>
-				<td valign="top" nowrap><b><%=sForm%></b></td>
-				<td width="100%"><%=Replace( Server.HTMLEncode( Request.Form(sForm) ), Chr(13), "<br>" )%></td>
-			</tr>
-			<% Next %>
-		</table>
-	</body>
+	</div>
+	<hr />
+	<table width="100%" border="1" cellpadding="3" style="border-color: #999999; border-collapse: collapse;">
+		<tr style="font-weight: bold; color: #dddddd; background-color: #999999">
+			<td style="white-space: nowrap;">
+				Field Name&nbsp;&nbsp;</td>
+			<td>
+				Value</td>
+		</tr>
+		<% For Each sForm in Request.Form %>
+		<tr>
+			<td valign="top" style="white-space: nowrap;">
+				<b>
+					<%=sForm%>
+				</b>
+			</td>
+			<td style="width: 100%;">
+				<pre><%=ModifyForOutput( Request.Form(sForm) )%></pre>
+			</td>
+		</tr>
+		<% Next %>
+	</table>
+</body>
 </html>
+<%
+
+' This function is useful only for this sample page se whe can display the
+' posted data accordingly. This processing is usually not done on real
+' applications, where the posted data must be saved on a DB or file. In those
+' cases, no processing must be done, and the data is saved as posted.
+Function ModifyForOutput( value )
+
+	ModifyForOutput = Server.HTMLEncode( Request.Form(sForm) )
+
+End Function
+
+%>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/html/sampleposteddata.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,41 +1,51 @@
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleposteddata.html
- * 	This page lists the data posted by a form. It uses the URL (GET data), 
- * 	so it's limited to 2KB of data.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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. It uses the URL (GET data),
+ * so it's limited to 2KB of data.
 -->
-<!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. It uses the "QueryString" to search for data
-		submitted using the "GET" method, so it is limited to 2KB.
-		<hr>
-		<table width="100%" border="1" cellspacing="0" bordercolor="#999999">
-			<tr style="FONT-WEIGHT: bold; COLOR: #dddddd; BACKGROUND-COLOR: #999999">
-				<td>Field</td>
-				<td>Value</td>
-			</tr>
-			<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<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>
+	<div>
+		This page lists all data posted by the form. It uses the "QueryString" to search
+		for data submitted using the "GET" method, so it is limited to 2KB.
+	</div>
+	<hr />
+	<table width="100%" border="1" cellpadding="3" style="border-color: #999999; border-collapse: collapse;">
+		<tr style="font-weight: bold; color: #dddddd; background-color: #999999">
+			<td style="white-space: nowrap;">
+				Field</td>
+			<td>
+				Value</td>
+		</tr>
+		<script type="text/javascript">
 <!--
 
 function HTMLEncode( text )
@@ -58,13 +68,13 @@
 	var sParamValue = aParam[1] ;
 
 	document.write( '<tr>' ) ;
-	document.write( '<td valign="top" nowrap><b>' + sParamName + '</b></td>' ) ;
-	document.write( '<td width="100%">' + HTMLEncode( unescape( sParamValue.replace( /\+/g, ' ' ) ) ) + '</td>' ) ;
+	document.write( '<td valign="top" style="white-space: nowrap;">' + sParamName + '</td>' ) ;
+	document.write( '<td style="width: 100%;"><pre>' + HTMLEncode( decodeURIComponent( sParamValue.replace( /\+/g, ' ' ) ) ) + '</pre></td>' ) ;
 	document.write( '</tr>' ) ;
 }
 
 //-->
-			</script>
-		</table>
-	</body>
+		</script>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample01.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample01.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample01.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,36 +1,26 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
-
-* Copyright (C) 2003-2005 Frederico Caldeira Knabben
-
-* 
-
-* Licensed under the terms of the GNU Lesser General Public License:
-
-* 		http://www.opensource.org/licenses/lgpl-license.php
-
-* 
-
-* For further information visit:
-
-* 		http://www.fckeditor.net/
-
-* 
-
-* File Name: sample01.lasso
-
-* 		Sample page.
-
-* 
-
-* File Authors:
- *		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
-
 ]
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
@@ -42,7 +32,7 @@
 	</head>
 	<body>
 		<h1>FCKeditor - Lasso - Sample 1</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
+		This sample displays a normal HTML form with an FCKeditor with full features
 		enabled.
 		<hr>
 		<form action="sampleposteddata.lasso" method="post" target="_blank">
@@ -55,7 +45,7 @@
 		-basepath=$basepath,
 		-initialvalue='This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.'
 	);
-	
+
 	$myeditor->create;
 ]
 			<br>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample02.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample02.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample02.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,34 +1,26 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
-
-* Copyright (C) 2003-2005 Frederico Caldeira Knabben
-
-* 
-
-* Licensed under the terms of the GNU Lesser General Public License:
-
-* 		http://www.opensource.org/licenses/lgpl-license.php
-
-* 
-
-* For further information visit:
-
-* 		http://www.fckeditor.net/
- * 
- * File Name: sample02.lasso
-
-* 		Sample page.
-
-* 
-
-* File Authors:
- *		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
-
 ]
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
@@ -47,7 +39,7 @@
 		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
 	}
 	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-}	
+}
 
 function AddComboOption(combo, optionText, optionValue)
 {
@@ -57,7 +49,7 @@
 
 	oOption.innerHTML = optionText ;
 	oOption.value     = optionValue ;
-	
+
 	return oOption ;
 }
 
@@ -107,7 +99,7 @@
 		-config=$config,
 		-initialvalue='This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.'
 	);
-	
+
 	$myeditor->create;
 ]
 			<br>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample03.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample03.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample03.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,37 +1,26 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
-
-* Copyright (C) 2003-2005 Frederico Caldeira Knabben
-
-* 
-
-* Licensed under the terms of the GNU Lesser General Public License:
-
-* 		http://www.opensource.org/licenses/lgpl-license.php
-
-* 
-
-* For further information visit:
-
-* 		http://www.fckeditor.net/
-
-* 
-
-* File Name: sample03.lasso
-
-* 		Sample page.
-
-* 
-
-* File Authors:
- *		Frederico Caldeira Knabben (fredck at fckeditor.net)
-
-* 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
-
 ]
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
@@ -88,7 +77,7 @@
 	if(action_param('Toolbar'));
 		$myeditor->toolbarset = action_param('Toolbar');
 	/if;
-	
+
 	$myeditor->create;
 ]
 			<br>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample04.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample04.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sample04.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,37 +1,26 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
-
-* Copyright (C) 2003-2005 Frederico Caldeira Knabben
-
-* 
-
-* Licensed under the terms of the GNU Lesser General Public License:
-
-* 		http://www.opensource.org/licenses/lgpl-license.php
-
-* 
-
-* For further information visit:
-
-* 		http://www.fckeditor.net/
-
-* 
-
-* File Name: sample04.lasso
-
-* 		Sample page.
-
-* 
-
-* File Authors:
- *		Frederico Caldeira Knabben (fredck at fckeditor.net)
-
-* 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
-
 ]
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
@@ -45,11 +34,11 @@
 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 = '' ;
 }
@@ -90,11 +79,11 @@
 		-basepath=$basepath,
 		-initialvalue='This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.'
 	);
-	
+
 	if(action_param('Skin'));
 		$myeditor->config = array('SkinPath' = $basepath + 'editor/skins/' + action_param('Skin') + '/');
 	/if;
-	
+
 	$myeditor->create;
 ]
 			<br>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sampleposteddata.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sampleposteddata.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/lasso/sampleposteddata.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,26 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: sampleposteddata.lasso
- * 		Sample page.
- * 
- * File Authors:
- *		Frederico Caldeira Knabben (fredck at fckeditor.net)
- *		Jason Huck (jason.huck at corefive.com)
-
- * 		Jim Michaels (jmichae3 at yahoo.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
-
 ]
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample01.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample01.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample01.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: sample01.cgi
-#  	Sample page.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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).
@@ -66,7 +70,7 @@
 	</head>
 	<body>
 		<h1>FCKeditor - Perl - Sample 1</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
+		This sample displays a normal HTML form with an FCKeditor with full features
 		enabled.
 		<hr>
 		<form action="sampleposteddata.cgi" method="post" target="_blank">
@@ -74,7 +78,7 @@
 
 	#// 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.
+	#// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 
 	$sBasePath = $ServerPath;
 	$sBasePath = substr($sBasePath,0,index($sBasePath,"_samples"));

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample02.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample02.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample02.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: sample02.cgi
-#  	Sample page.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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).
@@ -90,7 +94,7 @@
 		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
 	}
 	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-}	
+}
 
 function AddComboOption(combo, optionText, optionValue)
 {
@@ -100,7 +104,7 @@
 
 	oOption.innerHTML = optionText ;
 	oOption.value	  = optionValue ;
-	
+
 	return oOption ;
 }
 
@@ -131,7 +135,7 @@
 
 	#// 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.
+	#// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 	$sBasePath = $ServerPath;
 	$sBasePath = substr( $sBasePath, 0, index($sBasePath,"_samples"));
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample03.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample03.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample03.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: sample03.cgi
-#  	Sample page.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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).
@@ -119,7 +123,7 @@
 
 	#// 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.
+	#// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 
 	$sBasePath = $ServerPath;
 	$sBasePath = substr($sBasePath, 0, index( $sBasePath, "_samples" ));
@@ -128,7 +132,7 @@
 	$BasePath = $sBasePath ;
 
 	if($FORM{'Toolbar'} ne "") {
-		$ToolbarSet = $FORM{'Toolbar'};
+		$ToolbarSet = &specialchar_cnv( $FORM{'Toolbar'} );
 	}
 	$Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 	&Create();

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample04.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample04.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sample04.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: sample04.cgi
-#  	Sample page.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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).
@@ -127,7 +131,7 @@
 
 	#// 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.
+	#// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 	$sBasePath = $ServerPath;
 	$sBasePath = substr( $sBasePath, 0, index( $sBasePath, "_samples" ) ) ;
 
@@ -135,7 +139,7 @@
 	$BasePath = $sBasePath;
 
 	if($FORM{'Skin'} ne "") {
-		$Config{'SkinPath'} = $sBasePath . 'editor/skins/' . $FORM{'Skin'} . '/' ;
+		$Config{'SkinPath'} = $sBasePath . 'editor/skins/' . &specialchar_cnv( $FORM{'Skin'} ) . '/' ;
 	}
 	$Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 	&Create() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sampleposteddata.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sampleposteddata.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/perl/sampleposteddata.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: sampleposteddata.cgi
-#  	This page lists the data posted by a form.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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).

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample01.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample01.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample01.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample01.php
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 
 include("../../fckeditor.php") ;
@@ -30,14 +34,14 @@
 	</head>
 	<body>
 		<h1>FCKeditor - PHP - Sample 1</h1>
-		This sample displays a normal HTML form with an FCKeditor with full features 
+		This sample displays a normal HTML form with an FCKeditor with full features
 		enabled.
 		<hr>
 		<form action="sampleposteddata.php" method="post" target="_blank">
 <?php
 // 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.
+// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 $sBasePath = $_SERVER['PHP_SELF'] ;
 $sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample02.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample02.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample02.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample02.php
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 
 include("../../fckeditor.php") ;
@@ -37,7 +41,7 @@
 		AddComboOption( oCombo, editorInstance.Language.AvailableLanguages[code] + ' (' + code + ')', code ) ;
 	}
 	oCombo.value = editorInstance.Language.ActiveLanguage.Code ;
-}	
+}
 
 function AddComboOption(combo, optionText, optionValue)
 {
@@ -47,7 +51,7 @@
 
 	oOption.innerHTML = optionText ;
 	oOption.value     = optionValue ;
-	
+
 	return oOption ;
 }
 
@@ -77,7 +81,7 @@
 <?php
 // 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.
+// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 $sBasePath = $_SERVER['PHP_SELF'] ;
 $sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;
 

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample03.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample03.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample03.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample03.php
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 
 include("../../fckeditor.php") ;
@@ -65,7 +69,7 @@
 <?php
 // 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.
+// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 $sBasePath = $_SERVER['PHP_SELF'] ;
 $sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;
 
@@ -73,7 +77,7 @@
 $oFCKeditor->BasePath = $sBasePath ;
 
 if ( isset($_GET['Toolbar']) )
-	$oFCKeditor->ToolbarSet = $_GET['Toolbar'] ;
+	$oFCKeditor->ToolbarSet = htmlspecialchars($_GET['Toolbar']);
 
 $oFCKeditor->Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 $oFCKeditor->Create() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample04.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample04.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/php/sample04.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample04.php
- * 	Sample page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 
 include("../../fckeditor.php") ;
@@ -32,11 +36,11 @@
 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 = '' ;
 }
@@ -71,7 +75,7 @@
 <?php
 // 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.
+// $oFCKeditor->BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
 $sBasePath = $_SERVER['PHP_SELF'] ;
 $sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ;
 
@@ -79,7 +83,7 @@
 $oFCKeditor->BasePath = $sBasePath ;
 
 if ( isset($_GET['Skin']) )
-	$oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . $_GET['Skin'] . '/' ;
+	$oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . htmlspecialchars($_GET['Skin']) . '/' ;
 
 $oFCKeditor->Value = 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
 $oFCKeditor->Create() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/php/sampleposteddata.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/php/sampleposteddata.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/php/sampleposteddata.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleposteddata.php
- * 	This page lists the data posted by a form.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Jim Michaels (jmichae3 at yahoo.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 ?>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
@@ -45,7 +48,10 @@
 
 foreach ( $postArray as $sForm => $value )
 {
-	$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
+	if ( get_magic_quotes_gpc() )
+		$postedValue = htmlspecialchars( stripslashes( $value ) ) ;
+	else
+		$postedValue = htmlspecialchars( $value ) ;
 
 ?>
 			<tr>

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/py/sample01.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/py/sample01.py	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/py/sample01.py	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2007 Frederico Caldeira Knabben
+
+== BEGIN LICENSE ==
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/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.
+"""
+
+import cgi
+import os
+
+# Ensure that the fckeditor.py is included in your classpath
+import fckeditor
+
+# Tell the browser to render html
+print "Content-Type: text/html"
+print ""
+
+# Document header
+print """<!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 - Python - Sample 1</h1>
+		This sample displays a normal HTML form with an FCKeditor with full features
+		enabled.
+		<hr>
+		<form action="sampleposteddata.py" method="post" target="_blank">
+"""
+
+# This is the real work
+try:
+	sBasePath = os.environ.get("SCRIPT_NAME")
+	sBasePath = sBasePath[0:sBasePath.find("_samples")]
+
+	oFCKeditor = fckeditor.FCKeditor('FCKeditor1')
+	oFCKeditor.BasePath = sBasePath
+	oFCKeditor.Value = """This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>."""
+	print oFCKeditor.Create()
+except Exception, e:
+	print e
+print """
+			<br>
+			<input type="submit" value="Submit">
+		</form>
+"""
+
+# For testing your environments
+print "<hr>"
+for key in os.environ.keys():
+	print "%s: %s<br>" % (key, os.environ.get(key, ""))
+print "<hr>"
+
+# Document footer
+print """
+	</body>
+</html>
+"""
+
+


Property changes on: zope.html/trunk/src/zope/html/fckeditor/_samples/py/sample01.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: zope.html/trunk/src/zope/html/fckeditor/_samples/py/sampleposteddata.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/py/sampleposteddata.py	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/py/sampleposteddata.py	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2007 Frederico Caldeira Knabben
+
+== BEGIN LICENSE ==
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/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.
+"""
+
+import cgi
+import os
+
+# Tell the browser to render html
+print "Content-Type: text/html"
+print ""
+
+try:
+	# Create a cgi object
+	form = cgi.FieldStorage()
+except Exception, e:
+	print e
+
+# Document header
+print """<!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>
+"""
+
+# This is the real work
+print """
+		<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&nbsp;&nbsp;</td>
+				<td>Value</td>
+			</tr>
+"""
+for key in form.keys():
+	try:
+		value = form[key].value
+		print """
+				<tr>
+					<td valign="top" nowrap><b>%s</b></td>
+					<td width="100%%">%s</td>
+				</tr>
+			""" % (key, 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>"
+
+# Document footer
+print """
+	</body>
+</html>
+"""


Property changes on: zope.html/trunk/src/zope/html/fckeditor/_samples/py/sampleposteddata.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/sample.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/sample.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/sample.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sample.css
- * 	Styles used in the samples pages.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 in the samples pages.
  */
 
 body, td, input, select, textarea
@@ -35,3 +39,12 @@
 	margin: 0px 0px 0px 0px;
 	padding: 0px 0px 0px 0px;
 }
+
+pre
+{
+	margin:0px;
+	padding:0px;
+	white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/_samples/sampleslist.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_samples/sampleslist.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_samples/sampleslist.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleslist.html
- * 	Page used to select the sample to view.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Page used to select the sample to view.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>FCKeditor - Sample Selection</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 language="javascript">
-<!--
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Sample Selection</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">
 
 if ( window.top == window )
 	document.location = 'default.html' ;
@@ -35,46 +38,86 @@
 		window.open( sample, 'Sample' ) ;
 }
 
-//-->
-		</script>
-	</head>
-	<body bottommargin="0" topmargin="0">
-		<table height="100%" border="0" cellpadding="0" cellspacing="0">
-			<tr>
-				<td>
-					Please select the sample you want to view:
-					<br>
-					<select onchange="OpenSample(this.value);">
-						<option value="html/sample01.html" selected>Javascript : Sample 01 : Editor with all features</option>
-						<option value="html/sample02.html">Javascript : Sample 02 : Replacement of a TEXTAREA</option>
-						<option value="html/sample03.html">Javascript : Sample 03 : Multi-language support</option>
-						<option value="html/sample04.html">Javascript : Sample 04 : Toolbar selection</option>
-						<option value="html/sample05.html">Javascript : Sample 05 : Skins support</option>
-						<option value="html/sample06.html">Javascript : Sample 06 : Plugins support</option>
-						<option value="html/sample07.html">Javascript : Sample 07 : Full Page editing</option>
-						<option value="html/sample08.html">Javascript : Sample 08 : Editor API usage</option>
-						<option value="html/sample09.html">Javascript : Sample 09 : Complex form (multiple editors)</option>
-						<option value=""> </option>
-						<option value="cfm/sample01.cfm">ColdFusion : Sample 01 : Editor with all features</option>
-						<option value="cfm/sample02_mx.cfm">ColdFusion : Sample 02 : Advanced version for ColdFusion MX</option>
-						<option value=""> </option>
+	</script>
+</head>
+<body style="margin-top: 0px; margin-bottom: 0px;">
+	<table border="0" cellpadding="0" cellspacing="0" style="height: 100%">
+		<tr>
+			<td>
+				Please select the sample you want to view:
+				<br />
+				<select onchange="OpenSample(this.value);">
+					<optgroup label="JavaScript">
+						<option value="html/sample01.html" selected="selected">JavaScript : Sample 01 : Editor
+							with all features</option>
+						<option value="html/sample02.html">JavaScript : Sample 02 : Replacement of a TEXTAREA</option>
+						<option value="html/sample03.html">JavaScript : Sample 03 : Multi-language support</option>
+						<option value="html/sample04.html">JavaScript : Sample 04 : Toolbar selection</option>
+						<option value="html/sample05.html">JavaScript : Sample 05 : Skins support</option>
+						<option value="html/sample06.html">JavaScript : Sample 06 : Plugins support</option>
+						<option value="html/sample07.html">JavaScript : Sample 07 : Full Page editing</option>
+						<option value="html/sample08.html">JavaScript : Sample 08 : Editor API usage</option>
+						<option value="html/sample09.html">JavaScript : Sample 09 : Complex form (multiple editors)</option>
+						<option value="html/sample10.html">JavaScript : Sample 10 : Shared toolbar on same page</option>
+						<option value="html/sample11.html">JavaScript : Sample 11 : Shared toolbar from IFRAME</option>
+						<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>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="Active Fox Pro">
+						<option value="afp/sample01.afp">AFP : Sample 01 : Editor with all features</option>
+						<option value="afp/sample02.afp">AFP : Sample 02 : Multi-language support</option>
+						<option value="afp/sample03.afp">AFP : Sample 03 : Toolbar selection</option>
+						<option value="afp/sample04.afp">AFP : Sample 04 : Skins support</option>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="ASP">
 						<option value="asp/sample01.asp">ASP : Sample 01 : Editor with all features</option>
 						<option value="asp/sample02.asp">ASP : Sample 02 : Multi-language support</option>
 						<option value="asp/sample03.asp">ASP : Sample 03 : Toolbar selection</option>
 						<option value="asp/sample04.asp">ASP : Sample 04 : Skins support</option>
-						<option value=""> </option>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="ColdFusion">
+						<option value="cfm/sample01.cfm">ColdFusion : Sample 01 : Editor with all features</option>
+						<option value="cfm/sample02_mx.cfm">ColdFusion : Sample 02 : Advanced version for ColdFusion
+							MX</option>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="Lasso">
+						<option value="lasso/sample01.lasso">Lasso : Sample 01 : Editor with all features</option>
+						<option value="lasso/sample02.lasso">Lasso : Sample 02 : Multi-language support</option>
+						<option value="lasso/sample03.lasso">Lasso : Sample 03 : Toolbar selection</option>
+						<option value="lasso/sample04.lasso">Lasso : Sample 04 : Skins support</option>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="Perl">
 						<option value="perl/sample01.cgi">Perl : Sample 01 : Editor with all features</option>
 						<option value="perl/sample02.cgi">Perl : Sample 02 : Multi-language support</option>
 						<option value="perl/sample03.cgi">Perl : Sample 03 : Toolbar selection</option>
 						<option value="perl/sample04.cgi">Perl : Sample 04 : Skins support</option>
-						<option value=""> </option>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="PHP">
 						<option value="php/sample01.php">PHP : Sample 01 : Editor with all features</option>
 						<option value="php/sample02.php">PHP : Sample 02 : Multi-language support</option>
 						<option value="php/sample03.php">PHP : Sample 03 : Toolbar selection</option>
 						<option value="php/sample04.php">PHP : Sample 04 : Skins support</option>
-					</select>
-				</td>
-			</tr>
-		</table>
-	</body>
+					</optgroup>
+					<optgroup label="&nbsp;">
+					</optgroup>
+					<optgroup label="Python">
+						<option value="py/sample01.py">Python : Sample 01 : Editor with all features</option>
+					</optgroup>
+				</select>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/001.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/001.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/001.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 001.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css" />
-		<script type="text/javascript" src="../fckeditor.js"></script>
-		<script>
-
-function SubmitForm()
-{
-	document.forms[0].submit() ;
-}
-
-		</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 001</h1>
-		<P>
-			<STRONG>Expected results</STRONG>: The editor content must be loaded and the 
-			submit button must post the editors html.<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-				Wait the editor to load.</LI>
-			<LI>
-				Hit submit button and check the posted data.</LI></OL>
-		<P>
-			<hr>
-		</P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit"> <input type="button" value="Submit by Code" onclick="SubmitForm();">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/002.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/002.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/002.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,70 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 002.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 002</h1>
-		<P><STRONG>Expected results</STRONG>: The editor must work correctly when not value 
-			has been set<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Type some text and format it (use the "Bold" and&nbsp;"Style" commands).
-			<LI>
-			Check the toolbar buttons context sensitiveness.
-			<LI>
-			Switch to Source mode.
-			<LI>
-			Repeat steps 2, 3 and 4.
-			<LI>
-				Hit submit button and check the submitted data.
-			</LI>
-		</OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/003.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/003.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/003.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,72 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 003.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 003</h1>
-		<P><STRONG>Expected results</STRONG>: The user must be able to edit the complete 
-			page html.<BR>
-			<STRONG>Configurations</STRONG>: FullPage = true ;<BR>
-			<STRONG>Steps to Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Type some text.
-			<LI>
-			Switch to Source mode.
-			<LI>
-			Switch back to WYSIWYG mode.
-			<LI>
-			Repeat steps 2, 3 and 4.
-			<LI>
-				Hit submit button and check the submitted data.
-			</LI>
-		</OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Config["FullPage"] = true ;
-oFCKeditor.Value = '<html>\n\n<head><title></title></head><body>This is a Full Page editing Test:<br/>This is an image: <img src="' + sBasePath + 'editor/images/smiley/msn/lightbulb.gif" alt=""/></body></html>' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/004.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/004.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/004.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,105 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 004.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-		<script type="text/javascript" src="../fckeditor.js"></script>
-		<script language="javascript">
-
-function Show()
-{
-	document.getElementById('eEditor').style.display	= '' ;
-	document.getElementById('eNoEditor').style.display	= 'none' ;
-
-	// This is a hack for Gecko... it stops editing when the editor is hidden.
-	if ( !document.all )
-	{
-		var oEditor = FCKeditorAPI.GetInstance( 'FCKeditor1' ) ;
-		
-		if (  oEditor.EditMode == FCK_EDITMODE_WYSIWYG )
-			oEditor.MakeEditable() ;
-	}
-}
-
-function Hide()
-{
-	document.getElementById('eEditor').style.display	= 'none' ;
-	document.getElementById('eNoEditor').style.display	= '' ;
-}
-
-		</script>
-	</head>
-	<body>
-		<h1 id="Prova">FCKeditor - Test 004</h1>
-		<P>
-			<STRONG>Expected results</STRONG> : The editor must still work when hidding it 
-			programmatically (through javascript).<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the page to load.
-			<LI>
-			Hit the "Show Editor" button.
-			<LI>
-			Insert some text and format it.
-			<LI>
-			Hit the "Hide Editor" button.
-			<LI>
-			Hit the "Submit" and check the posted HTML.
-			<LI>
-			Close the "Submit" window.
-			<LI>
-			Hit the "Show Editor" button.
-			<LI>
-				Repeat steps 2 and 4.</LI></OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<div id="eNoEditor">
-				<input type="button" value="Show Editor" onclick="Show();">
-			</div>
-			<div id="eEditor" style="DISPLAY: none">
-				<input type="button" value="Hide Editor" onclick="Hide();">
-				<br><br>
-				<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
-oFCKeditor.Create() ;
-//-->
-				</script>
-			</div>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/005.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/005.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/005.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 005.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 005</h1>
-		<P>
-			<STRONG>Expected results</STRONG>: The editor content must be loaded and the 
-			submit button must post the editors html. No javascript errors should be thorwn 
-			(security errors).<BR>
-			<STRONG>Configurations</STRONG>: BaseHref = http://www.fckeditor.net
-			<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Create a table with border =
-			   0&nbsp;and an anchor. 
-  <LI>Create an image and points it to /images/logotop.gif
-  <LI>Hit submit button and check the posted data.</LI></OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Config['BaseHref'] = 'http://www.fckeditor.net' ;
-oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/006.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/006.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/006.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 006.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 006</h1>
-		<P>
-			<STRONG>Expected results</STRONG>: The editor content must be loaded and the 
-			submit button must post the editors html. No javascript errors should be thorwn 
-			(security errors).<BR>
-			<STRONG>Configurations</STRONG>: BaseHref = http://www.fckeditor.net / FullPage 
-			= true
-			<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Create a table with border = 0 and an anchor.
-			<LI>
-			Create an image and points it to /images/logotop.gif
-			<LI>
-			Paste the following CSS tag in the source: &lt;link href="/css/main.css" type="text/css" rel="stylesheet" /&gt;
-			<LI>
-			Check the WYSIWYG mode.
-			<LI>
-				Hit submit button and check the posted data.</LI></OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Config['FullPage'] = true ;
-oFCKeditor.Config['BaseHref'] = 'http://www.fckeditor.net' ;
-oFCKeditor.Value	= '<html><head><title></title></head><body>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</body></html>' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/007.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/007.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/007.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 007.html
- * 	Test Page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 007</h1>
-		<P>
-			<STRONG>Expected results</STRONG>: The editor content must be loaded and the 
-			submit button must post the editor's html.<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Enter some text.
-			<LI>
-				Hit submit button and check the posted data.</LI></OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Value	= '<div></div>' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/008.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/008.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/008.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 008.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-			<script>
-
-function Validate()
-{
-	// Get the editor instance that we want to interact with.
-	var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
-
-	// Get the editor contents in XHTML.
-	if ( oEditor.GetXHTML( false ).length == 0 )
-	{
-		alert( 'The "Save" command must not submit if the editor is empty' ) ;
-		return false ;
-	}
-}
-
-			</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 008</h1>
-		<P>
-			<STRONG>Expected results</STRONG>: The editor content must be loaded and the 
-			submit button must post the editors html.<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Select all the content with the mouse and delete it.
-			<LI>
-			Hit the "Save" button - an alert should popup.
-			<LI>
-			Insert some text.
-			<LI>
-			Hit the "Save" button and check the posted data.
-			<LI>
-			Close the data window.
-			<LI>
-			Press the "New Page" button.
-			<LI>
-				Hit the "Save" button - an alert should popup.</LI></OL>
-		<P>
-			<hr>
-		<P></P>
-		<form action="sampleposteddata.asp" method="post" target="_blank" onsubmit="return Validate();">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/009.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/009.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/009.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: 009.html
- * 	Test page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<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="testcases.css" rel="stylesheet" type="text/css">
-			<script type="text/javascript" src="../fckeditor.js"></script>
-			<script>
-
-function FCKeditor_OnComplete( editorInstance )
-{
-	// Attach to the event fired when the editor's HTML is set.
-	editorInstance.Events.AttachEvent( 'OnAfterSetHTML', FCKeditor_OnAfterSetHTML ) ;
-}
-
-function FCKeditor_OnAfterSetHTML( editorInstance )
-{
-	// Get the actual color from the combo.
-	var sColor = document.getElementById('ActualColor').value ;
-	
-	// Set the color of the editor instance.
-	editorInstance.EditorDocument.body.style.backgroundColor = sColor ;
-}
-
-function SetActualColor()
-{
-	// Get the editor instance that we want to interact with.
-	var oEditor = FCKeditorAPI.GetInstance('FCKeditor1') ;
-	
-	// Call the event function to set the color.
-	FCKeditor_OnAfterSetHTML( oEditor ) ;
-}
-
-			</script>
-	</head>
-	<body>
-		<h1>FCKeditor - Test 009</h1>
-		<P>
-			<STRONG>Expected results</STRONG> : The user should be able to background color 
-			of the editor by code.<BR>
-			<STRONG>Configurations</STRONG>: Default<BR>
-			<STRONG>Steps to&nbsp;Reproduce</STRONG>:
-		</P>
-		<OL>
-			<LI>
-			Wait the editor to load.
-			<LI>
-			Type some text.
-			<LI>
-			Change the background color using the combo.
-			<LI>
-			Type more text.
-			<LI>
-			Switch to source view.
-			<LI>
-			Switch back to WYSIWYG. The background color must be the same.
-			<LI>
-			Repeate steps 3 to 6.
-			<LI>
-				Submit the form.</LI></OL>
-		<P>
-			<hr>
-		<P>
-		Select a color for the background:<br>
-		<select id="ActualColor" onchange="SetActualColor();">
-			<option value="white" selected>White</option>
-			<option value="red">Red</option>
-			<option value="green">Green</option>
-			<option value="gold">Gold</option>
-		</select>
-		</P>
-		<form action="sampleposteddata.asp" method="post" target="_blank">
-			<script type="text/javascript">
-<!--
-// Automatically calculates the editor base path based on the _samples directory.
-// This is usefull only for these samples. A real application should use something like this:
-// oFCKeditor.BasePath = '/fckeditor/' ;	// '/fckeditor/' is the default value.
-var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_testcases')) ;
-
-var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;
-oFCKeditor.BasePath	= sBasePath ;
-oFCKeditor.Value	= 'This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.' ;
-oFCKeditor.Create() ;
-//-->
-			</script>
-			<br>
-			<input type="submit" value="Submit">
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/sampleposteddata.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/sampleposteddata.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/sampleposteddata.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,44 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sampleposteddata.asp
- * 	This page lists the data posted by a form.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!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="testcases.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&nbsp;&nbsp;</td>
-				<td>Value</td>
-			</tr>
-			<% For Each sForm in Request.Form %>
-			<tr>
-				<td valign="top" nowrap><b><%=sForm%></b></td>
-				<td width="100%"><%=Replace( Server.HTMLEncode( Request.Form(sForm) ), Chr(13), "<br>" )%></td>
-			</tr>
-			<% Next %>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/_testcases/testcases.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_testcases/testcases.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_testcases/testcases.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,37 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: testcases.css
- * 	Styles used in the samples pages.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-body, td, input, select, textarea
-{
-	font-size: 12px;
-	font-family: Arial, Verdana, Sans-Serif;
-}
-
-h1
-{
-	font-weight: bold;
-	font-size: 180%;
-	margin-bottom: 10px;
-}
-
-form
-{
-	margin: 0px 0px 0px 0px;
-	padding: 0px 0px 0px 0px;
-}

Added: zope.html/trunk/src/zope/html/fckeditor/_upgrade.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_upgrade.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/_upgrade.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Upgrade</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<style type="text/css">
+		body { font-family: arial, verdana, sans-serif }
+		p { margin-left: 20px }
+	</style>
+</head>
+<body>
+	<h1>
+		FCKeditor Upgrade</h1>
+	<p>
+		Please check the following URL for notes regarding upgrade: <a href="http://wiki.fckeditor.net/Developer%27s_Guide/Upgrade">
+			http://wiki.fckeditor.net/Developer%27s_Guide/Upgrade</a></p>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/_whatsnew.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/_whatsnew.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/_whatsnew.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,2132 +1,2675 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!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
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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>FCKeditor - What's New?</title>
-		<style>
-			BODY { FONT-FAMILY: Arial, Verdana, Sans-Serif }
-			P { MARGIN-LEFT: 20px }
-			</style>
-	</head>
-	<body>
-		<H3>
-			Version 2.1.1</H3>
-		<P>New Features and Improvements:</P>
-		<UL>
-			<LI>
-				The new "<STRONG>Insert Page Break</STRONG>"&nbsp;command (for printing)&nbsp;has been introduced.*
-  <LI>The editor package now has a root directory called "FCKeditor".</LI></UL>
-		<P>Fixed Bugs:</P>
-		<UL>
-			<LI>
-				[<A 
-  href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1326285&amp;group_id=75348&amp;atid=543653" 
-  target="_blank">SF BUG-1326285</A>] [<A 
-  href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1316430&amp;group_id=75348&amp;atid=543653" 
-  target="_blank">SF BUG-1316430</A>] [<A 
-  href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1323662&amp;group_id=75348&amp;atid=543653" 
-  target="_blank">SF BUG-1323662</A>] [<A 
-  href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1326223&amp;group_id=75348&amp;atid=543653" 
-  target="_blank">SF BUG-1326223</A>] We are doing a little step back with this 
-  version. The ENTER and BACKSPACE behavior changes for Firefox have been 
-  remove. It is a nice feature, but we need much more testing&nbsp;on it. It 
-  introduced some bugs and so its preferable to not have that feature, avoiding 
-  problems (even if that feature was intended to solve some issues).
-  <LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1289372&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1275714</A>] Comments in the beginning of the 
-			source are now preserved when using the "undo" and "redo" commands.
-			<LI>
-				The "undo" and "redo" commands now work for the Style 
-  command.
-  <LI>An error in the execution of the pasting commands on 
-  Firefox has been fixed.
-  <LI>[<A 
-  href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1326184&amp;group_id=75348" 
-  target="_blank">SF BUG-1326184</A>] No strange (invalid) entities are created 
-  when using Firefox. Also, the &amp;nbsp; used by the FillEmptyBlocks setting 
-  is maintained even if you disable the ProcessHTMLEntities setting.</LI></UL>
-		<P>* This version has been partially sponsored by <A href="http://www.acttive.com.br/" target="_blank">
-				Acctive Software&nbsp;S.A.</A>.</P>
-		<H3>Version 2.1</H3>
-		<P>New Features and Improvements:</P>
-		<UL>
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1200328&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1200328</A>] The editor now offers a way to 
-			"protect" part of the source to remain untouched while editing or changing 
-			views.&nbsp;Just use the "FCKConfig.ProtectedSource" object to configure it and 
-			customize to your needs. It is based on regular expressions. See fckconfig.js 
-			for some samples.
-			<LI>
-				The editor now offers native support for <STRONG>Lasso</STRONG>. Thanks and 
-			welcome&nbsp;to our new developer Jason Huck.
-			<LI>
-				New language files are available:
-				<UL>
-					<LI>
-						<STRONG>Faraose</STRONG>
-					(by Smin Lassaberg and&nbsp;Helgi Arnthorsson)
-					<LI>
-						<STRONG>Malay</STRONG>
-					(by Fairul Izham Mohd Mokhlas)
-					<LI>
-						<STRONG>Mongolian</STRONG>
-					(by Lkamtseren Odonbaatar)
-					<LI>
-						<STRONG>Vietnamese</STRONG> (by Phan Binh Giang)</LI></UL>
-			<LI>
-			A new configurable&nbsp;ColdFusion connector is available. Thanks to Mark 
-			Woods. Many enhancements has been introduced with it.
-			<LI>
-			The PHP connector for the default File Browser now sorts the folders and files 
-			names.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1289372&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1289372</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1282758&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1282758</A>] In the PHP connector it is now 
-			possible to set the absolute (server) path to the User Files directory, 
-			avoiding problems with Virtual Directories, Symbolic Links or Aliases. Take a 
-			look at the config.php file.
-			<LI>
-			The ASP.Net uploader (for Quick Uploads) has been added to the package.
-			<LI>
-				A new way to define <STRONG>simple "combo" toolbar items</STRONG>
-			, like Style and Font, has been introduced.&nbsp;Thanks&nbsp;to Steve 
-			Lineberry.&nbsp;See sample06.html and the "simplecommands" plugin&nbsp;to fully 
-			understand it.
-			<LI>
-			A new test case has been added that shows how to set the editor background 
-			dynamically without using a CSS.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155906&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155906</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1110116&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1110116</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1216332&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1216332</A>] The "AutoDetectPasteFromWord" 
-			configuration option is back (IE only feature).
-			<LI>
-			The&nbsp;new "OnAfterLinkedFieldUpdate" event has been introduced. If is fired 
-			when the editor updates its hidden associated field.
-			<LI>
-			Attention: The color of the right border of the toolbar (left on RTL 
-			interfaces) has been moved from code to the CSS (TB_SideBorder class). Update 
-			your custom skins.
-			<LI>
-			A&nbsp;sample "htaccess.txt" file has been added to the editor's package to 
-			show how to configure some Linux sites that could present problems on Firefox 
-			with "Illegal characters" errors. Respectively the "" chars.
-			<LI>
-			With the JavaScript, ASP and PHP integration files, you can set the QueryString 
-			value "fcksource=true" to load the editor using the source files (located in 
-			the _source directory) instead of the compressed ones. Thanks to Kae Verens for 
-			the suggestion.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1246623&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1246623</A>] The new configuration option 
-			"ForceStrongEm" has been introduced so you can force the editor to convert all 
-			&lt;B&gt; and &lt;I&gt; tags to &lt;STRONG&gt; and &lt;EM&gt; respectively.
-			<LI>
-				A nice contribution has been done by Goss Interactive Ltd:
-				<UL>
-					<LI>
-						[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1246949&amp;group_id=75348&amp;atid=543653"
-							target="_blank">SF BUG-1246949</A>] Implemented ENTER key and BACKSPACE key 
-						handlers for Gecko so that P tags (or an appropriate block element) get 
-						inserted instead of BR tags when not in the UseBROnCarriageReturn config mode.
-						<BR>
-						The ENTER key handling has been written to function much the same as the ENTER 
-						key handling on IE : as soon as the ENTER key is pressed, existing content will 
-						be wrapped with a suitable block element (P tag) as appropriate and a new block 
-						element (P tag) will be started.
-						<BR>
-					The ENTER key handler also caters for pressing ENTER within empty list items - 
-					ENTER in an empty item at the top of a list will remove that list item and 
-					start a new P tag above the list; ENTER in an empty item at the bottom of a 
-					list will remove that list item and start a new P tag below the list; ENTER in 
-					an empty item in the middle of a list will remove that list item, split the 
-					list into two, and start a new P tag between the two lists.
-					<LI>
-					Any tables that are found to be incorrectly nested within a block element (P 
-					tag) will be moved out of the block element when loaded into the editor. This 
-					is required for the new ENTER/BACKSPACE key handlers and it also avoids 
-					non-compliant HTML.&nbsp;
-					<LI>
-						The InsertOrderedList and InsertUnorderedList commands have been overridden on 
-						Gecko to ensure that block elements (P tags) are placed around a list item's 
-						content when it is moved out of the list due to clicking on the editor's list 
-						toolbar buttons (when not in the UseBROnCarriageReturn config mode).
-					</LI>
-				</UL>
-			</LI>
-		</UL>
-		<P>Fixed Bugs:</P>
-		<UL>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1253255&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1253255</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1253255&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1265520</A>] Due to changes on version 2.0, the 
-			anchor list was not anymore visible in the link dialog window. It has been 
-			fixed.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1242979&amp;group_id=75348"
-					target="_blank">SF BUG-1242979</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1251354&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1251354</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1256178&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1256178</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1274841&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1274841</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1303949&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1303949</A>] Due to a bug on Firefox, some keys 
-			stopped working on startup over Firefox. It has been fixed.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1251373&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1251373</A>
-			] The above fix also has&nbsp;corrected some strange behaviors on Firefox.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1144258"
-					target="_blank">SF BUG-1144258</A>] [<A href="https://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1092081"
-					target="_blank">SF BUG-1092081</A>] The File Browsers now run on 
-			the&nbsp;same server session used in the page where the editor is placed in (IE 
-			issue). Thanks to Simone Chiaretta.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1305619&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1305619</A>
-			] No more repeated login dialogs when running the editor with Windows 
-			Integrated Security with IIS.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1245304&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1245304</A>] The Test Case 004 is now working 
-			correctly. It has been changed to set the editor hidden at startup.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1290610&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1290610</A>
-			] Over HTTPS, there were some warnings when loading the Images, Flash and Link 
-			dialogs. Fixed.
-			<LI>
-			Due to Gecko bugs, two errors were thrown when loading the editor in a hidden 
-			div. Workarounds have been introduced. In any case, the testcase 004 hack is 
-			needed when showing the editor (as in a tabbed interface).
-			<LI>
-			An invalid path in the dialogs CSS file has been corrected.
-			<LI>
-			On IE, the Undo/Redo can now be controlled using the Ctrl+Z and Ctrl+Y shortcut 
-			keys.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1295538&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1295538</A>
-			] A few Undo/Redo fixes for IE have been done.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1247070&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1247070</A>] On Gecko, it is now possible to use 
-			the shortcut keys for Bold (CTRL+B), Italic (CTRL+I) and Underline (CTRL+U), 
-			like in IE.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1274303&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1274303</A>] The "Insert Column" command is now 
-			working correctly on TH cells. It also copies any attribute applied to the 
-			source cells.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1287070&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1287070</A>
-			] In the Universal Keyboard, the Arabic keystrokes translator is now working 
-			with Firefox. Thanks again to Abdul-Aziz Al-Oraij.
-			<LI>
-			The editor now handles AJAX requests with HTTP status 304.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157780&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1157780</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229077&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1229077</A>] Weird comments are now handled 
-			correctly (ignored on some cases).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155774&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155774</A>] A spelling error in the Bulleted 
-			List Properties dialog has been corrected.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1272018&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1272018</A>] The ampersand character can now be 
-			added from the Special Chars dialog.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1263161&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1263161</A>] A small fix has been applied to the 
-			sampleposteddata.php file. Thanks to Mike Wallace.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1241504&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1241504</A>] The editor now looks also for the 
-			ID of the hidden linked field.
-			<LI>
-			The caption property on tables is now working on Gecko. Thanks to Helen Somers 
-			(Goss Interactive Ltd).
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1297431&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1297431</A>] With IE, the editor now works 
-			locally when its files are placed in a directory path that contains spaces.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1279551&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1279551</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1242105&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1242105</A>] On IE, some features are dependant 
-			of ActiveX components (secure... distributed&nbsp;with IE itself). Some 
-			security setting could avoid the usage of those components and the editor would 
-			stop working. Now a message is shown, indicating the use the minimum necessary 
-			settings need&nbsp;by the editor to run.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1298880&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1298880</A>] Firefox can't handle the STRONG and 
-			EM tags. Those tags are now converted to B and I so it works accordingly.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1271723&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1271723</A>] On IE, it is now possible to select 
-			the text and work correctly in the contents of absolute positioned/dimensioned 
-			divs.
-			<LI>
-			On IE, there is no need to click twice in the editor to&nbsp;activate the 
-			cursor in the editing area.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1221621&amp;group_id=75348"
-					target="_blank">SF BUG-1221621</A>] Many "warnings" in the Firefox 
-			console are not thrown anymore.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1295526&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1295526</A>] While&nbsp;editing on "FullPage" 
-			mode the basehref is now active for CSS "link" tags.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1222584&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1222584</A>] A small fix to the PHP connector 
-			has been applied.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1281313&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1281313</A>] A few small changes to avoid 
-			problems with Plone. Thanks to Jean-mat.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1275911&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1275911</A>] A check for double dots sequences on 
-				directory names on creation has been introduced to the PHP and ASP connectors.</LI></UL>
-		<H3>Version 2.0</H3>
-		<P>New Features and Improvements:</P>
-		<UL>
-			<LI>
-				The&nbsp;new "<STRONG>Flash</STRONG>" command is available. Now you can 
-			easily handle Flash content, over IE and Gecko, including server browser 
-			integration and context menu support. Due to limitations of the browsers, it is 
-			not possible to see the preview of the movie while editing, so a nice 
-			"placeholder" is used instead. *
-			<LI>
-				A&nbsp;"<STRONG>Quick Upload</STRONG>
-			" option is now available in the link, image and flash dialog windows, so the 
-			user don't need to go (or have) the File Browser for this operations. The ASP 
-			and PHP uploader&nbsp;are included.&nbsp;Take a look at the configuration 
-			file.***
-			<LI>
-				Added support for <STRONG>Active FoxPro Pages</STRONG>
-			. Thanks to our new developer, Snke Freitag.
-			<LI>
-				It is now possible to <STRONG>disable the size handles</STRONG>
-			for images and tables (IE only feature). Take a look at the DisableImageHandles 
-			and DisableTableHandles configuration options.
-			<LI>
-			The handles on form fields&nbsp;(small squares around them) and the inline 
-			editing of&nbsp;its contents&nbsp;have been disabled. This makes it easier to 
-			users to use the controls.
-			<LI>
-			A much better support for Word pasting operations has been introduced. Now it 
-			uses a dialog box, in this way we have better results and more control.**
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1225372&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1225372</A>] A small change has been done to the 
-				PHP integration file. The generic __construct constructor has been added for 
-				better PHP 5 sub-classing&nbsp;compatibility (backward compatible). Thanks to 
-				Marcus Bointon.</LI></UL>
-		<P>Fixed Bugs:</P>
-		<UL>
-			<LI>
-			ATTENTION: Some security changes have been made to the connectors. Now you must 
-			explicitly enable the connector you want to use. Please test your application 
-			before deploying this update.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1211591"
-					target="_blank">SF BUG-1211591</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1204273&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1204273</A>] The connectors have been changed so 
-			it is not possible to use ".." on directory names.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219734&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1219734</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219728&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1219728</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1208654&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1208654</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205442&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1205442</A>] There was an error in the page 
-			unload on some cases that has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1209708"
-					target="_blank">SF BUG-1209708</A>] [<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1214125"
-					target="_blank">SF BUG-1214125</A>] The undo on IE is now working 
-			correctly when the user starts typing.
-			<LI>
-			The preview now loads "Full Page" editing correctly. It also uses the same 
-			XHTML code produced by the final output.
-			<LI>
-			The "Templates" dialog was not working on some very specific (and strange) 
-			occasions over IE.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1199631&amp;group_id=75348"
-					target="_blank">SF BUG-1199631</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1171944&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1171944</A>] A new option is available to avoid 
-			a bad IE behavior that shows the horizontal scrollbar even when not needed. You 
-			can now force the vertical scrollbar to be always visible. Just set the 
-			"IEForceVScroll" configuration option to "true". Thanks to Grant Bartlett.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212026&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1212026</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228860&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1228860</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1211775&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1211775</A>] [<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1199824"
-					target="_blank">SF BUG-1199824</A>] An error in the Packager has been 
-			corrected.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1163669"
-					target="_blank">SF BUG-1163669</A>] The XHTML processor now adds a 
-			space before the closing slash of tags that don't have a closing tag, like 
-			&lt;br /&gt;.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1213733&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1213733</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1216866&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1216866</A>]&nbsp;[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1209673&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1209673</A>]&nbsp;[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155454&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155454</A>]&nbsp;[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1187936&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1187936</A>
-			]&nbsp;Now, on Gecko, the source is opened in a dialog window to avoid fatal 
-			errors (Gecko bugs).
-			<LI>
-			Some pages have been changed to avoid importing errors on Plone. Thanks to 
-			Arthur Kalmenson.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1171606&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1171606</A>] There&nbsp;is a bug on IE that 
-			makes the editor to not work if the instance name matches a meta tag name. 
-			Fixed.
-			<LI>
-			On Firefox, the source code is now opened in a dialog box, to avoid error on 
-			pages with more than one editor.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1225703&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1225703</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1214941&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1214941</A>] The "ForcePasteAsPlainText" 
-			configuration option is now working correctly on Gecko browsers. Thanks to 
-			Manuel Polo.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228836&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1228836</A>] The "Show Table Borders" feature is 
-			now working on Gecko browsers.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212529&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1212529</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212517&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1212517</A>] The default File Browser now 
-			accepts connectors with querystring parameters (with "?"). Thanks to Tomas 
-			Jucius.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1233318&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1233318</A>] A JavaScript error thrown when 
-			using the Print command has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229696&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1229696</A>] A regular expression has been 
-			escaped to avoid problems when opening the code in some editors. It has been 
-			moved to a&nbsp;dialog window.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1231978&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1231978</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228939&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1228939</A>] The Preview window is now using the 
-			Content Type and Base href.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1232056&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1232056</A>] The&nbsp;anchor icon is now working 
-			correctly on IE.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1232056&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1202468</A>] The anchor icon is now available on 
-			Gecko too.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1236279&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1236279</A>] A security warning has been 
-			corrected when using the File Browser over HTTPS.
-			<LI>
-			The ASP implementation now avoid errors when setting the editor value to null 
-			values.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1237359&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1237359</A>] The trailing &lt;BR&gt; added by 
-			Gecko at the end of the source is now removed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1170828"
-					target="_blank">SF BUG-1170828</A>] No more &amp;nbsp; is added to the 
-			source when using the "New Page" button.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1165264&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1165264</A>] A&nbsp;new configuration option has 
-			been included to force the editor to ignore empty paragraph 
-			values&nbsp;(&lt;p&gt;&amp;nbsp;&lt;/p&gt;), returning empty ("").
-			<LI>
-			No more &amp;nbsp; is added when creating a table or adding columns, rows or 
-			cells.
-			<LI>
-			The &lt;TD&gt; tags are now included in the FillEmptyBlocks configuration 
-			handling.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1224829&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1224829</A>] A small bug in the "Find" dialog 
-			has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1221307&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1221307</A>] A small bug in the "Image" dialog 
-			has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219981&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1219981</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155726&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155726</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1178473&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1178473</A>] It is handling the &lt;FORM&gt;, 
-			&lt;TEXTAREA&gt; and &lt;SELECT&gt; tags "name" attribute correctly. Thanks to 
-			thc33.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205403&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1205403</A>] The checkbox and radio button 
-			values are now handled correctly in their dialog windows. Thanks to thc33.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1236626&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1236626</A>] The toolbar now doesn't need to 
-			collapse when unloading the page (IE only).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212559&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1212559</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1017231&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1017231</A>] The "Save" button now calls the 
-			"onsubmit" event before posting the form. The submit can be cancelled if the 
-			onsubmit returns "false".
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1215823&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1215823</A>] The editor now works correctly on 
-			Firefox if it values is set to "&lt;p&gt;&lt;/p&gt;".
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1217546&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1217546</A>] No error is thrown when "pasting as 
-			plain text" and no text is available for pasting (as an image for example).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1207031&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1207031</A>] [<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1223978"
-					target="_blank">SF BUG-1223978</A>] The context menu is now available 
-			in the source view.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1213871"
-					target="_blank">SF BUG-1213871</A>] Undo has been added to table 
-			creation and table operation commands.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205211&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1205211</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229941&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1229941</A>] Small bug in the mcpuk file 
-				browser&nbsp;have been corrected.</LI></UL>
-		<P>* This version has been partially sponsored by <A href="http://www.infineon.com/" target="_blank">
-				Infineon Technologies AG</A>.<BR>
-			** This version has been partially sponsored by <a href="http://www.visualsoft.co.uk">
-				Visualsoft</a> <a href="http://www.visualsoft.co.uk/websolutions.html">Web 
-				Solutions</a>.<BR>
-			*** This version has been partially sponsored by <A href="http://www.webcrossing.com" target="_blank">
-				Web Crossing, Inc</A>.</P>
-		<H3>Version 2.0&nbsp;FC (Final Candidate)</H3>
-		<P>New Features and Improvements:</P>
-		<UL>
-			<LI>
-				A new tab called "<STRONG>Link</STRONG>" is available in the<STRONG> Image Dialog</STRONG>
-			window. In this way you can insert or modify the image link directly from that 
-			dialog.*
-			<LI>
-				The new "<STRONG>Templates</STRONG>" command is now available. Now the user 
-			can select from a list of pre-build HTML and fill the editor with it. Take a 
-			look at the "_docs" for more info.**
-			<LI>
-				The <A href="http://mcpuk.net/fbxp/" target="_blank">mcpuk's</A>
-			File Browser for PHP has been included in the package. He became the official 
-			developer of the File Manager for FCKeditor, so we can expect good news in the 
-			future.
-			<LI>
-				New configuration options are available to <STRONG>hide tabs</STRONG> from the <STRONG>
-					Image</STRONG> Dialog&nbsp;and <STRONG>Link</STRONG>
-			Dialog windows: LinkDlgHideTarget, LinkDlgHideAdvanced, ImageDlgHideLink and 
-			ImageDlgHideAdvanced.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1189442&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1189442</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1187164&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1187164</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185905&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1185905</A>] It is now possible to configure the 
-				editor to <STRONG>not convert Greek</STRONG> or special&nbsp;<STRONG>Latin </STRONG>
-			letters to ther specific HTML entities. You can also configure it to not 
-			convert any character at all. Take a look at the "ProcessHTMLEntities", 
-			"IncludeLatinEntities" and "IncludeGreekEntities" configuration options.
-			<LI>
-				New language files are available:
-				<UL>
-					<LI>
-						<STRONG>Basque</STRONG>
-					(by Ibon Igartua)
-					<LI>
-						<STRONG>English (Australia / United Kingdom)</STRONG>
-					(by Christopher Dawes)
-					<LI>
-						<STRONG>Ukrainian</STRONG> (by Alexander Pervak)</LI></UL>
-			<LI>
-			The version and date information have been removed from the files headers to 
-			avoid unecessary diffs in source control systems when new versions are released 
-			(from now on).
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1159854&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1159854</A>] Ther HTML output rendered by the 
-			server side integration files are now XHTML compatible.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181823&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1181823</A>] It is now possible to set the 
-			desired DOCTYPE to use when edit HTML fragments (not in Full Page mode).
-			<LI>
-				There is now an optional way to implement different "mouse over" effects to the 
-				buttons when they are "on" of "off".</LI></UL>
-		<P>Fixed Bugs:</P>
-		<UL>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1162200&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1162200</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1161633&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1161633</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1050293&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1050293</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1058948&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1058948</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1109120&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1109120</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155408&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155408</A>] The IE memory leak bug has been 
-			solved. The code has been completely reviewed and many memory usage 
-			improvements have been done.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1179645&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1179645</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1183252&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1183252</A> ] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166779&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1181647</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155627&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155627</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155782&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155782</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155750&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155750</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157166&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1157166</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157857&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1157857</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1158121&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1158121</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1177153&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1177153</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1175847&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1175847</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155747&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1155747</A>] There was a loading problem in 
-			Gecko browsers in some cases. It has been solved.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1161147&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1161147</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157635&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1157635</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149805&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1149805</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124600&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1124600</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1117535&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1117535</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1118145&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1118145</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098113&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1098113</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092272&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1092272</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086416&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1086416</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1027952&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1027952</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=978441&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-978441</A>
-			] A custom Undo/Redo system has been implemented for IE.
-			<LI>
-			The editor startup execution is now made in the right order (so configurations 
-			override works correctly).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166779&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1166779</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166651&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1166651</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1066198&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1066198</A>]&nbsp;[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090388&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1090388</A>
-			]&nbsp;No more "illegible" characters in the toolbar when "ClearType" is 
-			active.
-			<LI>
-			It is now possible to set the "width" style of the BODY tag in the 
-			EditorAreaCSS to limit the editing area size.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1113620&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1113620</A>] In IE, the editor doesn't generate 
-			new entries in the browser history anymore.
-			<LI>
-			The editor now uses the same method used on version RC2 to load its contents on 
-			Gecko. It is now possible to have more than one editor in the page. This change 
-			has a negative impact: the BaseHref property is not working.
-			<LI>
-			Changes have been made to make the editor work with PHP versions&nbsp;older 
-			than&nbsp;2.1.0.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1190835&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1190835</A>] [<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1196547&amp;group_id=75348"
-					target="_blank">SF BUG-1196547</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156863&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1156863</A>] The "Insert Horizontal Line" 
-			command is now working correctly. Thanks to Hector Raul Colonia Coral.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1101861&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1101861</A>] The editor now shows a normal 
-			textarea correctly (as expected) on Safari browsers (and all "like Gecko" 
-			browsers). Thanks to Bob Paul.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1182224&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1182224</A>] The PHP connector can now handle 
-			file extensions in upper case,&nbsp;like JPG or Gif, correctly. Thanks to Georg 
-			Ivancsic.
-			<LI>
-			The "sample06.html" is now working correctly with Gecko browsers.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156660&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1156660</A>] Some fixes have been applied to the 
-			Universal Keyboard. Thanks to Abdul-Aziz Al-Oraij.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1192881&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1192881</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185006&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1185006</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156068&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1156068</A>] The "Browse Server" button is now 
-			working correctly for the Background Image in the "Document Properties" dialog 
-			window (full page editing). The active "BaseHref" is also set to the preview 
-			window.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1191704&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1191704</A>] Invalid HTML tags (according to the 
-			W3C naming standards for XHTML) are ignored with no errors.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185911&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1185911</A>] The Greek language file name has 
-			been corrected to "el.js".
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181572&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1181572</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1158421&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1158421</A>] The "Print" button is now active on 
-			startup.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181572&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1165219</A>] No error occours when the user 
-			defines just one color to the FontColors on "in page" configurations.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1162957&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1162957</A>] The small problem with Zope 
-			(ZPT)&nbsp;has been solved.
-			<LI>
-				Some small RTL / LTR corrections has been done in the interface and the Farsi 
-				language has been added to the Universal Keyboard. Thanks to Silver 
-				Baghdasarian.</LI></UL>
-		<P>* This version has been partially sponsored by the <A href="http://www.hamilton.edu">
-				Hamilton College</A>.<BR>
-			** This version has been partially sponsored by <A href="http://www.infineon.com/" target="_blank">
-				Infineon Technologies AG</A>.</P>
-		<H3>Version 2.0 RC3 (Release Candidate 3)</H3>
-		<P>New Features and Improvements:</P>
-		<UL>
-			<LI>
-				The editor now offers native <STRONG>Perl integration</STRONG>! Thanks and 
-			welcome to Takashi Yamaguchi, our official Perl developer.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026584&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1026584</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1112692&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1112692</A>] <STRONG>Formatting </STRONG>has 
-				been introduced to the <STRONG>Source View</STRONG>. The output HTML can 
-			also be formatted. You can choose to use spaces or tab for indentation. See the 
-			configuration file.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1031492&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1031492</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1004293&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1004293</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=784281&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-784281</A>] It is now possible to edit <STRONG>full 
-					HTML pages</STRONG>
-			with the editor. Use the "FullPage" configuration setting to activate it.
-			<LI>
-				The&nbsp;new toolbar command, "<STRONG>Document Properties</STRONG>"&nbsp;is 
-			available to edit document header info, title, colors, background, etc... Full 
-			page editing must be enabled.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1151448&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1151448</A>] <STRONG>Spell Check</STRONG> is now 
-				available. You can use <STRONG>ieSpell</STRONG> or <STRONG>Speller Pages</STRONG>
-			right from FCKeditor. More info about configuration can be found in the _docs 
-			folder.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1041686&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1041686</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086386&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1086386</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124602&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1124602</A>] New "<STRONG>Insert Anchor</STRONG>" 
-			command has been introduced. (The anchor icon is visible only over&nbsp;IE for 
-			now).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1123816&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1123816</A>] It is now possible to configure the 
-				editor to <STRONG>show "fake" table borders</STRONG>
-			when the border size is set to zero. (It is working only on IE for now).
-			<LI>
-				<STRONG>Numbered</STRONG> and <STRONG>Bulleted</STRONG> lists can now be <STRONG>configured</STRONG>
-			. Just right click on then.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088608&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1088608</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1144047&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1144047</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149808&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1149808</A>] A new configuration setting is 
-				available, "<STRONG>BaseHref</STRONG>
-			", to set the URL used to resolve relative links.
-			<LI>
-				It is now possible to set&nbsp;the <STRONG>content language direction</STRONG>
-			. See the "FCKConfig.ContentLangDirection" configurations setting.
-			<LI>
-				All <STRONG>Field Commands</STRONG> available on version 1.6 have been upgraded 
-				and&nbsp;included in this version: <STRONG>form</STRONG>, <STRONG>checkbox</STRONG>,
-				<STRONG>radio button</STRONG>, <STRONG>text field</STRONG>, text <STRONG>area</STRONG>,
-				<STRONG>select field</STRONG>, <STRONG>button</STRONG>, <STRONG>image button</STRONG>
-				and <STRONG>hidden field</STRONG>
-			.
-			<LI>
-				<STRONG>Context menu</STRONG> options (right-click) has been added for: <STRONG>anchors</STRONG>,
-				<STRONG>select field</STRONG>, <STRONG>textarea</STRONG>, <STRONG>checkbox</STRONG>,
-				<STRONG>radio button</STRONG>, <STRONG>text field</STRONG>, <STRONG>hidden field</STRONG>,
-				<STRONG>textarea</STRONG>, <STRONG>button</STRONG>, <STRONG>image button</STRONG>,
-				<STRONG>form</STRONG>, <STRONG>bulleted list</STRONG> and <STRONG>numbered list</STRONG>
-			.
-			<LI>
-				The "<STRONG>Universal Keyboard</STRONG>" has been converted from version 
-			1.6 to this one and it's now available.
-			<LI>
-				It is now possible to <STRONG>configure</STRONG> the items to be shown in the <STRONG>
-					context menu</STRONG>
-			. Just use the FCKConfig.ContextMenu option&nbsp;at fckconfig.js.
-			<LI>
-				A new configuration (FillEmptyBlocks)&nbsp;is available to force the editor to <STRONG>
-					automatically insert a &amp;nbsp;</STRONG>
-			on empty block elements (p, div, pre, h1, etc...) to avoid differences from the 
-			editing and the final result. (Actually, the editor automatically "grows" empty 
-			elements to make the user able to enter text on it). Attention: the extra 
-			&amp;nbsp; will be added when switching from WYSIWYG to Source View, so the 
-			user may see an additional space on empty blocks. (XHTML support must be 
-			enabled).
-			<LI>
-				It is now possible to configure the <STRONG>toolbar</STRONG> to "<STRONG>break</STRONG>
-			" between two toolbar strips. Just insert a "/" between then. Take a look at 
-			fckconfig.js for a sample.
-			<LI>
-				New Language files are available:
-				<UL>
-					<LI>
-						<STRONG>Brazilian Portuguese</STRONG>
-					(by Carlos Alberto Tomatis Loth)
-					<LI>
-						<STRONG>Bulgarian</STRONG>
-					(by Miroslav Ivanov)
-					<LI>
-						<STRONG>Esperanto</STRONG>
-					(by Tim Morley)
-					<LI>
-						<STRONG>Galician</STRONG>
-					(by Fernando Riveiro Lopez)
-					<LI>
-						<STRONG>Japanese</STRONG>
-					( by Takashi Yamaguchi)
-					<LI>
-						<STRONG>Persian</STRONG>
-					(by Hamed Taj-Abadi)
-					<LI>
-						<STRONG>Romanian</STRONG>
-					(by Adrian Nicoara)
-					<LI>
-						<STRONG>Slovak</STRONG>
-					(by Gabriel Kiss)
-					<LI>
-						<STRONG>Thai </STRONG>
-					(by Audy Charin Arsakit)
-					<LI>
-						<STRONG>Turkish</STRONG>
-					(by Reha Bier)
-					<LI>
-						The Chinese Traditional has been set as the default (zn) instead of zn-tw.</LI></UL>
-			<LI>
-			Warning: All toolbar image images have been changed. The "button." prefix has 
-			been removed. If you have your custom skin, please rename your files.
-			<LI>
-				A new plugin is available in the package: "<STRONG>Placeholders</STRONG>". 
-			In this way you can insert non editable tags in your document to be processed 
-			on server side (very specific usage).
-			<LI>
-			The ASPX files are no longer available in this package. They have been moved to 
-			the FCKeditor.Net package. In this way the ASP.Net integration is much better 
-			organized.
-			<LI>
-			The FCKeditor.Packager program is now part of the main package. It is not 
-			anymore&nbsp;distributed separately.
-			<LI>
-			The PHP connector now sets the uploaded file permissions (chmod)&nbsp;to 0777.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090215&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1090215</A>] It's now possible to give back 
-			more info from your custom image browser calling the SetUrl( url [, width] [, 
-			height] [, alt] ). Thanks to Ben Noblet.
-			<LI>
-			The package files now maintain their original "Last Modified" date, so 
-			incremental FTP uploads can be used to update to&nbsp;new versions of the 
-			editor (from now on).
-			<LI>
-				The "Source" view now forces its contents to be written in "Left to Right" 
-				direction even when the editor interface language is running a RTL language 
-				(like Arabic, Hebrew or Persian).</LI>
-		</UL>
-		<P>Fixed Bugs:</P>
-		<UL>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124220&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1124220</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1119894&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1119894</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090986&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1090986</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1100408&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1100408</A>] The editor now works correctly when 
-			starting with an empty value and switching to the Source mode.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1119380&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1119380</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1115750&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1115750</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1101808&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1101808</A>] The problem with the scrollbar and 
-			the toolbar combos (Style, Font, etc...) over Mac has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098460&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1098460</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1076544&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1076544</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077845&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1077845</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092395&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1092395</A>] A new upload class has been 
-			included for the ASP File Manager Connector. It uses the "ADODB.Stream" object. 
-			Many thanks to "NetRube".
-			<LI>
-			I small correction has been made to the ColdFusion integration files. Thanks to 
-			Hendrik Kramer.
-			<LI>
-			There was a very specific problem when the editor was running over a FRAME 
-			executed on another domain.
-			<LI>
-			The performance problem on Gecko while typing&nbsp;quickly has been solved.
-			<LI>
-			The &lt;br type= "_moz"&gt;is not anymore shown on XHTML source.
-			<LI>
-			It has been introduced a mechanism to avoid automatic contents duplication on 
-			very specific occasions (bad formatted HTML).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1146407&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1146407</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1145800&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1145800</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1118803&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1118803</A>
-			] Other&nbsp;issues in the XHTML processor have been solved.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1143969&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1143969</A>] The editor now accepts the 
-			"accept-charset" attribute in the FORM tag (IE specific bug).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1122742&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1122742</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1089548&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1089548</A>
-			] Now, the contents of the SCRIPT and STYLE tags remain untouched.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114748&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1114748</A>] The PHP File Manager Connector now 
-			sets the new folders permissions (chmod)&nbsp;to 0777 correctly.
-			<LI>
-			The PHP File Manager Connector now has a configuration file 
-			(editor/filemanager/browser/default/connectors/php/config.php) to set some 
-			security preferences.
-			<LI>
-			The&nbsp;ASP File Manager Connector now has a configuration file 
-			(editor/filemanager/browser/default/connectors/asp/config.asp) to set some 
-			security preferences.
-			<LI>
-			A small bug in the toolbar rendering (strips auto position) has been corrected.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1093732&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1093732</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1091377&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1091377</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083044&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1083044</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1096307&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1096307</A>] The configurations are now encoded 
-			so a user can use values that has special chars (&amp;=/).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1103688&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1103688</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092331&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1092331</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088220&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1088220</A>] PHP samples now use PHP_SELF to 
-			automatically discover the editor's base path.
-			<LI>
-			Some small wrapping problems with some labels in the Image and Table dialog 
-			windows have been fixed.
-			<LI>
-			All .js files are now encoded in UTF-8 format with the BOM (byte order mask) to 
-			avoid some errors on specific Linux installations.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114449&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1114449</A>] The editor packager program has 
-			been modified so now it is possible to use the source files to run the editor 
-			as described in the documentation. The new packager must be downloaded.
-			<LI>
-			A small problem with the editor focus while in&nbsp;source&nbsp;mode has been 
-			corrected. Thanks to Eric (ric1607).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1108167&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1108167</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085149&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1085149</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1151296&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1151296</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082433&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1082433</A>] No more IFRAMEs without src 
-			attribute. Now it points to a blank page located in the editor's package. In 
-			this way we avoid security warnings when using the editor over HTTPS. Thanks to 
-			Guillermo Bozovich.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1117779&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1117779</A>] The editor now works well if you 
-			have more than one element named "submit"&nbsp;on its form (even if it is not 
-			correct to have this situation).
-			<LI>
-			The XHTML processor was duplicating the text on some specific situation. It has 
-			been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090213&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-1090213</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098929&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF Patch-1098929</A>] With ASP, the editor now works 
-			correctly on pages using "Option Explicit". Thanks to Ben Noblet.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1100759&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1100759</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029125&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1029125</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=966130&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-966130</A>] The editor was not working with old 
-			IE 5.5 browsers. There was a problem with the XML parser. It has been fixed.
-			<LI>
-			The localization engine is now working correctly over IE 5.5 browsers.
-			<LI>
-			Some commands where not working well over IE 5.5 (emoticons, image,...). It has 
-			been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1146441&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1146441</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149777&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1149777</A>] The editor now uses the TEXTAREA 
-			id&nbsp;in the ReplaceTextarea function. If the id is now found, it uses the 
-			"name". The docs have been updated.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1144297&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1144297</A>] Some corrections have been made to 
-			the Dutch language file. Thanks to Erwin Dondorp.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1121365&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1121365</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090102&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1090102</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1152171&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1152171</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1102907&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1102907</A>] There is no problem now to start 
-			the editor with values like "&lt;div&gt;&lt;/div&gt;" or "&lt;p&gt;&lt;/p&gt;".
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114059&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1114059</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1041861&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1041861</A>] The click on the disabled options 
-			in the Context Menu has no effects now.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1152617&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1152617</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1102441&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1102441</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1095312&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1095312</A>] Some problems when setting the 
-			editor source to very specific values has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1093514&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1093514</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1089204&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1089204</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077609&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1077609</A>] The editor now runs correctly if 
-			called directly (locally)&nbsp;without a server installation (just opening the 
-			HTML sample files).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088248&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1088248</A>] The editor now uses a different 
-			method to load its contents. In this way the URLs remain untouched.
-			<LI>
-				The PHP integration file now detects Internet Explorer 5.5 correctly.</LI></UL>
-		<h3>Version 2.0 RC2 (Release Candidate 2)</h3>
-		<ul>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1042034</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1075961&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1075961</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083200&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1083200</A>] A new dialog window for the <STRONG>table 
-					cell properties</STRONG>
-			is now available (right-click).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1042034</A>] The new "<STRONG>Split Cell</STRONG>
-			", to split a table cell in two columns, has been introduced (right-click).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1042034</A>] The new "<STRONG>Merge Cells</STRONG>", 
-			to merge table cells (in the same row), has been introduced (right-click).
-			<LI>
-				The "fake" <STRONG>TAB key support</STRONG>
-			(available by default over Gecko browsers is now available over IE too. You can 
-			set the number of spaces to add setting the FCKConfig.TabSpaces configuration 
-			setting. Set it to 0 (zero) to disable this feature (IE).
-			<LI>
-				It now possible to tell IE to send a <STRONG>&lt;BR&gt;</STRONG> when the user 
-				presses the <STRONG>Enter key</STRONG>. Take a look at the 
-			FCKConfig.UseBROnCarriageReturn configuration setting.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085422&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1085422</A>] <STRONG>ColdFusion</STRONG>: The <STRONG>
-					File Manager connector</STRONG>
-			is now available! (Thanks to Hendrik Kramer).
-			<LI>
-				The editor is now available in <STRONG>29 languages!</STRONG> The new language 
-				files available are:&nbsp;
-				<UL>
-					<LI>
-						[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1067775&amp;group_id=75348&amp;atid=543656"
-							target="_blank">SF Feature-1067775</A>] <STRONG>Chinese Simplified and 
-							Traditional</STRONG>
-					(Taiwan and Hong Kong) (by NetRube).
-					<LI>
-						<STRONG>Czech</STRONG>
-					(by David Hork).
-					<LI>
-						<STRONG>Danish</STRONG>
-					(by Jesper Michelsen).
-					<LI>
-						<STRONG>Dutch</STRONG>
-					(by Bram Crins).
-					<LI>
-						<STRONG>German</STRONG>
-					(by Maik Unruh).
-					<LI>
-						<STRONG>Portuguese</STRONG>
-					(Portugal) (by Francisco Pereira).
-					<LI>
-						<STRONG>Russian</STRONG>
-					(by Andrey Grebnev).
-					<LI>
-						<STRONG>Slovenian</STRONG> (by Boris Volaric).</LI></UL>
-			<LI>
-				Updates to the <STRONG>French</STRONG>
-			language files (by Hubert Garrido).
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085816&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1085816</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083743&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1083743</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1078783&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1078783</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077861&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1077861</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077861&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1037404</A>] Many&nbsp;small bugs&nbsp;in the XHTML 
-				processor has been corrected (workarounds to browser specific bugs). These are 
-				some things to consider regarding the changes:
-				<UL>
-					<LI>
-						[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083744&amp;group_id=75348&amp;atid=543653"
-							target="_blank">SF BUG-1083744</A>] On Gecko browsers, any element 
-					attribute that the name starts with "_moz" will be ignored.
-					<LI>
-						[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1060073&amp;group_id=75348&amp;atid=543653"
-							target="_blank">SF BUG-1060073</A>] The &lt;STYLE&gt; and &lt;SCRIPT&gt; 
-						elements contents will be handled as is, without CDATA tag surrounding. This 
-						may break XHTML validation. In any case the use of external files for scripts 
-						and styles is recommended (W3C recommendation).</LI></UL>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088310&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1088310</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1078837&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1078837</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=999792&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-999792</A>] URLs now remain untouched when 
-			initializing the editor or switching from WYSYWYG to Source and vice versa.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082323&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1082323</A>] The&nbsp;problem in the ASP and PHP 
-			connectors when handling non "strange" chars in file names has been corrected.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085034&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1085034</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1076796&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1076796</A>] Some bugs in the PHP connector have 
-			been corrected.
-			<LI>
-			A&nbsp;problem with the "Format" command on IE browsers on languages different 
-			of English has been solved. The negative side of this correction is that due to 
-			a IE bad design it is not possible to update the "Format" combo while moving 
-			throw the text (context sensitive).
-			<LI>
-			On Gecko browsers, when selecting an image and executing the "New Page" 
-			command, the image handles still appear, even if the image is not available 
-			anymore (this is a Gecko bug). When clicking in&nbsp;a "phanton" randle, the 
-			browser crashes. It doesn't&nbsp;happen (the crash)&nbsp;anymore.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082197&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1082197</A>] On ASP, the bug in the browser 
-			detection system for Gecko browsers has been corrected. Thanks to Alex Varga.
-			<LI>
-			Again on ASP, the browser detection for IE had some problems on servers that 
-			use comma for decimal separators on numbers. It has been corrected. Thanks to 
-			Agrotic.
-			<LI>
-			No error is thrown now when&nbsp;non existing&nbsp;language is configured in 
-			the editor. The English language file is loaded in that case.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077747&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1077747</A>] The missing images on the 
-			Office2003 and Silver skins are now included in the package.
-			<LI>
-			On some Gecko browsers, the dialog window was not loading correctly. I couldn't 
-			reproduce the problem, but a fix has been applied based on users tests.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1004078&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1004078</A>] ColdFusion: The "config" 
-			structure/hash table with keys and values is in ColdFusion not(!) case 
-			sensitive. All keys returned by ColdFusion are in upper case format. Because 
-			the FCKeditor configuration keys must be case sensitive, we had to match all 
-			structure/hash keys with a list of the correct configuration names in mixed 
-			case. This has been added to the fckeditor.cfc and fckeditor.cfm.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1075166&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1075166</A>] ColdFusion: The "fallback" variant 
-			of the texteditor (&lt;textarea&gt;) has a bug in the fckeditor.cfm. This has 
-			been fixed.
-			<LI>
-			A typo in the Polish language file has been corrected. Thanks to Pawel Tomicki.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086370&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1086370</A>] A small coding type in the Link dialog 
-				window has been corrected.</LI>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - What's New?</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<style type="text/css">
+		body { font-family: arial, verdana, sans-serif }
+		p { margin-left: 20px }
+	</style>
+</head>
+<body>
+	<h3>
+		Version 2.4.2</h3>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/279">#279</a>] The UTF-8
+			BOM was being included in the wrong files, affecting mainly PHP installations.</li>
+	</ul>
+	<h3>
+		Version 2.4.1</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/118">#118</a>] The SelectAll
+			command now is available in Source Mode.</li>
+		<li>The new open source FCKpackager sub-project is now available. It replaces the FCKeditor.Packager
+			software to compact the editor source.</li>
+		<li>With Firefox, if a paste execution is blocked by the browser security settings,
+			the new "Paste" popup is shown to the user to complete the pasting operation. </li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>Various fixes to the ColdFusion File Browser connector.</li>
+		<li>We are now pointing the download of ieSpell to their pages, instead to a direct
+			file download from one of their mirrors. This disables the ability of "click and
+			go" (which can still be achieved by pointing the download to a file in your server),
+			but removes any troubles with mirrors link changes (and they change it frequently).</li>
+		<li>The Word cleanup has been changed to remove "display:none" tags that may come from
+			Word.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1659613&group_id=75348">SF
+			BUG-1659613</a>] The 2.4 version introduced a bug in the flash handling code that
+			generated out of memory errors in IE7.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1660456&group_id=75348">SF
+			BUG-1660456</a>] The icons in context menus were draggable.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1653009&group_id=75348">SF
+			BUG-1653009</a>] If the server is configured to process html files as asp then it
+			generated ASP error 0138.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1288609&group_id=75348">SF
+			BUG-1288609</a>] The content of iframes is now preserved.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1245504&group_id=75348">SF
+			BUG-1245504</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1652240&group_id=75348">SF
+				BUG-1652240</a>] Flash files without the .swf extension weren't recognized upon
+			reload.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1649753&group_id=75348&atid=543655">SF
+			PATCH-1649753</a>] Node selection for text didn't work in IE. Thanks to yurik dot
+			m.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1573191&group_id=75348&atid=543653">SF
+			BUG-1573191</a>] The Html code inserted with FCK.InsertHtml didn't have the same
+			protection for special tags.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/110">#110</a>] The OK
+			button in dialogs had its width set as an inline style.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/113">#113</a>] [<a
+			target="_blank" href="http://dev.fckeditor.net/ticket/94">#94</a>] [<a target="_blank"
+				href="https://sourceforge.net/tracker/?func=detail&aid=1659270&group_id=75348&atid=543653">SF
+				BUG-1659270</a>] ForcePasteAsPlainText didn't work in Firefox.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/114">#114</a>] The correct
+			entity is now used to fill empty blocks when ProcessHTMLEntities is disabled.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/90">#90</a>] The editor
+			was wrongly removing some &lt;br&gt; tags from the code.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/139">#139</a>] The CTRL+F
+			and CTRL+S keystroke default behaviors are now preserved.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/138">#138</a>] We are
+			not providing a CTRL + ALT combination in the default configuration file because
+			it may be incompatible with some keyboard layouts. So, the CTRL + ALT + S combination
+			has been changed to CTRL + SHIFT + S.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/129">#129</a>] In IE,
+			it was not possible to paste if "Allow paste operation via script" was disabled
+			in the browser security settings.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/112">#112</a>] The enter
+			key now behaves correctly on lists with Firefox, when the EnterMode is set to 'br'.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/152">#152</a>] Invalid
+			self-closing tags are now being fixed before loading. </li>
+		<li>A few tags were being ignored to the check for required contents (not getting stripped
+			out, as expected). Fixed.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/202">#202</a>] The HR
+			tag will not anymore break the contents loaded in the editor.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/211">#211</a>] Some invalid
+			inputs, like "&lt;p&gt;" where making the caret disappear in Firefox.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/99">#99</a>] The &lt;div&gt;
+			element is now considered a block container if EnterMode=p|br. It acts like a simple
+			block only if EnterMode=div.</li>
+		<li>Hidden fields will now show up as an icon in IE, instead of a normal text field.
+			They are also selectable and draggable, in all browsers.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/213">#213</a>] Styles
+			are now preserved when hitting enter at the end of a paragraph.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/77">#77</a>] If ShiftEnterMode
+			is set to a block tag (p or div), the desired block creation in now enforced, instead
+			of copying the current block (which is still the behavior of the simple enter).</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/209">#209</a>] Links and
+			images URLs will now be correctly preserved with Netscape 7.1.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/165">#165</a>] The enter
+			key now honors the EnterMode settings when outdenting a list item.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/190">#190</a>] Toolbars
+			may be wrongly positioned. Fixed.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/254">#254</a>] The IgnoreEmptyParagraphValue
+			setting is now correctly handled in Firefox.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/254">#248</a>] The behavior
+			of the backspace key has been fixed on some very specific cases.</li>
+	</ul>
+	<h3>
+		Version 2.4</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1329273&group_id=75348&atid=543656">SF
+			Feature-1329273</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1456005&group_id=75348&atid=543656">SF
+				Feature-1456005</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1315002&group_id=75348&atid=543653">SF
+					BUG-1315002</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1350180&group_id=75348&atid=543653">SF
+						BUG-1350180</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1450689&group_id=75348&atid=543653">SF
+							BUG-1450689</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1461033&group_id=75348&atid=543653">SF
+								BUG-1461033</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1510111&group_id=75348&atid=543653">SF
+									BUG-1510111</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1203560&group_id=75348&atid=543653">SF
+										BUG-1203560</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1564838&group_id=75348&atid=543653">SF
+											BUG-1564838</a>] The advance <strong>Enter Key Handler</strong>
+			is now being introduced. It gives you complete freedom to configure the editor to
+			generate <strong>&lt;p&gt;, &lt;div&gt; or &lt;br&gt;</strong> when the user uses
+			both the [Enter] and [Shift]+[Enter] keys. The new "EnterMode" and "ShiftEnterMode"
+			settings can be use to control its behavior. It also guarantees that all browsers
+			will generate the same output. </li>
+		<li>The new and powerful <strong>Keyboard Accelerator System</strong> is being introduced.
+			You can now precisely control the commands to execute when some key combinations
+			are activated by the user. It guarantees that all browsers will have the same behavior
+			regarding the shortcuts.<br />
+			It also makes it possible to remove buttons from the toolbar and still invoke their
+			features by using the keyboard instead.
+			<br />
+			It also blocks all default "CTRL based shortcuts" imposed by the browsers, so if
+			you don't want users to underline text, just remove the CTRL+U combination from
+			the keystrokes table. Take a look at the FCKConfig.Keystrokes setting in the fckconfig.js
+			file. </li>
+		<li>The new "<strong>ProtectedTags</strong>" configuration option is being introduced.
+			It will accept a list of tags (separated by a pipe "|"), which will have no effect
+			during editing, but will still be part of the document DOM. This can be used mainly
+			for non HTML standard, custom tags.</li>
+		<li>Dialog box commands can now open resizable dialogs (by setting oCommand.Resizable
+			= true).</li>
+		<li>Updated support for AFP. Thanks to Soenke Freitag.</li>
+		<li>New language file:<ul>
+			<li><strong>Afrikaans</strong> (by Willem Petrus Botha). </li>
 		</ul>
-		<h3>Version 2.0 RC1 (Release Candidate 1)</h3>
-		<ul>
-			<li>
-				<strong>ASP</strong>
-			support is now available (including the&nbsp;File Manager connector).
-			<li>
-				<strong>PHP</strong>
-			support is now available (including the File Manager connector).
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1063217&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1063217</a>] The new advanced&nbsp;<strong>Style</strong>
-			command is available in the toolbar: full preview, context sensitive, style 
-			definitions are loaded from a XML file (see documentation for more 
-			instructions).
-			<li>
-				The <strong>Font Format</strong>, <strong>Font Name</strong> and <strong>Font Size</strong>
-				toolbar command now show a <strong>preview</strong>
-			of the available options.
-			<li>
-				The new <strong>Find</strong> and <strong>Replace</strong>
-			features has been introduced.
-			<li>
-				A new <strong>Plug-in</strong>
-			system has been developed. Now it is quite easy to customize the editor to your 
-			needs. (Take a look at the html/sample06.html file).
-			<li>
-				The editor now handles <strong>HTML entities</strong>
-			in the right way (XHTML support must be set to "true"). It handles all entities 
-			defined in the W3C&nbsp;XHTML DTD file.
-			<li>
-				A new "_docs" folder has been introduced for the <strong>documentation</strong>. 
-			It is not yet complete, but I hope the community will help us to fill it 
-			better.
-			<li>
-			It is now possible (even if it is not recommended by the W3C) to force the use 
-			of simple ampersands (&amp;) on attributes (like the links href) instead of its 
-			entity &amp;amp;. Just set FCKConfig.ForceSimpleAmpersand = true in 
-			the&nbsp;configuration file.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026866&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1026866</a>] The "<strong>EditorAreaCSS</strong>" 
-			configuration option has been introduced. In this way you can set the CSS to 
-			use in the editor (editable area).
-			<li>
-			The editing area is not anymore clipped if the toolbar is too large and exceeds 
-			the window width.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1064902&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1064902</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1033933&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1033933</a>] The editor <strong>interface</strong> is 
-				now completely <strong>localizable</strong>. The version ships with 19 
-				languages including: <b>Arabic</b>, <b>Bosnian</b>, <b>Catalan</b>, <b>English</b>,
-				<b>Spanish</b>, <b>Estonian</b>, <b>Finnish</b>, <b>French</b>, <b>Greek</b>, <b>Hebrew</b>,
-				<b>Croatian</b>, <b>Italian</b>, <b>Korean</b>, <b>Lithuanian</b>, <b>Norwegian</b>,
-				<STRONG>Polish</STRONG>, <STRONG>Serbian (Cyrillic)</STRONG>, <STRONG>Serbian 
-					(Latin)</STRONG> and <STRONG>Swedish</STRONG>.<li>[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1027858&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1027858</a>] Firefox 1.0 
-			PR&nbsp;introduced&nbsp;a bug that made the editor stop working on it. A 
-			workaround has been developed to fix the problem.
-			<li>
-			There was a positioning problem over IE&nbsp;with the color panel. It has been 
-			corrected.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1049842&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1049842</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1033832&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1033832</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1028623&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1028623</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026610&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1026610</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1064498&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1064498</a>] The combo commands in the toolbar 
-			were not opening in the right way. It has been fixed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1053399&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1053399</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=965318&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-965318</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1018296&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1018296</a>] The toolbar buttons icons were not 
-			showing on some IE and Firefox/Mac installations. It has been fixed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1054621&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1054621</a>] Color pickers are now working with 
-			the "office2003" and "silver" skins.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1054108&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1054108</a>] IE doesnt recognize the 
-			"&amp;apos;" entity for apostrophes, so a workaround has been developed to 
-			replace it with "&amp;#39;" (its numeric entity representation).
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=983434&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-983434</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=983398&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-983398</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1028103&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1028103</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1072496&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1072496</a>] The problem with elements with name 
-			"submit" inside the editor's form has been solved.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1018743&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1018743</a>] The problem with Gecko when 
-			collapsing the toolbar while in source mode has been fixed.
-			<li>
-				[<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1065268&amp;group_id=75348"
-					target="_blank">SF BUG-1065268</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1034354&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1034354</a>] The XHTML processor now doesnt use 
-			the minimized tag syntax (like &lt;br/&gt;) for empty elements that are not 
-			marked as EMPTY in the W3C XHTML DTD specifications.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029654&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1029654</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046500&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1046500</a>] Due to a bug on Gecko there was a 
-			problem when creating links. It has been fixed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1065973&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1065973</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=999792&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-999792</a>] The editor now handles relative URLs 
-			in IE. In effect IE transform all relative URLs to absolute links, pointing to 
-			the site the editor is running. So now the editor removes the protocol and host 
-			part of the link if it matches the running server.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1071824&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1071824</a>] The color dialog box bug has been 
-			fixed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1052856&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1052856</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046493&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1046493</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1023530&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1023530</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1025978&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1025978</a>] The editor now doesnt throw an 
-			error if no selection was made and the create link command is used.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1036756&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1036756</a>] The XHTML processor has been 
-			reviewed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029101&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1029101</a>] The Paste from Word feature is 
-			working correctly.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1034623&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1034623</a>] There is an IE bug when setting the 
-			editor value to "&lt;p&gt;&lt;hr&gt;&lt;/p&gt;". A workaround has been 
-			developed.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1052695&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1052695</a>] There are some rendering 
-			differences between Netscape and Mozilla. (Actually that is a bug on both 
-			browsers). A workaround has been developed to solve it.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1073053&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1073053</a>] [<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1050394&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1050394</a>] The editor doesnt throw errors 
-			when hidden.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1066321&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1066321</a>] Scrollbars should not appear on 
-			dialog boxes (at least for the Image and Link ones).
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046490&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1046490</a>] Dialogs now are forced to show on 
-			foreground over Mac.
-			<li>
-				[<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1073955&amp;group_id=75348"
-					target="_blank">SF BUG-1073955</a>] A small bug in the image dialog 
-			window has been corrected.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1049534&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1049534</a>] The Resources Browser window is now 
-			working well over Gecko browsers.
-			<li>
-				[<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1036675&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1036675</a>] The Resources Browser window now 
-				displays the server error on bad installations.</li></ul>
-		<H3>Version 2.0 Beta 2</H3>
-		<UL>
-			<LI>
-				There is a new configuration - "<STRONG>GeckoUseSPAN</STRONG>" - that can 
-			be used to tell Gecko browsers to use &lt;SPAN style...&gt; or &lt;B&gt;, 
-			&lt;I&gt; and &lt;U&gt; for the bold, italic and underline commands.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1002622&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-1002622</A>] New <STRONG>Text Color</STRONG> and&nbsp;<STRONG>Background 
-					Color</STRONG>
-			&nbsp;commands have been added to the editor.
-			<LI>
-			On Gecko browsers, a message is shown when,&nbsp;because of&nbsp;security 
-			settings,&nbsp;the user&nbsp;is not able to&nbsp;cut, copy or paste data from 
-			the clipboard using the toolbar buttons or the context menu.
-			<LI>
-				The new "<STRONG>Paste as Plain Text</STRONG>
-			" command has been introduced.
-			<LI>
-				The new "<STRONG>Paste from Word</STRONG>
-			" command has been introduced.
-			<LI>
-			A new configuration named&nbsp;"StartupFocus" can be used to tell the editor to 
-			get the focus when the page is loaded.
-			<LI>
-				All <STRONG>Java </STRONG>
-			integration files has been moved to a new separated package.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1016781&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1016781</A>] <STRONG>Table operations</STRONG> are 
-				now working when right click inside a table. The following commands has been 
-				introduced: <STRONG>Insert Row</STRONG>, <STRONG>Delete Row</STRONG>, <STRONG>Insert 
-					Column</STRONG>, <STRONG>Delete Column</STRONG>, <STRONG>Insert Cell</STRONG>
-				and <STRONG>Delete Cells</STRONG>
-			.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=965067&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-965067</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1010379&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1010379</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=977713&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-977713</A>] XHTML support was not working with 
-			FireFox, blocking the editor when submitting data. It has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1007547&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1007547</A> ] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=974595&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-974595</A>
-			]&nbsp;The "FCKLang not defined" error when loading has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1021028&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-1021028</A>] If the editor doesn't have the 
-			focus, some commands were been executed outside the editor in the place where 
-			the focus is. It has been fixed.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=981191&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-981191</A>] We are now using &lt;!--- ---&gt; for 
-				ColdFusion comments.</LI></UL>
-		<H3>Version 2.0 Beta 1</H3>
-		<P>This is the first beta of the 2.x series. It brings a lot of new and important 
-			things. Beta versions will be released until all features available on version 
-			1.x will be introduced in the 2.0.<BR>
-			<BR>
-			<STRONG>Note:</STRONG> As it is a beta, it is not yet completely developed. 
-			Future versions can bring new features that can break backward compatibility 
-			with this version.
-		</P>
-		<UL>
-			<LI>
-				Gecko browsers (<STRONG>Mozilla</STRONG> and <STRONG>Netscape</STRONG>) 
-			support.
-			<LI>
-				<STRONG>Quick startup</STRONG>
-			response times.
-			<LI>
-				Complete <STRONG>XHTML</STRONG>
-			1.0 support.
-			<LI>
-				<STRONG>Advanced link</STRONG> dialog box:
-				<UL>
-					<LI>
-					Target selection.
-					<LI>
-					Popup configurator.
-					<LI>
-					E-Mail link.
-					<LI>
-						Anchor selector.
-					</LI>
-				</UL>
-			<LI>
-				New <STRONG>File Manager</STRONG>.
-			<LI>
-				New dialog box system, with <STRONG>tabbed dialogs</STRONG>
-			support.
-			<LI>
-				New <STRONG>context menus</STRONG>
-			with icons.
-			<LI>
-			New toolbar with "expand/collapse" feature.
-			<LI>
-				<STRONG>Skins</STRONG>
-			support.
-			<LI>
-				<STRONG>Right to left languages</STRONG> support.
-			</LI>
-		</UL>
-		<H3>Version 1.6.1</H3>
-		<UL>
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=862364&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-862364</A>] [<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=812733&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-812733</A>] There was a problem when the user 
-			tried to delete the last row, collumn or cell in a table. It has been 
-			corrected.*
-			<LI>
-			New Estonian language file. Thanks to Kristjan Kivikangur
-			<LI>
-			New Croatian language file. Thanks to Alex Varga.
-			<LI>
-			Updated language file for Czech. Thanks to Plachow.
-			<LI>
-			Updated language file for Chineze (zh-cn). Thanks to Yanglin.
-			<LI>
-				Updated language file for Catalan. Thanks to Jordi Cerdan.</LI></UL>
-		<P>* This version has been partially sponsored by <A href="http://www.genuitec.com/">Genuitec, 
-				LLC</A>.</P>
-		<H3>Version 1.6</H3>
-		<UL>
-			<LI>
-				<STRONG>Context Menu</STRONG> support for <STRONG>form</STRONG>
-			elements.*
-			<LI>
-				New <STRONG>"Selection Field" command</STRONG>
-			with advanced dialog box for options definitions.*
-			<LI>
-				New <STRONG>"Image Button" command</STRONG>
-			is available.*
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=936196&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-936196</A>] Many form elements <STRONG>bugs has been 
-					fixed</STRONG> and <STRONG>many improvements</STRONG>
-			has been done.*
-			<LI>
-				New <STRONG>Java Integration Module</STRONG>. There is a complete Java API 
-			and Tag Library implementations. Take a look at the _jsp directory. Thanks to 
-			Simone Chiaretta and Hao Jiang.
-			<LI>
-				The <STRONG>Word Spell Checker</STRONG>
-			can be used. To be able to run it, your browser security configuration 
-			"Initialize and script ActiveX controls not marked as safe" must be set to 
-			"Enable" or "Prompt". And easier and more secure way to do that is to add your 
-			site in the list of trusted sites. IeSpell can still be used. Take a look at 
-			the fck_config.js file for some configuration options. Thanks to EdwardRF.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=748807&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-748807</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=801030&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-801030</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=880684&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-880684</A>] New "<STRONG>Anchor" command</STRONG>, 
-			including context menu support. Thanks to G.Meijer.
-			<LI>
-			Special characters are replaced with their decimal HTML entities when the XHMTL 
-			support is enabled (only over IE5.5+).
-			<LI>
-				New <STRONG>Office 2003 Style</STRONG> toolbar icons are available. Just 
-				uncomment the config.ToolbarImagesPath key in the fck_config.js file. Thanks to 
-				Abdul-Aziz A. Al-Oraij. <STRONG>Attention</STRONG>: the default toolbar 
-			items have been moved to the "images/toolbar/default" directory.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=934566&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-934566</A>] <STRONG>Double click support</STRONG>
-			for Images, Tables, Links, Anchors and all Form elements. Thanks to Top Man.
-			<LI>
-				New <STRONG>"New Page" command</STRONG>
-			to start a typing from scratch. Thanks to Abdul-Aziz A. Al-Oraij.
-			<LI>
-				New <STRONG>"Replace" command</STRONG>. Thanks to Abdul-Aziz A. Al-Oraij.
-			<LI>
-				New <STRONG>"Advanced Font Style" command</STRONG>. Thanks to Abdul-Aziz A. 
-			Al-Oraij.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=738193&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-738193</A>] New <STRONG>"Save" command</STRONG>. 
-			It can be used to simulate a save action, but in fact it just submits the form 
-			where the editor is placed in. Thanks to Abdul-Aziz A. Al-Oraij.
-			<LI>
-				New <STRONG>"Universal Keyboard" command</STRONG>. This 22 charsets are 
-			available: Arabic, Belarusian, Bulgarian, Croatian, Czech, Danish, Finnish, 
-			French, Greek, Hebrew, Hungarian, Diacritical, Macedonian, Norwegian, Polish, 
-			Russian, Serbian (Cyrillic), Serbian (Latin), Slovak, Spanish, Ukrainian and 
-			Vietnamese. Includes a keystroke listener to type Arabic on none Arabic OS or 
-			machine. Thanks to Abdul-Aziz A. Al-Oraij.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=935358&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-935358</A>] New <STRONG>"Preview" command</STRONG>. 
-			Context menu option is included and can be deactivated throw the 
-			config.ShowPreviewContextMenu configuration. Thanks to Ben Ramsey.
-			<LI>
-				New "<STRONG>Table Auto Format</STRONG>" context menu command. Hack a 
-			little the fck_config.js and the fck_editorarea.css files. Thanks to Alexandros 
-			Lezos.
-			<LI>
-				New "<STRONG>Bulleted List Properties</STRONG>
-			" context menu to define its type and class. Thanks to Alexandros Lezos.
-			<LI>
-				The <STRONG>image dialog</STRONG> box has been a <STRONG>redesigned</STRONG>
-			. Thanks to Mark Fierling.
-			<LI>
-				Images now always have the <STRONG>"alt" attribute</STRONG>
-			set, even when it's value is empty. Thanks to Andreas Barnet.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=942250&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-942250</A>] You can set on fck_config.js to <STRONG>automatically 
-					clean Word</STRONG>
-			pasting operations without a user confirmation.
-			<LI>
-			Forms element dialogs and other localization pending labels has been updated.
-			<LI>
-				A new <STRONG>Lithuanian</STRONG>
-			language file is available. Thanks to Tauras Paliulis.
-			<LI>
-				A new <STRONG>Hebrew</STRONG>
-			language file is available. Thanks to Ophir Radnitz.
-			<LI>
-				A new <STRONG>Serbian</STRONG>
-			language file is available. Thanks to Zoran Subic.
-			<LI>
-				<STRONG>Danish</STRONG>
-			language file updates. Thanks to Flemming Jensen.
-			<LI>
-				<STRONG>Catalan</STRONG>
-			language file updates. Thanks to Jordi Cerdan.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=936514&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-936514</A>] [<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=918716&amp;group_id=75348">SF 
-					BUG-918716</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=931037&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-931037</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=865864&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-865864</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=915410&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-915410</A>] [<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=918716&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-918716</A>] Some <STRONG>languages files</STRONG> were not saved on <STRONG>
-					UTF-8</STRONG>
-			format causing some javascript errors on loading the editor or making 
-			"undefined" to show on editor labels. This problem was solved.
-			<LI>
-			Updates on the testsubmit.php file. Thanks to Geat and Gabriel Schillaci
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=924620&amp;group_id=75348">SF 
-					BUG-924620</A>] There was a problem when setting a name to an editor 
-			instance when the name is used by another tag. For example when using 
-			"description" as the name in a page with the &lt;META name="description"&gt; 
-			tag.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=935018&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-935018</A>] The "buletted" typo has been corrected.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=902122&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-902122</A>] Wrong css and js file references have been corrected.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=918942&amp;group_id=75348&amp;atid=543653">SF 
-					BUG-918942</A>] All dialog boxes now accept Enter and Escape keys as Ok and 
-				Cancel buttons.</LI></UL>
-		<P>* This version has been partially sponsored by <A href="http://www.genuitec.com/">Genuitec, 
-				LLC</A>.</P>
-		<H3>Version 1.5</H3>
-		<UL>
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543656&amp;aid=913777&amp;group_id=75348"
-					target="_blank">SF Feature-913777</A>] <STRONG>New Form Commands</STRONG>
-			are now available! Special thanks to G.Meijer.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=861149&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-861149</A>] <STRONG>Print Command</STRONG>
-			is now available!
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=743546&amp;group_id=75348"
-					target="_blank">SF BUG-743546</A>] The <STRONG>XHTML content duplication 
-					problem </STRONG>has been <STRONG>solved</STRONG>
-			. Thanks to Paul Hutchison.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=875853&amp;group_id=75348"
-					target="_blank">SF BUG-875853</A>] The <STRONG>image dialog box</STRONG>
-			now gives precedence for width and height values set as styles. In this way a 
-			user can change the size of the image directly inside the editor and the 
-			changes will be reflected in the dialog box.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543656&amp;aid=913777&amp;group_id=75348"
-					target="_blank">SF Feature-788368</A>] The sample <STRONG>file upload </STRONG>
-				manager for ASPX now uses <STRONG>guids</STRONG>
-			for the file name generation. In this way a support XML file is not needed 
-			anymore.
-			<LI>
-				It's possible now to <STRONG>programmatically change the Base Path</STRONG> of 
-				the editor if it's installed in a directory different of "/FCKeditor/". 
-				Something like this:<BR>
-				oFCKeditor.BasePath = '/FCKeditor/' ;<BR>
-			Take a look at the _test directory for samples.
-			<LI>
-			There was a little bug in the TAB feature that moved the insertion point if 
-			there were any object (images, tables) in the content. It has been fixed.
-			<LI>
-				The problem with <STRONG>accented and international characters</STRONG>
-			on the PHP test page was solved.
-			<LI>
-				A new <STRONG>Chinese (Taiwan)</STRONG>
-			language file is available. Thanks to Nil.
-			<LI>
-				A new <STRONG>Slovenian</STRONG>
-			language file is available. Thanks to Pavel Rotar.
-			<LI>
-				A new <STRONG>Catalan</STRONG>
-			language file is available. Thanks to Jordi Cerdan.
-			<LI>
-				A new <STRONG>Arabic</STRONG>
-			language file is available. Thanks to Abdul-Aziz A. Al-Oraij.
-			<LI>
-				Small corrections on the <STRONG>Norwegian</STRONG>
-			language file.
-			<LI>
-			A Java version for the test results (testsubmit.jsp) is now available. Thanks 
-			to Pritpal Dhaliwal.
-			<LI>
-			When using Javascript to create a editor instance it's possible now to easily 
-			get the editor's value calling oFCKeditor.GetValue() (eg.). Better Javascript 
-			API interfaces will be available on version 2.0.
-			<LI>
-				If <STRONG>XHTML</STRONG>
-			is enabled the editor cleans the HTML before showing it on the Source View, so 
-			the exact result can be viewed by the user. This option can be activated 
-			setting config.EnableSourceXHTML = true in the fck_config.js file.
-			<LI>
-				The <STRONG>JS integration object</STRONG> now escapes all configuration 
-				settings, in this way a user can use <STRONG>reserved chars</STRONG> on it. For 
-				example:
-				<BR>
-			oFCKeditor.Config["ImageBrowserURL"] = 
-			'/imgs/browse.asp?filter=abc*.jpg&amp;userid=1';
-			<LI>
-				A minimal browse server sample is now available in ASP. Thanks to Andreas 
-				Barnet.
-			</LI>
-		</UL>
-		<H3>Version 1.4</H3>
-		<UL>
-			<LI>
-				<STRONG>ATTENTION: For PHP users</STRONG>: The editor was changed and now uses <STRONG>
-					htmlspecialchars</STRONG> instead of <STRONG>htmlentities</STRONG>
-			when handling the initial value. It should works well, but please make some 
-			tests before upgrading definitively. If there is any problem just uncomment the 
-			line in the fckeditor.php file (and send me a message!).
-			<LI>
-				The editor is now integrated with <STRONG>ieSpell</STRONG> (<A href="http://www.iespell.com">http://www.iespell.com</A>) 
-				for <STRONG>Spell Checking</STRONG>. You can configure the download URL in 
-			then fck_config.js file. Thanks to Sanjay Sharma. (ieSpell is free for personal 
-			use but must be paid for commercial use)
-			<LI>
-				<STRONG>Table</STRONG> and <STRONG>table cell</STRONG> dialogs has been 
-				changed. Now you can <STRONG>select the class</STRONG>
-			you want to be applied. Thanks to Alexander Lezos.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=865378&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-865378</A>]A new <STRONG>upload support is available 
-					for ASP</STRONG>. It uses the /UserImages/ folder in the root of the 
-			web site as the files container and a counter controlled by the upload.cnt 
-			file. Both must have write permissions set to the IUSR_xxx user. Thanks to Trax 
-			and Juanjo.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=798128&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-798128</A>] The user (programmer) can now define a <STRONG>
-					custom separator</STRONG>
-			for the list items of a combo in the toolbar. Thanks to Wulff D. Heiss.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=741963&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-741963</A>][<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=878941&amp;group_id=75348&amp;atid=543656"
-					target="_blank">SF Feature-878941</A>][<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=869389&amp;group_id=75348&amp;atid=543655"
-					target="_blank">SF Patch-869389</A>] A minimal support for a fake <STRONG>TAB 
-					is now available</STRONG>, even if HTML has no support for TAB. Now 
-			when the user presses the TAB key a configurable number of spaces (&amp;nbsp;) 
-			is added. Take a look at config.TabSpaces on the fck_config.js file. No action 
-			is performed if it is set to zero. The default value is 4. Thanks to Phil 
-			Hassey.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=782779&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-782779</A>][<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=790939&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-790939</A>] The problem with big images has been 
-			corrected. Thanks to Raver.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853374&amp;group_id=75348"
-					target="_blank">SF BUG-862975</A>] Now the editor does nothing if no 
-			image is selected in the image dialog box and the OK button is hit.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=851609&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-851609</A>] The problem with ASP and null values 
-			has been solved.
-			<LI>
-				<STRONG>Norwegean</STRONG>
-			language pack. Thanks to Martin Kronstad.
-			<LI>
-				<STRONG>Hungarian</STRONG>
-			language pack. Thanks to Balzs Szab.
-			<LI>
-				<STRONG>Bosnian</STRONG>
-			language pack. Thanks to Trax.
-			<LI>
-				<STRONG>Japanese</STRONG>
-			language pack. Thanks to Kato Yuichiro.
-			<LI>
-				Updates on the <STRONG>Polish</STRONG>
-			language pack. Thanks to Norbert Neubauer.
-			<LI>
-				The <STRONG>Chinese (Taiwan)</STRONG> (zh-tw) has been removed from the package 
-				because it's corrupt. I'm sorry. I hope someone could send me a good version 
-				soon.
-			</LI>
-		</UL>
-		<H3>Version 1.3.1</H3>
-		<UL>
-			<LI>
-				It's now possible to configure the editor the insert a <STRONG>&lt;BR&gt; tag 
-					instead of &lt;P&gt;</STRONG> when the user presses the <STRONG>&lt;Enter&gt;</STRONG>
-				key. Take a look at the fck_config.js configuration file for the "<STRONG>UseBROnCarriageReturn</STRONG>" 
-			key. This option is disabled by default.
-			<LI>
-				<STRONG>Icelandic</STRONG>
-			language pack. Thanks to Andri skarsson.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853374&amp;group_id=75348">SF 
-					BUG-853374</A>] On IE 5.0 there was a little error introduced with 
-			version 1.3 on initialization. It was corrected.
-			<LI>
-				[<A href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853372&amp;group_id=75348">SF 
-					BUG-853372</A>] On IE 5.0 there was a little error introduced with 
-			version 1.3 when setting the focus in the editor. It was corrected.
-			<LI>
-				Minor errors on the language file for <STRONG>english</STRONG>
-			has been corrected. Thanks to Anders Madsen.
-			<LI>
-				Minor errors on the language file for <STRONG>danish</STRONG> has been 
-				corrected. Thanks to Martin Johansen.
-			</LI>
-		</UL>
-		<H3>Version 1.3</H3>
-		<UL>
-			<LI>
-				Language support for <STRONG>Danish, Polish, Simple Chinese, Slovak, Swedish and 
-					Turkish</STRONG>.
-			<LI>
-				Language updates for <STRONG>Romanian</STRONG>.
-			<LI>
-				It's now possible to <STRONG>override</STRONG> any of the <STRONG>editor's 
-					configurations</STRONG>
-			(for now it's implemented just for JavaScript, ASPX and HTC modules). See 
-			_test/test.html for a sample. I'm now waiting for the Community for the ASP, 
-			CFM and PHP versions.
-			<LI>
-				A new method is available for <STRONG>PHP</STRONG> users. It's called <STRONG>ReturnFCKeditor</STRONG>. 
-				It works exactly like CreateFCKeditor, but it <STRONG>returns a string with the 
-					HTML</STRONG>
-			for the editor instead of output it (echo). This feature is useful for people 
-			who are working with Smarty Templates or something like that. Thanks to Timothy 
-			J. Finucane.
-			<LI>
-				Many people have had problems with <STRONG>international characters</STRONG> over
-				<STRONG>PHP</STRONG>. I had also the same problem. PHP have strange problems 
-				with character encoding. The code hasn't been changed but just saved again with 
-				Western European encoding. <STRONG>Now it works well</STRONG> in my system.<BR>
-			Take a look also at the "default_charset" configuration option at the php.ini 
-			file. It doesn't seem to be an editor's problem but a PHP issue.
-			<LI>
-				The "<STRONG>testsubmit.php</STRONG>" file now strips the "<STRONG>Magic Quotes</STRONG>
-			" that are automatically added by PHP on form posts.
-			<LI>
-				A <STRONG>new language</STRONG> integration module is available for <STRONG>ASP/Jscript</STRONG>. 
-			Thanks to Dimiter Naydenov.
-			<LI>
-				<STRONG>New configuration</STRONG> options are available to <STRONG>customize the 
-					Target</STRONG> combo box in the <STRONG>Insert/Modify Link</STRONG>
-			dialog box. Now you can hide it, or set which options are available in the 
-			combo box. Take a look at the fck_config.js file.
-			<LI>
-				The <STRONG>Text as Plain Text</STRONG> toolbar <STRONG>icon</STRONG> has been 
-				changed <STRONG>to avoid confusion</STRONG>
-			with the Normal Paste or. Thanks to Kaupo Kalda.
-			<LI>
-				The file <STRONG>dhtmled.cab has been removed</STRONG>
-			from the package. It's not needed to the editor to work and caused some 
-			confusion for a few users.
-			<LI>
-				The <STRONG>editor's content</STRONG> now <STRONG>doesn't loose the focus</STRONG>
-			when the user clicks with the mouse in a toolbar button.
-			<LI>
-				On <STRONG>drag-and-drop</STRONG> operations the data to be inserted in the 
-				editor is now <STRONG>converted to plain text</STRONG> when the "<STRONG>ForcePasteAsPlainText</STRONG>" 
-				configuration is set to <STRONG>true</STRONG>.
-			<LI>
-				The <STRONG>image browser</STRONG> sample in PHP now <STRONG>sorts the files</STRONG>
-			by name. Thanks to Sergey Lupashko.
-			<LI>
-				Two <STRONG>new configuration</STRONG> options are available to <STRONG>turn on/off 
-					by default</STRONG> the "<STRONG>Show Borders</STRONG>" and "<STRONG>Show 
-					Details</STRONG>" commands.
-			<LI>
-				Some <STRONG>characters have been removed</STRONG> from the "<STRONG>Insert Special 
-					Chars</STRONG>" dialog box because they were causing encoding problems 
-			in some languages. Thanks to Abomb Hua.
-			<LI>
-				<STRONG>JSP</STRONG> versions of the <STRONG>image and file upload and browsing</STRONG>
-				features. Thanks to Simone Chiaretta.</LI></UL>
-		<H3>Version 1.2.4</H3>
-		<UL>
-			<LI>
-				Language support for <STRONG>Spanish, Finnish, Romanian and Korean</STRONG>.
-			<LI>
-				Language updates for <STRONG>German</STRONG>.
-			<LI>
-				New <STRONG>Zoom</STRONG> toolbar option. (<A href="https://sourceforge.net/forum/forum.php?thread_id=904116&amp;forum_id=257180">Thanks 
-					to "mtn_roadie"</A>)</LI></UL>
-		<H3>Version 1.2.2</H3>
-		<UL>
-			<LI>
-				Language support for <STRONG>French</STRONG>.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=782779&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-782779</A>] Version 1.2 introduced a bug on the 
-				image dialog window: when changing the image, no update was done. This bug is 
-				now fixed.
-			</LI>
-		</UL>
-		<H3>Version 1.2</H3>
-		<UL>
-			<LI>
-				Enhancements to the <STRONG>Word cleaning</STRONG>
-			feature (Thanks to Karl von Randow).
-			<LI>
-				The <STRONG>Table dialog box</STRONG>
-			now handles the Style width and height set in the table (Thanks to Roberto 
-			Arruda). There where many problems on prior version when people changed 
-			manually the table's size, dragging the size handles, and then it was not 
-			possible to set a new size using the table dialog box.
-			<LI>
-				For the <STRONG>Image dialog box:</STRONG>
-				<UL>
-					<LI>
-					No image is shown in the preview pane if no image has been set.
-					<LI>
-						If no HSpace is set in the image a "-1" value was shown in the dialog box. Now, 
-						nothing is shown if the value is negative.
-					</LI>
-				</UL>
-			<LI>
-				[<A href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=739630&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-739630</A>] Image with link lost the link when 
-			changing its properties. The problem is solved.
-			<LI>
-				Due to some problems in the XHTML cleaning (content duplication when the source 
-				HTML is dirty and malformed), the <STRONG>XHTML support is turned off by default</STRONG>
-			from this version. You can still change this behavior and turn it on in the 
-			configuration file.
-			<LI>
-				Some little updates on the <STRONG>English </STRONG>
-			language file.
-			<LI>
-			A few addition of missing entries on all languages files (translations for 
-			these changes are pending).
-			<LI>
-				Language files has been added for the following languages:
-				<UL>
-					<LI>
-						<STRONG>Brazilian Portuguese</STRONG>
-					(pt-br)
-					<LI>
-						<STRONG>Czech</STRONG>
-					(cz)
-					<LI>
-						<STRONG>Dutch</STRONG>
-					(nl)
-					<LI>
-						<STRONG>Russian</STRONG>
-					(ru)
-					<LI>
-						<STRONG>Chinese (Taiwan)</STRONG>
-					(zh-tw)
-					<LI>
-						<STRONG>Greek</STRONG>
-					(gr)
-					<LI>
-						<STRONG>German</STRONG> (de)</LI></UL>
-			</LI>
-		</UL>
-		<H3>Version 1.1</H3>
-		<UL>
-			<LI>
-				The "<STRONG>Multi Language</STRONG>" system is now available. This version 
-				ships with English and Italian versions completed. Other languages will be 
-				available soon. The editor automatically detects the client language and sets 
-				all labels, tooltips and dialog boxes to it, if available. The auto detection 
-				and the default language can be set in the <STRONG>fck_config.file</STRONG>.
-			<LI>
-				Two files can now be created to isolate customizations code from the original 
-				source code of the editor: <STRONG>fckeditor.config.js</STRONG> and <STRONG>fckeditor.custom.js</STRONG>. 
-			Create these files in the root folder of your web site, if needed. The first 
-			one can be used to add or override configurations set on fck_config.js. The 
-			second one is used for custom actions and behaviors.
-			<LI>
-			A problem with relative links and images like "/test/test.doc" has been solved. 
-			In prior versions, only with XHTML support enabled, the URL was changed to 
-			something like "http://www.mysite.xxx/test/test.doc" (The domain was 
-			automatically added). Now the XHTML cleaning procedure gets the URLs exactly 
-			how they are defined in the editors HTML.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=742168&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-742168</A>] Mouse drag and drop from toolbar 
-			buttons has been disabled.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=768210&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-768210</A>] HTML entities, like <STRONG>&amp;lt;</STRONG>, 
-			were not load correctly. The problem is solved.
-			<LI>
-				[<A href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=748812&amp;group_id=75348&amp;atid=543653"
-					target="_blank">SF BUG-748812</A>] The link dialog window doesn't open when 
-				the link button is grayed.
-			</LI>
-		</UL>
-		<H3>Version 1.0</H3>
-		<UL>
-			<LI>
-			Three new options are available in the configuration file to set what file 
-			types are allowed / denied to be uploaded from the "Insert Link" and "Insert 
-			Image" dialog boxes.
-			<LI>
-			Upload options, for links and images, are automatically hidden on IE 5.0 
-			browsers (it's not compatible).
-			<LI>
-			[SF BUG-734894] Fixed a problem on XHTML cleaning: the value on INPUT fields 
-			were lost.
-			<LI>
-			[SF BUG-713797] Fixed some image dialog errors when trying to set image 
-			properties when no image is available.
-			<LI>
-			[SF BUG-736414] Developed a workaround for a DHTML control bug when loading in 
-			the editor some HTML started with &lt;p&gt;&lt;hr&gt;&lt;/p&gt;.
-			<LI>
-			[SF BUG-737143] Paste from Word cleaning changed to solve some IE 5.0 errors. 
-			This feature is still not available over IE 5.0.
-			<LI>
-			[SF BUG-737233] CSS mappings are now OK on the PHP image browser module.
-			<LI>
-			[SF BUG-737495] The image preview in the image dialog box is now working 
-			correctly.
-			<LI>
-			[SF BUG-737532] The editor automatically switches to WYSIWYG mode when the form 
-			is posted.
-			<LI>
-				[SF BUG-739571] The editor is now working well over Opera (as for Netscape, a 
-				TEXTAREA is shown).
-			</LI>
-		</UL>
-		<H3>Version 1.0 Final Candidate</H3>
-		<UL>
-			<LI>
-			A new dialog box for the "Link" command is available. Now you can upload and 
-			browse the server exactly like the image dialog box. It's also possible to 
-			define the link title and target window (_blank, _self, _parent and _top). As 
-			with the image dialog box, a sample (and simple) file server browser is 
-			available.
-			<LI>
-			A new configuration option is available to force every paste action to be 
-			handled as plain text. See "config.ForcePasteAsPlainText" in fck_config.js.
-			<LI>
-			A new Toolbar button is available: "Paste from Word". It automatically cleans 
-			the clipboard content before pasting (removesWord styles, classes, xml stuff, 
-			etc...). This command is available for IE 5.5 and more. For IE 5.0 users, a 
-			message is displayed advising that the text will not be cleaned before pasting.
-			<LI>
-			The editor automatically detects Word clipboard data on pasting operations and 
-			asks the user to clean it before pasting. This option is turned on by default 
-			but it can be configured. See "config.AutoDetectPasteFromWord" in 
-			fck_config.js.
-			<LI>
-			Table properties are now available in cells' right click context menu.
-			<LI>
-				It's now possible to edit cells advanced properties from it's right click 
-				context menu.
-			</LI>
-		</UL>
-		<H3>Version 1.0 Release Candidate 1 (RC1)</H3>
-		<UL>
-			<LI>
-			Some performance improvements.
-			<LI>
-			The file dhtmled.cab has been added to the package for clients ho needs to 
-			install the Microsoft DHTML Editor component.
-			<LI>
-			[SF BUG-713952] The format command options are localized, so it depends on the 
-			IE language to work. Until version 0.9.5 it was working only over English IE 
-			browsers. Now the options are load dynamically on the client using the client's 
-			language.
-			<LI>
-			[SF BUG-712103] The style command is localized, so it depends on the IE 
-			language to work. Until version 0.9.5 it was working only over English IE 
-			browsers. Now it configures itself using the client's language.
-			<LI>
-				[SF BUG-726137] On version 0.9.5, some commands (special chars, image, 
-				emoticons, ...) remove the next available character before inserting the 
-				required content even if no selection was made in the editor. Now the editor 
-				replaces only the selected content (if available).
-			</LI>
-		</UL>
-		<H3>Version 0.9.5 beta</H3>
-		<UL>
-			<LI>
-			XHTML support is now available! It can be enabled/disabled in the fck_config.js 
-			file.
-			<LI>
-			"Show Table Borders" option: show borders for tables with borders size set to 
-			zero.
-			<LI>
-			"Show Details" option: show hidden elements (comments, scripts, paragraphs, 
-			line breaks)
-			<LI>
-			IE behavior integration module. Thanks to Daniel Shryock.
-			<LI>
-			"Find" option: to find text in the document.
-			<LI>
-			More performance enhancements.
-			<LI>
-			New testsubmit.php file. Thansk to Jim Michaels.
-			<LI>
-			Two initial PHP upload manager implementations (not working yet). Thanks to 
-			Frederic Tyndiuk and Christian Liljedahl.
-			<LI>
-			Initial PHP image browser implementation (not working yet). Thanks to Frederic 
-			Tyndiuk.
-			<LI>
-				Initial CFM upload manager implementation. Thanks to John Watson.
-			</LI>
-		</UL>
-		<H3>Version 0.9.4 beta</H3>
-		<UL>
-			<LI>
-			ColdFusion module integration is now available! Thanks to John Watson.
-			<LI>
-			"Insert Smiley" toolbar option! Thanks to Fredox. Take a look at fck_config.js 
-			for configuration options.
-			<LI>
-			"Paste as plain text" toolbar option!
-			<LI>
-			Right click support for links (edit / remove).
-			<LI>
-			Buttons now are shown in gray when disabled.
-			<LI>
-			Buttons are shown just when the image is downloaded (no more "red x" while 
-			waiting for it).
-			<LI>
-			The toolbar background color can be set with a CSS style (see fck_editor.css).
-			<LI>
-				Toolbar images have been reviewed:
-				<UL>
-					<LI>
-					Now they are transparent.
-					<LI>
-					No more over...gif for every button (so the editor loads quicker).
-					<LI>
-						Buttons states are controlled with CSS styles. (see fck_editor.css).</LI></UL>
-			<LI>
-			Internet Explorer 5.0 compatibility, except for the image uploading popup.
-			<LI>
-			Optimizations when loading the editor.
-			<LI>
-			[SF BUG-709544] - Toolbar buttons wait for the images to be downloaded to start 
-			watching and responding the user actions (turn buttons on/off when the user 
-			changes position inside the editor).
-			<LI>
-			Javascript integration is now Object Oriented. CreateFCKeditor function is not 
-			available anymore. Take a look in test.html.
-			<LI>
-				Two new configuration options, ImageBrowser and ImageUpload, are available to 
-				turn on and off the image upload and image browsing options in the Image dialog 
-				box. This options can be hidden for a specific editor instance throw specific 
-				URL parameter in the editors IFRAME (upload=true/false&amp;browse=true/false). 
-				All specific language integration modules handle this option. For sample see 
-				the _test directory.
-			</LI>
-		</UL></SPAN>
-	</body>
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1456343&group_id=75348&atid=543655">SF
+			Patch-1456343</a>] New sample file showing how to dynamically exchange a textarea
+			and an instance of FCKeditor. Thanks to Finn Hakansson</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1496115&group_id=75348&atid=543655">SF
+			Patch-1496115</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1588578&group_id=75348&atid=543653">SF
+				BUG-1588578</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1376534&group_id=75348&atid=543653">SF
+					BUG-1376534</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1343506&group_id=75348&atid=543653">SF
+						BUG-1343506</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1211065&group_id=75348&atid=543656">SF
+							Feature-1211065</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=949144&group_id=75348&atid=543656">SF
+								Feature-949144</a>] The content of anchors are shown and preserved
+			on creation. * </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1587175&group_id=75348&atid=543656">SF
+			Feature-1587175</a>] Local links to an anchor are readjusted if the anchor changes.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1500040&group_id=75348&atid=543655">SF
+			Patch-1500040</a>] New configuration values to specify the Id and Class for the
+			body element.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1577202&group_id=75348&atid=543655">SF
+			Patch-1577202</a>] The links created with the popup option now are accessible even
+			if the user has JavaScript disabled.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1443472&group_id=75348&atid=543655">SF
+			Patch-1443472</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1576488&group_id=75348&atid=543653">SF
+				BUG-1576488</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1334305&group_id=75348&atid=543653">SF
+					BUG-1334305</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1578312&group_id=75348&atid=543653">SF
+						BUG-1578312</a>] The Paste from Word clean up function can be configured
+			with FCKConfig.CleanWordKeepsStructure to preserve the markup as much as possible.
+			Thanks Jean-Charles ROGEZ. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1472654&group_id=75348&atid=543655">SF
+			Patch-1472654</a>] The server side script location for SpellerPages can now be set
+			in the configuration file, by using the SpellerPagesServerScript setting.</li>
+		<li><span style="color: #ff0000">Attention:</span> All connectors are now pointing by
+			default to the "/userfiles/" folder instead of "/UserFiles/" (case change). Also,
+			the inner folders for each type (file, image, flash and media) are all lower-cased
+			too.</li>
+		<li><span style="color: #ff0000">Attention:</span> The UseBROnCarriageReturn configuration
+			is not anymore valid. The EnterMode setting can now be used to precisely set the
+			enter key behavior.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1444937&group_id=75348">SF
+			BUG-1444937</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1274364&group_id=75348">SF
+				BUG-1274364</a>] Shortcut keys are now undoable correctly.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1015230&group_id=75348">SF
+			BUG-1015230</a>] Toolbar buttons now update their state on shortcut keys activation.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1485621&group_id=75348">SF
+			BUG-1485621</a>] It is now possible to precisely control which shortcut keys can
+			be used.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1573714&group_id=75348">SF
+			BUG-1573714</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1593323&group_id=75348">SF
+				BUG-1593323</a>] Paste was not working in IE if both AutoDetectPasteFromWord
+			and ForcePasteAsPlainText settings were set to "false". </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1578306&group_id=75348">SF
+			BUG-1578306</a>] The context menu was wrongly positioned if the editing document
+			was set to render in strict mode. Thanks to Alfonso Martinez.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1567060&group_id=75348">SF
+			BUG-1567060</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1565902&group_id=75348">SF
+				BUG-1565902</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1440631&group_id=75348">SF
+					BUG-1440631</a>] IE was getting locked on some specific cases. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1582859&group_id=75348">SF
+			BUG-1582859</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1579507&group_id=75348&atid=543655">SF
+				Patch-1579507</a>] Firefox' spellchecker is now disabled during editing mode.
+			Thanks to Alfonso Martinez.</li>
+		<li>Fixed Safari and Opera detection system (for development purposes only).</li>
+		<li>Paste from Notepad was including font information in IE. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1584092&group_id=75348">SF
+			BUG-1584092</a>] When replacing text area, names with spaces are now accepted.</li>
+		<li>Depending on the implementation of toolbar combos (mainly for custom plugins) the
+			editor area was loosing the focus when clicking in the combo label. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1596937&group_id=75348&atid=543653">SF
+			BUG-1596937</a>] InsertHtml() was inserting the HTML outside the editor area on
+			some very specific cases.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1585548&group_id=75348">SF
+			BUG-1585548</a>] On very specific, rare and strange cases, the XHTML processor was
+			not working properly in IE. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1584951&group_id=75348">SF
+			BUG-1584951</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1380598&group_id=75348">SF
+				BUG-1380598</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1198139&group_id=75348">SF
+					BUG-1198139</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1437318&group_id=75348">SF
+						BUG-1437318</a>] In Firefox, the style selector will not anymore delete
+			the contents when removing styles on specific cases.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1515441&group_id=75348">SF
+			BUG-1515441</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1451071&group_id=75348">SF
+				BUG-1451071</a>] The "Insert/Edit Link" and "Select All" buttons are now working
+			properly when the editor is running on a IE Modal dialog.</li>
+		<li>On some very rare cases, IE was throwing a memory error when hiding the context
+			menus. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1526154&group_id=75348">SF
+			BUG-1526154</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1509208&group_id=75348&atid=543653">SF
+				BUG-1509208</a>] With Firefox, &lt;style&gt; tags defined in the source are
+			now preserved.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1535946&group_id=75348">SF
+			BUG-1535946</a>] The IE dialog system has been changed to better work with custom
+			dialogs.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1599520&group_id=75348">SF
+			BUG-1599520</a>] The table dialog was producing empty tags when leaving some of
+			its fields empty.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1599545&group_id=75348">SF
+			BUG-1599545</a>] HTML entities are now processed on attribute values too.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1598517&group_id=75348">SF
+			BUG-1598517</a>] Meta tags are now protected from execution during editing (avoiding
+			the "redirect" meta to be activated).</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1415601&group_id=75348">SF
+			BUG-1415601</a>] Firefox internals: styleWithCSS is used instead of the deprecated
+			useCSS whenever possible.</li>
+		<li>All JavaScript Core extension function have been renamed to "PascalCase" (some were
+			in "camelCase"). This may have impact on plugins that use any of those functions.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1592311&group_id=75348">SF
+			BUG-1592311</a>] Operations in the caption of tables are now working correctly in
+			both browsers.</li>
+		<li>Small interface fixes to the about box.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1604576&group_id=75348&atid=543655">SF
+			PATCH-1604576</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1604301&group_id=75348">SF
+				BUG-1604301</a>] Link creation failed in Firefox 3 alpha. Thanks to Arpad Borsos</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1577247&group_id=75348&atid=543653">SF
+			BUG-1577247</a>] Unneeded call to captureEvents and releaseEvents.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1610790&group_id=75348">SF
+			BUG-1610790</a>] On some specific situations, the call to form.submit(), in form
+			were FCKeditor has been unloaded by code, was throwing the "Can't execute code from
+			a freed script" error.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1613167&group_id=75348&atid=543653">SF
+			BUG-1613167</a>] If the configuration was missing the FCKConfig.AdditionalNumericEntities
+			entry an error appeared.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1590848&group_id=75348&atid=543653">SF
+			BUG-1590848</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1626360&group_id=75348&atid=543653">SF
+				BUG-1626360</a>] Cleaning of JavaScript strict warnings in the source code.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1559466&group_id=75348&atid=543653">SF
+			BUG-1559466</a>] The ol/ul list property window always searched first for a UL element.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1516008&group_id=75348&atid=543653">SF
+			BUG-1516008</a>] Class attribute in IE wasn't loaded in the image dialog.</li>
+		<li>The "OnAfterSetHTML" event is now fired when being/switching to Source View.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1631807&group_id=75348&atid=543653">SF
+			BUG-1631807</a>] Elements' style properties are now forced to lowercase in IE.</li>
+		<li>The extensions "html", "htm" and "asis" have been added to the list of denied extensions
+			on upload.</li>
+		<li>Empty inline elements (like span and strong) will not be generated any more.</li>
+		<li>Some elements attributes (like hspace) where not being retrieved when set to "0".</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1508341&group_id=75348&atid=543653">SF
+			BUG-1508341</a>] Fix for the ColdFusion script file of SpellerPages.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a href="http://www.imedi.org/">Medical
+			Media Lab</a>.</p>
+	<h3>
+		Version 2.3.3</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>The project has been <strong>relicensed</strong> under the terms of the <strong>
+			GPL / LGPL / MPL</strong> licenses. This change will remove many licensing compatibility
+			issues with other open source licenses, making the editor even more "open" than
+			before. </li>
+		<li><font color="#ff0000">Attention:</font> The default directory in the distribution
+			package is now named "fckeditor" (in lowercase) instead of "FCKeditor".&nbsp; This
+			change may impact installations on case sensitive OSs, like Linux. </li>
+		<li><font color="#ff0000">Attention:</font> The "Universal Keyboard" has been removed
+			from the package. The license of those files was unclear so they can't be included
+			alongside the rest of FCKeditor.</li>
+	</ul>
+	<h3>
+		Version 2.3.2</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>Users can now decide if the template dialog will replace the entire contents of
+			the editor or simply place the template in the cursor position. This feature can
+			be controlled by the "TemplateReplaceAll" and "TemplateReplaceCheckbox" configuration
+			options.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1237693&group_id=75348&atid=543655">SF
+			Patch-1237693</a>] A new configuration option (<strong>ProcessNumericEntities</strong>)
+			is now available to tell the editor to convert non ASCII chars to their relative
+			numeric entity references. It is disabled by default.</li>
+		<li>The new "<strong>AdditionalNumericEntities</strong>" setting makes it possible to
+			define a set of characters to be transformed to their relative numeric entities.
+			This is useful when you don't want the code to have simple quotes ('), for example.</li>
+		<li>The Norwegian language file (no.js) has been duplicated to include the Norwegian
+			Bokmal (nb.js) in the supported interface languages. Thanks to Martin Kronstad.
+		</li>
+		<li>Two new patterns have been added to the Universal Keyboard:
+			<ul>
+				<li>Persian. Thanks to Pooyan Mahdavi</li>
+				<li>Portuguese. Thanks to Bo Brandt.</li>
+			</ul>
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1517322&group_id=75348&atid=543655">SF
+			Patch-1517322</a>] It is now possible to define the start number on numbered lists.
+			Thanks to Marcel Bennett.</li>
+		<li>The Font Format combo will now reflect the EditorAreaCSS styles.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1461539&group_id=75348&atid=543655">SF
+			Patch-1461539</a>] The File Browser connector can now optionally return a "url"
+			attribute for the files. Thanks to Pent.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1090851&group_id=75348">SF
+			BUG-1090851</a>] The new "ToolbarComboPreviewCSS" configuration option has been
+			created, so it is possible to point the Style and Format toolbar combos to a different
+			CSS, avoiding conflicts with the editor area CSS.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1421309&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1421309</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1489402&group_id=75348">SF
+				BUG-1489402</a>] It is now possible to configure the Quick Uploder target path
+			to consider the file type (ex: Image or File) in the target path for uploads.</li>
+		<li>The JavaScript integration file has two new things:
+			<ul>
+				<li>The "CreateHtml()" function in the FCKeditor object, used to retrieve the HTML of
+					an editor instance, instead of writing it directly to the page (as done by "Create()").</li>
+				<li>The global "FCKeditor_IsCompatibleBrowser()" function, which tells if the executing
+					browser is compatible with FCKeditor. This makes it possible to do any necessary
+					processing depending on the compatibility, without having to create and editor instance.</li>
+			</ul>
+		</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1525242&group_id=75348">SF
+			BUG-1525242</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1500050&group_id=75348">SF
+				BUG-1500050</a>] All event attributes (like onclick or onmouseover) are now
+			being protected before loading the editor. In this way, we avoid firing those events
+			during editing (IE issue) and they don't interfere in other specific processors
+			in the editor.</li>
+		<li>Small security fixes to the File Browser connectors. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1546226&group_id=75348">SF
+			BUG-1546226</a>] Small fix to the ColdFusion CFC integration file.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&atid=543655&aid=1547768&group_id=75348">SF
+			Patch-1407500</a>] The Word Cleanup function was breaking the HTML on pasting, on
+			very specific cases. Fixed, thanks to Frode E. Moe.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1551979&group_id=75348&atid=543655">SF
+			Patch-1551979</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1418066&group_id=75348">SF
+				BUG-1418066</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1439621&group_id=75348">SF
+					BUG-1439621</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1501698&group_id=75348&atid=543653">SF
+						BUG-1501698</a>] Make FCKeditor work with application/xhtml+xml. Thanks
+			to Arpad Borsos.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1547738&group_id=75348&atid=543655">SF
+			Patch-1547738</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1550595&group_id=75348&atid=543653">SF
+				BUG-1550595</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1540807&group_id=75348&atid=543653">SF
+					BUG-1540807</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1510685&group_id=75348&atid=543653">SF
+						BUG-1510685</a>] Fixed problem with panels wrongly positioned when the
+			editor is placed on absolute or relative positioned elements. Thanks to Filipe Martins.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1511294&group_id=75348&atid=543655">SF
+			Patch-1511294</a>] Small fix for the File Browser compatibility with IE 5.5.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1503178&group_id=75348&atid=543655">SF
+			Patch-1503178</a>] Small improvement to stop IE from loading smiley images when
+			one smiley is quickly selected from a huge list of smileys. Thanks to stuckhere.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1549112&group_id=75348&atid=543653">SF
+			BUG-1549112</a>] The Replace dialog window now escapes regular expression specific
+			characters in the find and replace fields.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1548788&group_id=75348&atid=543653">SF
+			BUG-1548788</a>] Updated the ieSpell download URL.</li>
+		<li>In FF, the editor was throwing an error when closing the window. Fixed.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1538509&group_id=75348&atid=543653">SF
+			BUG-1538509</a>] The "type" attribute for text fields will always be set now.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1551734&group_id=75348&atid=543653">SF
+			BUG-1551734</a>] The SetHTML function will now update the editing area height no
+			matter which editing mode is active.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1554141&group_id=75348&atid=543653">SF
+			BUG-1554141</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1565562&group_id=75348&atid=543653">SF
+				BUG-1565562</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1451056&group_id=75348&atid=543653">SF
+					BUG-1451056</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1478408&group_id=75348&atid=543653">SF
+						BUG-1478408</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1489322&group_id=75348&atid=543653">SF
+							BUG-1489322</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1513667&group_id=75348&atid=543653">SF
+								BUG-1513667</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1562134&group_id=75348&atid=543653">SF
+									BUG-1562134</a>] The protection of URLs has been enhanced
+			and now it will not break URLs on very specific cases.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1545732&group_id=75348&atid=543653">SF
+			BUG-1545732</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1490919&group_id=75348&atid=543653">SF
+				BUG-1490919</a>] No security errors will be thrown when loading FCKeditor in
+			page inside a FRAME defined in a different domain.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1512817&group_id=75348&atid=543653">SF
+			BUG-1512817</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1571345&group_id=75348&atid=543653">SF
+				BUG-1571345</a>] Fixed the "undefined" addition to the content when ShowBorders
+			= false and FullPage = true in Firefox. Thanks to Brett.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1512798&group_id=75348&atid=543653">SF
+			BUG-1512798</a>] BaseHref will now work well on FullPage, even if no &lt;head&gt;
+			is available.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1509923&group_id=75348&atid=543653">SF
+			BUG-1509923</a>] The DocumentProcessor is now called when using InserHtml().</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1505964&group_id=75348&atid=543653">SF
+			BUG-1505964</a>] The DOCTYPE declaration is now preserved when working in FullPage.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1553727&group_id=75348&atid=543653">SF
+			BUG-1553727</a>] The editor was throwing an error when inserting complex templates.
+			Fixed.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1564930&group_id=75348&atid=543655">SF
+			Patch-1564930</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1562828&group_id=75348">SF
+				BUG-1562828</a>] In IE, anchors where incorrectly copied when using the Paste
+			from Word button. Fixed, thanks to geirhelge.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1557709&group_id=75348&atid=543653">SF
+			BUG-1557709</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1421810&group_id=75348&atid=543653">SF
+				BUG-1421810</a>] The link dialog now validates Popup Window names.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1556878&group_id=75348&atid=543653">SF
+			BUG-1556878</a>] Firefox was creating empty tags when deleting the selection in
+			some special cases.</li>
+		<li>The context menu for links is now correctly shown when right-clicking on floating
+			divs.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1084404&group_id=75348&atid=543653">SF
+			BUG-1084404</a>] The XHTML processor now ignores empty span tags.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1221728&group_id=75348&atid=543653">SF
+			BUG-1221728</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1174503&group_id=75348&atid=543653">SF
+				BUG-1174503</a>] The &lt;abbr&gt; tag is not anymore getting broken by IE.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1182906&group_id=75348&atid=543653">SF
+			BUG-1182906</a>] IE is not anymore messing up mailto links.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1386094&group_id=75348&atid=543653">SF
+			BUG-1386094</a>] Fixed an issue when setting configuration options to empty ('')
+			by code.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1389435&group_id=75348&atid=543653">SF
+			BUG-1389435</a>] Fixed an issue in some dialog boxes when handling numeric inputs.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1398829&group_id=75348&atid=543653">SF
+			BUG-1398829</a>] Some links may got broken on very specific cases. Fixed.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1409969&group_id=75348&atid=543653">SF
+			BUG-1409969</a>] &lt;noscript&gt; tags now remain untouched by the editor.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1433457&group_id=75348&atid=543653">SF
+			BUG-1433457</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1513631&group_id=75348&atid=543653">SF
+				BUG-1513631</a>] Empty "href" attributes in &lt;a&gt; or empty "src" in &lt;img&gt;
+			will now be correctly preserved.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1435195&group_id=75348&atid=543653">SF
+			BUG-1435195</a>] Scrollbars are now visible in the File Browser (for custom implementations).</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1438296&group_id=75348&atid=543653">SF
+			BUG-1438296</a>] The "ForceSimpleAmpersand" setting is now being honored in all
+			tags.</li>
+		<li>If a popup blocker blocks context menu operations, the correct alert message is
+			displayed now, instead of a ugly JavaScript error.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1454116&group_id=75348&atid=543653">SF
+			BUG-1454116</a>] The GetXHTML() function will not change the IsDirty() value of
+			the editor.</li>
+		<li>The spell check may not work correctly when using SpellerPages with ColdFusion.
+			Fixed.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1481861&group_id=75348&atid=543653">SF
+			BUG-1481861</a>] HTML comments are now removed by the Word Cleanup System.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1489390&group_id=75348&atid=543653">SF
+			BUG-1489390</a>] A few missing hard coded combo options used in some dialogs are
+			now localizable.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1505448&group_id=75348&atid=543653">SF
+			BUG-1505448</a>] The Form dialog now retrieves the value of the "action" attribute
+			exactly as defined in the source.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1517322&group_id=75348&atid=543655">SF
+			Patch-1517322</a>] Solved an issue when the toolbar has buttons with simple icons
+			(usually used by plugins) mixed with icons coming from a strip (the default toolbar
+			buttons).</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1575261&group_id=75348&atid=543655">SF
+			Patch-1575261</a>] Some fields in the Table and Cell Properties dialogs were being
+			cut. Fixed.</li>
+		<li>Fixed a startup compatibility issue with Firefox 1.0.4.</li>
+	</ul>
+	<h3>
+		Version 2.3.1</h3>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/support/tracker.php?aid=1506126">SF
+			BUG-1506126</a>] Fixed the Catalan language file, which had been published with
+			problems in accented letters. </li>
+		<li>More performance improvements in the default File Browser.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1506701&group_id=75348&atid=543653">SF
+			BUG-1506701</a>] Fixed compatibility issues with IE 5.5.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1509073&group_id=75348&atid=543653">SF
+			BUG-1509073</a>] Fixed the "Image Properties" dialog window, which was making invalid
+			calls to the "editor/dialog/" directory, generating error 400 entries in the web
+			server log.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1507294&group_id=75348&atid=543653">SF
+			BUG-1507294</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1507953&group_id=75348&atid=543653">SF
+				BUG-1507953</a>] The editing area was getting a fixed size when using the "SetHTML"
+			API command or even when switching back from the source view. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1507755&group_id=75348">SF
+			BUG-1507755</a>] Fixed a conflict between the "DisableObjectResizing" and "ShowBorders"
+			configuration options over IE.</li>
+		<li>Opera 9 tries to "mimic" Gecko in the browser detection system of FCKeditor. As
+			this browser is not "yet" supported, the editor was broken on it. It has been fixed,
+			and now a textarea is displayed, as in any other unsupported browser. Support for
+			Opera is still experimental and can be activated by setting the property "EnableOpera"
+			to true when creating an instance of the editor with the JavaScript integration
+			files.</li>
+		<li>With Opera 9, the toolbar was jumping on buttons rollover. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1509479&group_id=75348&atid=543656">SF
+			BUG-1509479</a>] The iframes used in Firefox for all editor panels (dropdown combos,
+			context menu, etc...) are now being placed right before the main iframe that holds
+			the editor. In this way, if the editor container element is removed from the DOM
+			(by DHTML) they are removed together with it.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1271070&group_id=75348&atid=543653">SF
+			BUG-1271070</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1411430&group_id=75348&atid=543653">SF
+				BUG-1411430</a>] The editor API now works well on DHTML pages that create and
+			remove instances of FCKeditor dynamically. </li>
+		<li>A second call to a page with the editor was not working correctly with Firefox 1.0.x.
+			Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1511460&group_id=75348&atid=543653">SF
+			BUG-1511460</a>] Small correction to the &lt;script&gt; protected source regex.
+			Thanks to Randall Severy.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1521754&group_id=75348">SF
+			BUG-1521754</a>] Small fix to the paths of the internal CSS files used by FCKeditor.
+			Thanks to johnw_ceb.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1511442&group_id=75348&atid=543653">SF
+			BUG-1511442</a>] The &lt;base&gt; tag is now correctly handled in IE, no matter
+			its position in the source code.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1507773&group_id=75348&atid=543653">SF
+			BUG-1507773</a>] The "Lock" and "Reset" buttons in the Image Properties dialog window
+			are not anymore jumping with Firefox 1.5.</li>
+	</ul>
+	<h3>
+		Version 2.3</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>The <strong>Toolbar Sharing</strong> system has been completed. See sample10.html
+			and sample11.html.*</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1407500&group_id=75348&atid=543655">SF
+			Patch-1407500</a>] Small enhancement to the Find and Replace dialog windows.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>Small security fixes.</li>
+		<li>The context menu system has been optimized. Nested menus now open "onmouseover".
+		</li>
+		<li>An error in the image preloader system was making the toolbar strip being downloaded
+			once for each button on slow connections. Some enhancements have also been made
+			so now the smaple05.html is loading fast for all skins.</li>
+		<li>Fixed many memory leak issues with IE.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1489768&group_id=75348&atid=543653">SF
+			BUG-1489768</a>] The panels (context menus, toolbar combos and color selectors),
+			where being displayed in the wrong position if the contents of the editor, or its
+			containing window were scrolled down. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1493176&group_id=75348">SF
+			BUG-1493176</a>] Using ASP, the connector was not working on servers with buffer
+			disable by default.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1491784&group_id=75348&atid=543653">SF
+			BUG-1491784</a>] Language files have been updated to not include html entities.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1490259&group_id=75348&atid=543653">SF
+			BUG-1490259</a>] No more security warning on IE over HTTPS.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1493173&group_id=75348&atid=543653">SF
+			BUG-1493173</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1499708&group_id=75348">SF
+				BUG-1499708</a>] We now assume that, if a user is in source editing, he/she
+			wants to control the HTML, so the editor doesn't make changes to it when posting
+			the form being in source view or when calling the GetXHTML function in the API.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1490610&group_id=75348&atid=543653">SF
+			BUG-1490610</a>] The FitWindow is now working on elements set with relative position.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1493438&group_id=75348&atid=543653">SF
+			BUG-1493438</a>] The "Word Wrap" combo in the cell properties dialog now accepts
+			only Yes/No (no more &lt;Not Set&gt; value).</li>
+		<li>The context menu is now being hidden when a nested menu option is selected.</li>
+		<li>Table cell context menu operations are now working correctly.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1494549&group_id=75348&atid=543653">SF
+			BUG-1494549</a>] The code formatter was having problems with dollar signs inside
+			&lt;pre&gt; tags.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1459740&group_id=75348&atid=543655">SF
+			Patch-1459740</a>] The "src" element of images can now be set by styles definitions.
+			Thanks to joelwreed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1437052&group_id=75348&atid=543655">SF
+			Patch-1437052</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1436166&group_id=75348&atid=543655">SF
+				Patch-1436166</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1352385&group_id=75348&atid=543655">SF
+					Patch-1352385</a>] Small fix to the FCK.InsertHtml, FCKTools.AppendStyleSheet
+			and FCKSelection.SelectNode functions over IE. Thanks to Alfonso Martinez.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1349765&group_id=75348&atid=543655">SF
+			Patch-1349765</a>] Small fix to the FCKSelection.GetType over Firefox. Thanks to
+			Alfonso Martinez.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543655&aid=1495422&group_id=75348">SF
+			Patch-1495422</a>] The editor now creates link based on the URL when no selection
+			is available. Thanks to Dominik Pesch.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543655&aid=1478859&group_id=75348">SF
+			Patch-1478859</a>] On some circumstances, the Yahoo popup blocker was blocking the
+			File Browser window, giving no feedback to the user. Now an alert message is displayed.</li>
+		<li>When using the editor in a RTL localized interface, like Arabic, the toolbar combos
+			were not showing completely in the first click. Fixed.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1500212&group_id=75348">SF
+			BUG-1500212</a>] All "_samples/html" samples are now working when loading directly
+			from the Windows Explorer. Thanks to Alfonso Martinez.</li>
+		<li>The "FitWindow" feature was breaking the editor under Firefox 1.0.x.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1500032&group_id=75348&atid=543655">SF
+			Patch-1500032</a>] In Firefox, the caret position now follows the user clicks when
+			clicking in the white area bellow the editor contents. Thanks to Alfonso Martinez.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1499522&group_id=75348">SF
+			BUG-1499522</a>] In Firefox, the link dialog window was loosing the focus (and quickly
+			reacquiring it) when opening. This behavior was blocking the dialog in some Linux
+			installations. </li>
+		<li>Drastically improved the loading performance of the file list in the default File
+			Browser.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1503059&group_id=75348">SF
+			BUG-1503059</a>] The default "BasePath" for FCKeditor in all integration files has
+			been now unified to "/fckeditor/" (lower-case). This is the usual casing system
+			in case sensitive OSs like Linux.</li>
+		<li>The "DisableFFTableHandles" setting is now honored when switching the full screen
+			mode with FitWindow.</li>
+		<li>Some fixes has been applied to the cell merging in Firefox.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a href="http://www.footsteps.nl/">Footsteps</a>
+		and <a href="http://www.kentico.com/">Kentico</a>.</p>
+	<h3>
+		Version 2.3 Beta</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li><span><strong>Extremely Fast Loading!</strong> The editor now loads more than 3
+			times faster than before, with no impact on its advanced features.</span> </li>
+		<li><span><strong>New toolbar system</strong>:</span>
+			<ul>
+				<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1454850&amp;group_id=75348&amp;atid=543656">SF
+					Feature-1454850</a>] The toolbar will now <strong>load much faster</strong>. All
+					images have being merged in a single image file using a unique system available
+					only with FCKeditor. </li>
+				<li>The &quot;Text Color&quot; and &quot;Background Color&quot; commands buttons have
+					enhancements on the interface.</li>
+				<li><strong><span style="color: #ff0000">Attention</span></strong>: As a completely
+					new system has being developed. Skins created for versions prior this one will not
+					work. Skin styles definitions have being merged, added and removed. All skins have
+					been a little bit reviewed. </li>
+				<li>It is possible to <strong>detach the toolbar</strong> from an editor instance and
+					share it with other instances. In this way you may have only one toolbar (in the
+					top of the window, for example, that can be used by many editors (see <a href="_samples/html/sample10.html">
+						sample10.html</a>). This feature is still under development (issues with IE
+					focus still to be solved).* </li>
+			</ul>
+		</li>
+		<li><strong><span>New context menu system</span></strong>:
+			<ul>
+				<li>It uses the same (fast) loading system as the toolbar. </li>
+				<li>Sub-Menus are now available to group features (try the context menu over a table
+					cell). </li>
+				<li>It is now possible to create your own context menu entries by creating plugins.
+				</li>
+			</ul>
+		</li>
+		<li><strong>New "FitWindow" toolbar button</strong>, based on the <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1431638&group_id=75348&atid=737639">
+			plugin</a> published by Paul Moers. Thanks Paul!</li>
+		<li><strong>&quot;Auto Grow&quot; Plugin</strong>: automatically resizes the editor
+			until a maximum height, based on its contents size.** </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1444943&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1444943</a>] <strong>Multiple CSS files</strong> can now be used in the
+			editing area. Just define FCKConfig.EditorAreaCSS as an array of strings (each one
+			is a path to a different css file). It works also as a simple string, as on prior
+			versions. </li>
+		<li>New language files:<ul>
+			<li><strong>Bengali / Bangla</strong> (by Richard Walledge).</li>
+			<li><strong>English (Canadian)</strong> (by Kevin Bennett). </li>
+			<li><strong>Khmer</strong> (by Sengtha Chay).</li>
+		</ul>
+		</li>
+		<li>The source view is now available in the editing area on Gecko browsers. Previously
+			a popup was used for it (due to a Firefox bug). </li>
+		<li><span>As some people may prefer the popup way for source editing, a new configuration
+			option (SourcePopup) has being introduced.</span> </li>
+		<li>The IEForceVScroll configuration option has been removed. The editor now automatically
+			shows the vertical scrollbar when needed (for XHTML doctypes). </li>
+		<li>The configuration file doesn't define a default DOCTYPE to be used now. </li>
+		<li>It is now possible to easily change the toolbar using the JavaScript API by just
+			calling &lt;EditorInstance&gt;.ToolbarSet.Load( '&lt;ToolbarName&gt;' ). See _testcases/010.html
+			for a sample. </li>
+		<li>The &quot;OnBlur&quot; and &quot;OnFocus&quot; JavaScript API events are now compatible
+			with all supported browsers. </li>
+		<li>Some few updates in the Lasso connector and uploader. </li>
+		<li>The GeckoUseSPAN setting is now set to "false" by default. In this way, the code
+			produced by the bold, italic and underline commands are the same on all browsers.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li><strong>Important security fixes have been applied to the File Manager, Uploader
+			and Connectors. Upgrade is highly recommended.</strong> Thanks to Alberto Moro,
+			Baudouin Lamourere and James Bercegay.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1399966&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1399966</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1249853&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1249853</a>] The &quot;BaseHref&quot; configuration is now working with
+			Firefox in both normal and full page modes.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1405263&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1405263</a>] A typo in the configuration file was impacting the Quick Upload
+			feature. </li>
+		<li>Nested &lt;ul&gt; and &lt;ol&gt; tags are now generating valid html.</li>
+		<li>The &quot;wmode&quot; and &quot;quality&quot; attributes are now preserved for Flash
+			embed tags, in case they are entered manually in the source view. Also, empty attributes
+			are removed from that tag. </li>
+		<li>Tables where not being created correctly on Opera. </li>
+		<li>The XHTML processor will ignore invalid tags with names ending with &quot;:&quot;,
+			like http:. </li>
+		<li><span>On Firefox, the scrollbar is not anymore displayed on toolbar dropdown commands
+			when not needed.</span> </li>
+		<li><span>Some small fixes have being done to the dropdown commands rendering for FF</span>.
+		</li>
+		<li>The table dialog window has been a little bit enlarged to avoid contents being cropped
+			on some languages, like Russian. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1465203&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1465203</a>] The ieSpell download URL has been updated. The problem is that
+			they don't have a fixed URL for it, so let's hope the mirror will be up for it.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1456332&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1456332</a>] Small fix in the Spanish language file. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1457078&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1457078</a>] The File Manager was generating 404 calls in the server. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1459846&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1459846</a>] Fixed a problem with the config file if PHP is set to parse .js
+			files. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1432120&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1432120</a>] The &quot;UserFilesAbsolutePath&quot; setting is not correctly
+			used in the PHP uploader. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1432120&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1408869</a>] The collapse handler is now rendering correctly in Firefox 1.5.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1410082&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1410082</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1424240&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1424240</a>] The &quot;moz-bindings.xml&quot; file is now well formed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1413980&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1413980</a>] All frameborder &quot;yes/no&quot; values have been changes to
+			&quot;1/0&quot;. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1414101&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1414101</a>] The fake table borders are now showing correctly when running under
+			the &quot;file://&quot; protocol. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1414155&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1414155</a>] Small typo in the cell properties dialog window.</li>
+		<li>Fixed a problem in the File Manager. It was not working well with folder or file
+			names with apostrophes ('). Thanks to René de Jong.</li>
+		<li>Small "lenght" type corrected in the select dialog window. Thanks to Bernd Nussbaumer.</li>
+		<li>The about box is now showing correctly in Firefox 1.5.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1464020&group_id=75348&atid=543655">SF
+			Patch-1464020</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1155793&group_id=75348&atid=543653">SF
+				BUG-1155793</a>] The "Unlink" command is now working correctly under Firefox
+			if you don't have a complete link selection. Thanks to Johnny Egeland.</li>
+		<li>In the File Manager, it was not possible to upload files to folders with ampersands
+			in the name. Thanks to Mike Pone.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1178359&group_id=75348&atid=543653">SF
+			BUG-1178359</a>] Elements from the toolbar are not anymore draggable in the editing
+			area.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&aid=1487544&group_id=75348&atid=543653">SF
+			BUG-1487544</a>] Fixed a small issue in the code formatter for &lt;br /&gt; and
+			&lt;hr /&gt; tags.</li>
+		<li>The "Background Color" command now works correctly when the GeckoUseSPAN setting
+			is disabled (default).</li>
+		<li>Links are now rendered in blue with Firefox (they were black before). Actually,
+			an entry for it has been added to the editing area CSS, so you can customize with
+			the color you prefer. </li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a href="http://www.footsteps.nl/">Footsteps</a>
+		and <a href="http://www.kentico.com/">Kentico</a>.
+		<br />
+		** This version has been partially sponsored by <a href="http://www.nextide.ca/">Nextide</a>.</p>
+	<h3>
+		Version 2.2</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>Let's welcome Wim Lemmens (didgiman). He's our new responsible for the ColdFusion
+			integration. In this version we are introducing his new files with the following
+			changes:
+			<ul>
+				<li>The &quot;<strong>Uploader</strong>&quot;, used for quick uploads,&nbsp;is now available
+					<strong>natively for ColdFusion</strong>. </li>
+				<li>Small bugs have been corrected in the <strong>File Browser connector</strong>. </li>
+				<li>The samples now work as is, even if you don't install the editor in the &quot;/FCKeditor&quot;
+					directory.</li>
+			</ul>
+		</li>
+		<li>And a big welcome also to &quot;Andrew Liu&quot;, our responsible for the <strong>
+			Python</strong> integration. This version is bringing <strong>native support for Python</strong>
+			, including the File Browser connector and Quick Upload. </li>
+		<li>The &quot;<strong>IsDirty()</strong>&quot; and &quot;<strong>ResetIsDirty()</strong>&quot;
+			functions have been&nbsp;added to the&nbsp;JavaScript API&nbsp;to check if the editor
+			content has been changed.* </li>
+		<li>New language files:
+			<ul>
+				<li><strong>Hindi</strong> (by Utkarshraj Atmaram) </li>
+				<li><strong>Latvian </strong>(by Janis Klavin&scaron;)</li>
+			</ul>
+		</li>
+		<li>For&nbsp;the interface, now we have complete <strong>RTL support</strong> also for
+			the drop-down toolbar commands, color selectors and context menu. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1325113&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1325113</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1277661&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1277661</a>] The new &quot;Delete Table&quot; command is available in the
+			Context Menu when right-clicking inside a table. </li>
+		<li>The &quot;FCKConfig.DisableTableHandles&quot; configuration option is now working
+			on Firefox 1.5. </li>
+		<li>The new &quot;<strong>OnBlur</strong>&quot; and &quot;<strong>OnFocus</strong>&quot;
+			events have been added to the JavaScript API (IE only). See&nbsp;&quot;_samples/html/sample09.html&quot;&nbsp;*
+		</li>
+		<li><strong><font color="#ff0000">Attention</font></strong>: The &quot;<strong>GetHTML</strong>&quot;
+			function has been deprecated. It now returns the same value as &quot;<strong>GetXHTML</strong>&quot;.
+			The same is valid for the &quot;EnableXHTML&quot; and &quot;EnableSourceXHTML&quot;
+			that have no effects now. The editor now works with XHTML output only. </li>
+		<li><strong><font color="#ff0000">Attention</font></strong>: A new &quot;<strong>PreserveSessionOnFileBrowser</strong>&quot;
+			configuration option has been introduced. It makes it possible to set whenever is
+			needed to maintain the user session in the File Browser. It is disabled by default,
+			as it has very specific usage and may cause the File Browser to be blocked by popup
+			blockers. If you have custom File Browsers that depends on session information,
+			remember to activate it. </li>
+		<li><strong><font color="#ff0000">Attention</font></strong>: The &quot;<strong>fun</strong>&quot;
+			smileys set has been removed from the package. If you are using it, you must manually
+			copy it to newer installations and upgrades. </li>
+		<li><strong><font color="#ff0000">Attention</font></strong>: The &quot;<strong>mcpuk</strong>&quot;
+			file browser has been removed from the package. We have no ways to support it. There
+			were also some licensing issues with it. Its web site can still be found at <a href="http://mcpuk.net/fbxp/">
+				http://mcpuk.net/fbxp/</a>. </li>
+		<li>It is now possible to set different CSS styles for the chars in the Special Chars
+			dialog window by adding the &quot;SpecialCharsOut&quot; and &quot;SpecialCharsOver&quot;
+			in the &quot;fck_dialog.css&quot; skin file.* </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1268726&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1268726</a>] Added table &quot;summary&quot; support in the table dialog.
+			Thanks to Sebastien-Mahe. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1284380&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1284380</a>] It is now possible to define the icon of a FCKToolbarPanelButton
+			object without being tied to the skin path (just like FCKToolbarButton). Thanks
+			to Ian Sullivan. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1338610&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1338610</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1263009&amp;group_id=75348&amp;atid=543656">SF
+				Patch-1263009</a>] New characters have been added to the &quot;Special Characters&quot;
+			dialog window. Thanks to Deian. </li>
+		<li>You can set the QueryString value &quot;fckdebug=true&quot; to activate &quot;debug
+			mode&quot; in the editor (showing the debug window), overriding the configurations.
+			The &quot;AllowQueryStringDebug&quot; configuration option is also available so
+			you can disable this feature.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1363548&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1363548</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1364425&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1364425</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1335045&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1335045</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1289661&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1289661</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1225370&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1225370</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156291&amp;group_id=75348&amp;atid=543653">SF
+								BUG-1156291</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1165914&amp;group_id=75348&amp;atid=543653">SF
+									BUG-1165914</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1111877&amp;group_id=75348&amp;atid=543653">SF
+										BUG-1111877</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092373&amp;group_id=75348&amp;atid=543653">SF
+											BUG-1092373</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1101596&amp;group_id=75348&amp;atid=543653">SF
+												BUG-1101596</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1246952&amp;group_id=75348&amp;atid=543653">SF
+													BUG-1246952</a>] The URLs for links and
+			images are now correctly preserved as entered, no matter if you are using relative
+			or absolute paths. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1162809&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1162809</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205638&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1205638</a>] The &quot;Image&quot; and &quot;Flash&quot;&nbsp;dialog windows
+			now loads the preview correctly if the &quot;BaseHref&quot; configuration option
+			is set. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1329807&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1329807</a>] The alert boxes are now showing correctly when doing cut/copy/paste
+			operations on Firefox installations when it is not possible to execute that operations
+			due to security settings. </li>
+		<li>A new &quot;Panel&quot; system (used in the drop-dowm toolbar commands, color selectors
+			and context menu) has been developed. The following bugs have been fixed with it:
+			<ul>
+				<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1186927&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1186927</a>] On IE, sometimes the context menu was being partially hidden.*
+				</li>
+				<li>On Firefox, the context menu was flashing in the wrong position before showing.
+				</li>
+				<li>On Firefox 1.5, the Color Selector was not working. </li>
+				<li>On Firefox 1.5, the fonts in the panels were too big. </li>
+				<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1076435&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1076435</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1200631&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1200631</a>] On Firefox, sometimes the context menu was being shown in the
+					wrong position.</li>
+			</ul>
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1364094&amp;group_id=75348">SF
+			BUG-1364094</a>] Font families were <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=317572">
+				not being rendered correctly on Firefox</a> . </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1315954&amp;group_id=75348">SF
+			BUG-1315954</a>] No error is thrown when pasting some case specific code from editor
+			to editor. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1341553&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1341553</a>] A small fix for a security alert in the File&nbsp;Browser has been
+			applied. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1370953&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1370953</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1339898&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1339898</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1323319&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1323319</a>] A message will be shown to the user (instead of a JS error)&nbsp;if
+			a &quot;popup blocker&quot; blocks the &quot;Browser Server&quot; button. Thanks
+			to Erwin Verdonk. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1370355&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1370355</a>] Anchor links that points to a single character anchor, like &quot;#A&quot;,
+			are now correctly detected in the Link dialog window. Thanks to Ricky Casey. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1368998&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1368998</a>] Custom error processing has been added to the file upload on the
+			File Browser. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1367802&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1367802</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1207740&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1207740</a>] A message is shown to the user if a dialog box is blocked by
+			a popup blocker in Firefox. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1358891&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1358891</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1340960&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1340960</a>] The editor not works locally (without a web server) on directories
+			where the path contains spaces. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1357247&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1357247</a>] The editor now intercepts SHIFT + INS keystrokes when needed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1328488&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1328488</a>] <strong><font color="#ff0000">Attention</font></strong>: The Page
+			Break command now produces different tags&nbsp;to avoid&nbsp;XHTML compatibility
+			issues. Any Page Break previously applied to content produced with previous versions
+			of FCKeditor will not me rendered now, even if&nbsp;they will still be working correctly.
+		</li>
+		<li>It is now possible to allow cut/copy/past operations on Firefox using the <a
+			href="http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard"
+			target="_blank">user.js</a> file. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1336792&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1336792</a>] A fix has been applied to the XHTML processor to allow tag names
+			with the &quot;minus&quot; char (-). </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1339560&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1339560</a>] The editor now correctly removes the &quot;selected&quot; option
+			for checkboxes and radio buttons. </li>
+		<li>The Table dialog box now selects the table correctly when right-clicking on objects
+			(like images) placed inside the table. </li>
+		<li><strong><font color="#ff0000">Attention</font></strong>: A few changes have been
+			made in the skins. If you have a custom skin, it is recommended you to make a diff
+			of the fck_contextmenu.css file of the default skin with your implementation. </li>
+		<li>Mouse select (marking&nbsp;things in blue, like selecting text) has been disabled
+			on panels (drop-down menu commands, color selector and context menu) and toolbar,
+			for both IE and Firefox. </li>
+		<li>On Gecko, fake borders will not be applied to tables with the border attribute set
+			to more than 0, but placed inside tables with border set to 0. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1360717&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1360717</a>] A wrapping issue in the &quot;Silver&quot; skin has been corrected.
+			Thanks to Ricky Casey. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1251145&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1251145</a>] In IE, the focus is now maintained in the text when clicking in
+			the empty area&nbsp;following it. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181386&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1181386</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1237791&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1237791</a>] The &quot;Stylesheet Classes&quot; field in the Link dialog
+			window in now applied correctly on IE. Thanks to Andrew Crowe. </li>
+		<li>The &quot;Past from Word&quot; dialog windows is now showing correctly on Firefox
+			on some languages. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1315008&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1315008</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1241992&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1241992</a>] IE, when selecting objects (like images) and hitting the &quot;Backspace&quot;
+			button, the browser's &quot;back&quot; will not get executed anymore and the object
+			will be correctly deleted. </li>
+		<li>The &quot;AutoDetectPasteFromWord&quot; is now working correctly in IE. Thanks to
+			Juan Ant. G&oacute;mez. </li>
+		<li>A small enhancement has been made in the Word pasting detection. Thanks to Juan
+			Ant. G&oacute;mez. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090686&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1090686</a>] No more conflict with Firefox &quot;Type-Ahead Find&quot; feature.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=942653&amp;group_id=75348&amp;atid=543653">SF
+			BUG-942653</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155856&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1155856</a>] The &quot;width&quot; and &quot;height&quot; of images sized
+			using the inline handlers are now correctly loaded in the image dialog box. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1209093&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1209093</a>] When &quot;Full Page Editing&quot; is active, in the &quot;Document
+			Properties&quot; dialog, the &quot;Browse Server&quot; button for the page background
+			is now correctly hidden if &quot;ImageBrowser&quot; is set to &quot;false&quot;
+			in the configurations file. Thanks to Richard. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1120266&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1120266</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1186196&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1186196</a>] The editor now retains the focus when selecting commands in
+			the toolbar. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1244480&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1244480</a>] The editor now will look first to linked fields &quot;ids&quot;
+			and&nbsp;second to &quot;names&quot;. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1252905&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1252905</a>] The &quot;InsertHtml&quot; function now preserves URLs as entered.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1266317&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1266317</a>] Toolbar commands are not anymore executed outside the editor. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1365664&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1365664</a>] The &quot;wrap=virtual&quot; attribute has been removed from the
+			integration files for validation purposes. No big impact. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=972193&amp;group_id=75348&amp;atid=543653">SF
+			BUG-972193</a>] Now just one click is needed to active the cursor inside the editor.
+		</li>
+		<li>The hidden fields used by the editor are now protected from changes using the &quot;Web
+			Developer Add-On &gt; Forms &gt; Display Forms Details&quot; extension. Thanks to
+			Jean-Marie Griess. </li>
+		<li>On IE, the &quot;Format&quot; toolbar dropdown now reflects the current paragraph
+			type on IE. Because of a bug in the browser, it is quite dependent on the browser
+			language and the editor interface language (both must be the same). Also, as the
+			&quot;Normal (DIV)&quot; type is seen by IE as &quot;Normal&quot;, to avoid confusion,
+			both types are ignored by this fix. </li>
+		<li>On some very rare cases, IE was loosing the &quot;align&quot; attribute for DIV
+			tags. Fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1388799&amp;group_id=75348">SF
+			BUG-1388799</a>] The code formatter was removing spaces on the beginning of lines
+			inside PRE tags. Fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1387135&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1387135</a>] No more &quot;NaN&quot; values in the image dialog, when changing
+			the sizes in some situations. </li>
+		<li>Corrected a small type in the table handler. </li>
+		<li>You can now set the &quot;z-index&quot; for floating panels (toolbar dropdowns,
+			color selectors, context menu) in Firefox, avoiding having them hidden under another
+			objects. By default it is set to 10,000. Use the FloatingPanelsZIndex configuration
+			option to change this value.</li>
+	</ul>
+	<p>
+		<strong>Special thanks</strong> to <a target="_blank" href="https://sourceforge.net/users/alfonsoml/">
+			Alfonso Martinez</a>, who have provided many patches and suggestions for the
+		following features / fixes present in this version. I encourage all you to <a href="https://sourceforge.net/donate/index.php?user_id=1356422">
+			donate</a> to Alfonso, as a way to say thanks for his nice open source approach.
+		Thanks Alfonso!. Check out his contributions:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1364094&amp;group_id=75348">SF
+			BUG-1352539</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1208348&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1208348</a>] With Firefox, no more &quot;fake&quot; selections are appearing
+			when inserting images, tables, special chars or when using the &quot;insertHtml&quot;
+			function. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543655&amp;aid=1382588&amp;group_id=75348">SF
+			Patch-1382588</a>] The &quot;FCKConfig.DisableImageHandles&quot; configuration option
+			is not working on Firefox 1.5. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1368586&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1368586</a>] Some fixes have been applied to the Flash dialog box and the
+			Flash pre-processor. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1360253&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1360253</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1378782&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1378782</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1305899&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1305899</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1344738&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1344738</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1347808&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1347808</a>] On dialogs, some fields&nbsp;became impossible
+			to select or change when using Firefox. It has been fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1357445&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1357445</a>] Add support for DIV in the Format drop-down combo for Firefox.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1350465&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1350465</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1376175&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1376175</a>] The &quot;Cell Properties&quot; dialog now works correctly
+			when right-clicking in an object (image, for example) placed inside the cell itself.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1349166&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1349166</a>] On IE, there is now support for namespaces on tags names. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1350552&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1350552</a>] Fix the display issue when applying styles on tables. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1352320&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1352320</a> ] Fixed&nbsp;a wrong&nbsp;usage of the &quot;parentElement&quot;
+			property on Gecko. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1355007&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1355007</a>] The new &quot;FCKDebug.OutputObject&quot; function is available
+			to dump all object information in the debug window. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1329500&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1329500</a>] It is now possible to delete table columns when clicking on a
+			TH cell of the column. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1315351&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1315351</a>] It is now possible to pass the image width and height to the
+			&quot;SetUrl&quot; function of the Flash dialog box. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1327384&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1327384</a>] TH tags are now correctly handled by the source code formatter
+			and the &quot;FillEmptyBlocks&quot; configuration option. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1327406&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1327406</a>] Fake borders are now displayed for TH elements on tables with
+			border set to 0. Also, on Firefox, it will now work even if the border attribute
+			is not defined and the borders are not dotted. </li>
+		<li>Hidden fields now get rendered on Firefox. </li>
+		<li>The BasePath is now included in the debugger URL to avoid problems when calling
+			it from plugins.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a target="_blank" href="http://www.alkacon.com">
+			Alkacon Software</a>.</p>
+	<h3>
+		Version 2.1.1</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>The new &quot;<strong>Insert Page Break</strong>&quot;&nbsp;command (for printing)&nbsp;has
+			been introduced.* </li>
+		<li>The editor package now has a root directory called &quot;FCKeditor&quot;.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1326285&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1326285</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1316430&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1316430</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1323662&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1323662</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1326223&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1326223</a>] We are doing a little step back with this version.
+			The ENTER and BACKSPACE behavior changes for Firefox have been remove. It is a nice
+			feature, but we need much more testing&nbsp;on it. It introduced some bugs and so
+			its preferable to not have that feature, avoiding problems (even if that feature
+			was intended to solve some issues). </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1289372&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1275714</a>] Comments in the beginning of the source are now preserved when
+			using the &quot;undo&quot; and &quot;redo&quot; commands. </li>
+		<li>The &quot;undo&quot; and &quot;redo&quot; commands now work for the Style command.
+		</li>
+		<li>An error in the execution of the pasting commands on Firefox has been fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1326184&amp;group_id=75348">SF
+			BUG-1326184</a>] No strange (invalid) entities are created when using Firefox. Also,
+			the &amp;nbsp; used by the FillEmptyBlocks setting is maintained even if you disable
+			the ProcessHTMLEntities setting.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a target="_blank" href="http://www.acttive.com.br/">
+			Acctive Software&nbsp;S.A.</a>.</p>
+	<h3>
+		Version 2.1</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1200328&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1200328</a>] The editor now offers a way to &quot;protect&quot; part of the
+			source to remain untouched while editing or changing views.&nbsp;Just use the &quot;FCKConfig.ProtectedSource&quot;
+			object to configure it and customize to your needs. It is based on regular expressions.
+			See fckconfig.js for some samples. </li>
+		<li>The editor now offers native support for <strong>Lasso</strong>. Thanks and welcome&nbsp;to
+			our new developer Jason Huck. </li>
+		<li>New language files are available:
+			<ul>
+				<li><strong>Faraose</strong> (by S&iacute;min Lassaberg and&nbsp;Helgi Arnthorsson)
+				</li>
+				<li><strong>Malay</strong> (by Fairul Izham Mohd Mokhlas) </li>
+				<li><strong>Mongolian</strong> (by Lkamtseren Odonbaatar) </li>
+				<li><strong>Vietnamese</strong> (by Phan Binh Giang)</li>
+			</ul>
+		</li>
+		<li>A new configurable&nbsp;ColdFusion connector is available. Thanks to Mark Woods.
+			Many enhancements has been introduced with it. </li>
+		<li>The PHP connector for the default File Browser now sorts the folders and files names.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1289372&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1289372</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1282758&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1282758</a>] In the PHP connector it is now possible to set the absolute
+			(server) path to the User Files directory, avoiding problems with Virtual Directories,
+			Symbolic Links or Aliases. Take a look at the config.php file. </li>
+		<li>The ASP.Net uploader (for Quick Uploads) has been added to the package. </li>
+		<li>A new way to define <strong>simple &quot;combo&quot; toolbar items</strong> , like
+			Style and Font, has been introduced.&nbsp;Thanks&nbsp;to Steve Lineberry.&nbsp;See
+			sample06.html and the &quot;simplecommands&quot; plugin&nbsp;to fully understand
+			it. </li>
+		<li>A new test case has been added that shows how to set the editor background dynamically
+			without using a CSS. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155906&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1155906</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1110116&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1110116</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1216332&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1216332</a>] The &quot;AutoDetectPasteFromWord&quot; configuration option
+			is back (IE only feature). </li>
+		<li>The&nbsp;new &quot;OnAfterLinkedFieldUpdate&quot; event has been introduced. If
+			is fired when the editor updates its hidden associated field. </li>
+		<li>Attention: The color of the right border of the toolbar (left on RTL interfaces)
+			has been moved from code to the CSS (TB_SideBorder class). Update your custom skins.
+		</li>
+		<li>A&nbsp;sample &quot;htaccess.txt&quot; file has been added to the editor's package
+			to show how to configure some Linux sites that could present problems on Firefox
+			with &quot;Illegal characters&quot; errors. Respectively the &quot;&iuml;&raquo;&iquest;&quot;
+			chars. </li>
+		<li>With the JavaScript, ASP and PHP integration files, you can set the QueryString
+			value &quot;fcksource=true&quot; to load the editor using the source files (located
+			in the _source directory) instead of the compressed ones. Thanks to Kae Verens for
+			the suggestion. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1246623&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1246623</a>] The new configuration option &quot;ForceStrongEm&quot; has
+			been introduced so you can force the editor to convert all &lt;B&gt; and &lt;I&gt;
+			tags to &lt;STRONG&gt; and &lt;EM&gt; respectively. </li>
+		<li>A nice contribution has been done by Goss Interactive Ltd:
+			<ul>
+				<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1246949&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1246949</a>] Implemented ENTER key and BACKSPACE key handlers for Gecko so that
+					P tags (or an appropriate block element) get inserted instead of BR tags when not
+					in the UseBROnCarriageReturn config mode.
+					<br />
+					The ENTER key handling has been written to function much the same as the ENTER key
+					handling on IE : as soon as the ENTER key is pressed, existing content will be wrapped
+					with a suitable block element (P tag) as appropriate and a new block element (P
+					tag) will be started.
+					<br />
+					The ENTER key handler also caters for pressing ENTER within empty list items - ENTER
+					in an empty item at the top of a list will remove that list item and start a new
+					P tag above the list; ENTER in an empty item at the bottom of a list will remove
+					that list item and start a new P tag below the list; ENTER in an empty item in the
+					middle of a list will remove that list item, split the list into two, and start
+					a new P tag between the two lists. </li>
+				<li>Any tables that are found to be incorrectly nested within a block element (P tag)
+					will be moved out of the block element when loaded into the editor. This is required
+					for the new ENTER/BACKSPACE key handlers and it also avoids non-compliant HTML.&nbsp;
+				</li>
+				<li>The InsertOrderedList and InsertUnorderedList commands have been overridden on Gecko
+					to ensure that block elements (P tags) are placed around a list item's content when
+					it is moved out of the list due to clicking on the editor's list toolbar buttons
+					(when not in the UseBROnCarriageReturn config mode). </li>
+			</ul>
+		</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1253255&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1253255</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1253255&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1265520</a>] Due to changes on version 2.0, the anchor list was not anymore
+			visible in the link dialog window. It has been fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1242979&amp;group_id=75348">SF
+			BUG-1242979</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1251354&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1251354</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1256178&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1256178</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1274841&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1274841</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1303949&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1303949</a>] Due to a bug on Firefox, some keys stopped working
+			on startup over Firefox. It has been fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1251373&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1251373</a> ] The above fix also has&nbsp;corrected some strange behaviors on
+			Firefox. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1144258">SF
+			BUG-1144258</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1092081">SF
+				BUG-1092081</a>] The File Browsers now run on the&nbsp;same server session used
+			in the page where the editor is placed in (IE issue). Thanks to Simone Chiaretta.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1305619&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1305619</a> ] No more repeated login dialogs when running the editor with Windows
+			Integrated Security with IIS. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1245304&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1245304</a>] The Test Case 004 is now working correctly. It has been changed
+			to set the editor hidden at startup. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1290610&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1290610</a> ] Over HTTPS, there were some warnings when loading the Images,
+			Flash and Link dialogs. Fixed. </li>
+		<li>Due to Gecko bugs, two errors were thrown when loading the editor in a hidden div.
+			Workarounds have been introduced. In any case, the testcase 004 hack is needed when
+			showing the editor (as in a tabbed interface). </li>
+		<li>An invalid path in the dialogs CSS file has been corrected. </li>
+		<li>On IE, the Undo/Redo can now be controlled using the Ctrl+Z and Ctrl+Y shortcut
+			keys. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1295538&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1295538</a> ] A few Undo/Redo fixes for IE have been done. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1247070&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1247070</a>] On Gecko, it is now possible to use the shortcut keys for Bold
+			(CTRL+B), Italic (CTRL+I) and Underline (CTRL+U), like in IE. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1274303&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1274303</a>] The &quot;Insert Column&quot; command is now working correctly
+			on TH cells. It also copies any attribute applied to the source cells. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1287070&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1287070</a> ] In the Universal Keyboard, the Arabic keystrokes translator
+			is now working with Firefox. Thanks again to Abdul-Aziz Al-Oraij. </li>
+		<li>The editor now handles AJAX requests with HTTP status 304. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157780&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1157780</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229077&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1229077</a>] Weird comments are now handled correctly (ignored on some cases).
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155774&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1155774</a>] A spelling error in the Bulleted List Properties dialog has been
+			corrected. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1272018&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1272018</a>] The ampersand character can now be added from the Special Chars
+			dialog. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1263161&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1263161</a>] A small fix has been applied to the sampleposteddata.php file.
+			Thanks to Mike Wallace. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1241504&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1241504</a>] The editor now looks also for the ID of the hidden linked field.
+		</li>
+		<li>The caption property on tables is now working on Gecko. Thanks to Helen Somers (Goss
+			Interactive Ltd). </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1297431&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1297431</a>] With IE, the editor now works locally when its files are placed
+			in a directory path that contains spaces. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1279551&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1279551</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1242105&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1242105</a>] On IE, some features are dependant of ActiveX components (secure...
+			distributed&nbsp;with IE itself). Some security setting could avoid the usage of
+			those components and the editor would stop working. Now a message is shown, indicating
+			the use the minimum necessary settings need&nbsp;by the editor to run. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1298880&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1298880</a>] Firefox can't handle the STRONG and EM tags. Those tags are now
+			converted to B and I so it works accordingly. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1271723&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1271723</a>] On IE, it is now possible to select the text and work correctly
+			in the contents of absolute positioned/dimensioned divs. </li>
+		<li>On IE, there is no need to click twice in the editor to&nbsp;activate the cursor
+			in the editing area. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1221621&amp;group_id=75348">SF
+			BUG-1221621</a>] Many &quot;warnings&quot; in the Firefox console are not thrown
+			anymore. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1295526&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1295526</a>] While&nbsp;editing on &quot;FullPage&quot; mode the basehref is
+			now active for CSS &quot;link&quot; tags. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1222584&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1222584</a>] A small fix to the PHP connector has been applied. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1281313&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1281313</a>] A few small changes to avoid problems with Plone. Thanks to Jean-mat.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1275911&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1275911</a>] A check for double dots sequences on directory names on creation
+			has been introduced to the PHP and ASP connectors.</li>
+	</ul>
+	<h3>
+		Version 2.0</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>The&nbsp;new &quot;<strong>Flash</strong>&quot; command is available. Now you can
+			easily handle Flash content, over IE and Gecko, including server browser integration
+			and context menu support. Due to limitations of the browsers, it is not possible
+			to see the preview of the movie while editing, so a nice &quot;placeholder&quot;
+			is used instead. * </li>
+		<li>A&nbsp;&quot;<strong>Quick Upload</strong> &quot; option is now available in the
+			link, image and flash dialog windows, so the user don't need to go (or have) the
+			File Browser for this operations. The ASP and PHP uploader&nbsp;are included.&nbsp;Take
+			a look at the configuration file.*** </li>
+		<li>Added support for <strong>Active FoxPro Pages</strong> . Thanks to our new developer,
+			S&ouml;nke Freitag. </li>
+		<li>It is now possible to <strong>disable the size handles</strong> for images and tables
+			(IE only feature). Take a look at the DisableImageHandles and DisableTableHandles
+			configuration options. </li>
+		<li>The handles on form fields&nbsp;(small squares around them) and the inline editing
+			of&nbsp;its contents&nbsp;have been disabled. This makes it easier to users to use
+			the controls. </li>
+		<li>A much better support for Word pasting operations has been introduced. Now it uses
+			a dialog box, in this way we have better results and more control.** </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1225372&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1225372</a>] A small change has been done to the PHP integration file. The
+			generic __construct constructor has been added for better PHP 5 sub-classing&nbsp;compatibility
+			(backward compatible). Thanks to Marcus Bointon.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>ATTENTION: Some security changes have been made to the connectors. Now you must
+			explicitly enable the connector you want to use. Please test your application before
+			deploying this update. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1211591">SF
+			BUG-1211591</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1204273&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1204273</a>] The connectors have been changed so it is not possible to use
+			&quot;..&quot; on directory names. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219734&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1219734</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219728&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1219728</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1208654&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1208654</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205442&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1205442</a>] There was an error in the page unload on some cases
+			that has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1209708">SF
+			BUG-1209708</a>] [<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1214125">SF
+				BUG-1214125</a>] The undo on IE is now working correctly when the user starts
+			typing. </li>
+		<li>The preview now loads &quot;Full Page&quot; editing correctly. It also uses the
+			same XHTML code produced by the final output. </li>
+		<li>The &quot;Templates&quot; dialog was not working on some very specific (and strange)
+			occasions over IE. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1199631&amp;group_id=75348">SF
+			BUG-1199631</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1171944&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1171944</a>] A new option is available to avoid a bad IE behavior that shows
+			the horizontal scrollbar even when not needed. You can now force the vertical scrollbar
+			to be always visible. Just set the &quot;IEForceVScroll&quot; configuration option
+			to &quot;true&quot;. Thanks to Grant Bartlett. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212026&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1212026</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228860&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1228860</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1211775&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1211775</a>] [<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1199824">SF
+						BUG-1199824</a>] An error in the Packager has been corrected. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1163669">SF
+			BUG-1163669</a>] The XHTML processor now adds a space before the closing slash of
+			tags that don't have a closing tag, like &lt;br /&gt;. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1213733&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1213733</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1216866&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1216866</a>]&nbsp;[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1209673&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1209673</a>]&nbsp;[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155454&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1155454</a>]&nbsp;[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1187936&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1187936</a> ]&nbsp;Now, on Gecko, the source is opened in a
+			dialog window to avoid fatal errors (Gecko bugs). </li>
+		<li>Some pages have been changed to avoid importing errors on Plone. Thanks to Arthur
+			Kalmenson. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1171606&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1171606</a>] There&nbsp;is a bug on IE that makes the editor to not work if
+			the instance name matches a meta tag name. Fixed. </li>
+		<li>On Firefox, the source code is now opened in a dialog box, to avoid error on pages
+			with more than one editor. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1225703&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1225703</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1214941&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1214941</a>] The &quot;ForcePasteAsPlainText&quot; configuration option
+			is now working correctly on Gecko browsers. Thanks to Manuel Polo. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228836&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1228836</a>] The &quot;Show Table Borders&quot; feature is now working on Gecko
+			browsers. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212529&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1212529</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212517&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1212517</a>] The default File Browser now accepts connectors with querystring
+			parameters (with &quot;?&quot;). Thanks to Tomas Jucius. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1233318&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1233318</a>] A JavaScript error thrown when using the Print command has been
+			fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229696&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1229696</a>] A regular expression has been escaped to avoid problems when opening
+			the code in some editors. It has been moved to a&nbsp;dialog window. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1231978&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1231978</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1228939&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1228939</a>] The Preview window is now using the Content Type and Base href.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1232056&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1232056</a>] The&nbsp;anchor icon is now working correctly on IE. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1232056&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1202468</a>] The anchor icon is now available on Gecko too. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1236279&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1236279</a>] A security warning has been corrected when using the File Browser
+			over HTTPS. </li>
+		<li>The ASP implementation now avoid errors when setting the editor value to null values.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1237359&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1237359</a>] The trailing &lt;BR&gt; added by Gecko at the end of the source
+			is now removed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1170828">SF
+			BUG-1170828</a>] No more &amp;nbsp; is added to the source when using the &quot;New
+			Page&quot; button. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1165264&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1165264</a>] A&nbsp;new configuration option has been included to force the
+			editor to ignore empty paragraph values&nbsp;(&lt;p&gt;&amp;nbsp;&lt;/p&gt;), returning
+			empty (&quot;&quot;). </li>
+		<li>No more &amp;nbsp; is added when creating a table or adding columns, rows or cells.
+		</li>
+		<li>The &lt;TD&gt; tags are now included in the FillEmptyBlocks configuration handling.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1224829&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1224829</a>] A small bug in the &quot;Find&quot; dialog has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1221307&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1221307</a>] A small bug in the &quot;Image&quot; dialog has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1219981&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1219981</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155726&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1155726</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1178473&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1178473</a>] It is handling the &lt;FORM&gt;, &lt;TEXTAREA&gt; and &lt;SELECT&gt;
+			tags &quot;name&quot; attribute correctly. Thanks to thc33. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205403&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1205403</a>] The checkbox and radio button values are now handled correctly
+			in their dialog windows. Thanks to thc33. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1236626&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1236626</a>] The toolbar now doesn't need to collapse when unloading the page
+			(IE only). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1212559&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1212559</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1017231&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1017231</a>] The &quot;Save&quot; button now calls the &quot;onsubmit&quot;
+			event before posting the form. The submit can be cancelled if the onsubmit returns
+			&quot;false&quot;. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1215823&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1215823</a>] The editor now works correctly on Firefox if it values is set to
+			&quot;&lt;p&gt;&lt;/p&gt;&quot;. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1217546&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1217546</a>] No error is thrown when &quot;pasting as plain text&quot; and no
+			text is available for pasting (as an image for example). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1207031&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1207031</a>] [<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1223978">SF
+				BUG-1223978</a>] The context menu is now available in the source view. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/?group_id=75348&amp;atid=543653&amp;func=detail&amp;aid=1213871">SF
+			BUG-1213871</a>] Undo has been added to table creation and table operation commands.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1205211&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1205211</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1229941&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1229941</a>] Small bug in the mcpuk file browser&nbsp;have been corrected.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a target="_blank" href="http://www.infineon.com/">
+			Infineon Technologies AG</a>.<br />
+		** This version has been partially sponsored by <a href="http://www.visualsoft.co.uk">
+			Visualsoft</a> <a href="http://www.visualsoft.co.uk/websolutions.html">Web Solutions</a>.<br />
+		*** This version has been partially sponsored by <a target="_blank" href="http://www.webcrossing.com">
+			Web Crossing, Inc</a>.</p>
+	<h3>
+		Version 2.0&nbsp;FC (Final Candidate)</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>A new tab called &quot;<strong>Link</strong>&quot; is available in the<strong> Image
+			Dialog</strong> window. In this way you can insert or modify the image link directly
+			from that dialog.* </li>
+		<li>The new &quot;<strong>Templates</strong>&quot; command is now available. Now the
+			user can select from a list of pre-build HTML and fill the editor with it. Take
+			a look at the &quot;_docs&quot; for more info.** </li>
+		<li>The <a target="_blank" href="http://mcpuk.net/fbxp/">mcpuk's</a> File Browser for
+			PHP has been included in the package. He became the official developer of the File
+			Manager for FCKeditor, so we can expect good news in the future. </li>
+		<li>New configuration options are available to <strong>hide tabs</strong> from the <strong>
+			Image</strong> Dialog&nbsp;and <strong>Link</strong> Dialog windows: LinkDlgHideTarget,
+			LinkDlgHideAdvanced, ImageDlgHideLink and ImageDlgHideAdvanced. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1189442&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1189442</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1187164&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1187164</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185905&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1185905</a>] It is now possible to configure the editor to <strong>not convert Greek</strong>
+			or special&nbsp;<strong>Latin </strong>letters to ther specific HTML entities. You
+			can also configure it to not convert any character at all. Take a look at the &quot;ProcessHTMLEntities&quot;,
+			&quot;IncludeLatinEntities&quot; and &quot;IncludeGreekEntities&quot; configuration
+			options. </li>
+		<li>New language files are available:
+			<ul>
+				<li><strong>Basque</strong> (by Ibon Igartua) </li>
+				<li><strong>English (Australia / United Kingdom)</strong> (by Christopher Dawes) </li>
+				<li><strong>Ukrainian</strong> (by Alexander Pervak)</li>
+			</ul>
+		</li>
+		<li>The version and date information have been removed from the files headers to avoid
+			unecessary diffs in source control systems when new versions are released (from
+			now on). </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1159854&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1159854</a>] Ther HTML output rendered by the server side integration files
+			are now XHTML compatible. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181823&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1181823</a>] It is now possible to set the desired DOCTYPE to use when edit
+			HTML fragments (not in Full Page mode). </li>
+		<li>There is now an optional way to implement different &quot;mouse over&quot; effects
+			to the buttons when they are &quot;on&quot; of &quot;off&quot;.</li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1162200&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1162200</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1161633&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1161633</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1050293&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1050293</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1058948&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1058948</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1109120&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1109120</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155408&amp;group_id=75348&amp;atid=543653">SF
+								BUG-1155408</a>] The IE memory leak bug has been solved. The
+			code has been completely reviewed and many memory usage improvements have been done.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1179645&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1179645</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1183252&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1183252</a> ] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166779&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1181647</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155627&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1155627</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155782&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1155782</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155750&amp;group_id=75348&amp;atid=543653">SF
+								BUG-1155750</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157166&amp;group_id=75348&amp;atid=543653">SF
+									BUG-1157166</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157857&amp;group_id=75348&amp;atid=543653">SF
+										BUG-1157857</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1158121&amp;group_id=75348&amp;atid=543653">SF
+											BUG-1158121</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1177153&amp;group_id=75348&amp;atid=543653">SF
+												BUG-1177153</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1175847&amp;group_id=75348&amp;atid=543653">SF
+													BUG-1175847</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1155747&amp;group_id=75348&amp;atid=543653">SF
+														BUG-1155747</a>] There was a loading
+			problem in Gecko browsers in some cases. It has been solved. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1161147&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1161147</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1157635&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1157635</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149805&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1149805</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124600&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1124600</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1117535&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1117535</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1118145&amp;group_id=75348&amp;atid=543653">SF
+								BUG-1118145</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098113&amp;group_id=75348&amp;atid=543653">SF
+									BUG-1098113</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092272&amp;group_id=75348&amp;atid=543653">SF
+										BUG-1092272</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086416&amp;group_id=75348&amp;atid=543653">SF
+											BUG-1086416</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1027952&amp;group_id=75348&amp;atid=543653">SF
+												BUG-1027952</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=978441&amp;group_id=75348&amp;atid=543653">SF
+													BUG-978441</a> ] A custom Undo/Redo system
+			has been implemented for IE. </li>
+		<li>The editor startup execution is now made in the right order (so configurations override
+			works correctly). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166779&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1166779</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1166651&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1166651</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1066198&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1066198</a>]&nbsp;[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090388&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1090388</a> ]&nbsp;No more &quot;illegible&quot; characters in the
+			toolbar when &quot;ClearType&quot; is active. </li>
+		<li>It is now possible to set the &quot;width&quot; style of the BODY tag in the EditorAreaCSS
+			to limit the editing area size. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1113620&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1113620</a>] In IE, the editor doesn't generate new entries in the browser history
+			anymore. </li>
+		<li>The editor now uses the same method used on version RC2 to load its contents on
+			Gecko. It is now possible to have more than one editor in the page. This change
+			has a negative impact: the BaseHref property is not working. </li>
+		<li>Changes have been made to make the editor work with PHP versions&nbsp;older than&nbsp;2.1.0.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1190835&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1190835</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1196547&amp;group_id=75348">SF
+				BUG-1196547</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156863&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1156863</a>] The &quot;Insert Horizontal Line&quot; command is now working
+			correctly. Thanks to Hector Raul Colonia Coral. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1101861&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1101861</a>] The editor now shows a normal textarea correctly (as expected)
+			on Safari browsers (and all &quot;like Gecko&quot; browsers). Thanks to Bob Paul.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1182224&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1182224</a>] The PHP connector can now handle file extensions in upper case,&nbsp;like
+			JPG or Gif, correctly. Thanks to Georg Ivancsic. </li>
+		<li>The &quot;sample06.html&quot; is now working correctly with Gecko browsers. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156660&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1156660</a>] Some fixes have been applied to the Universal Keyboard. Thanks
+			to Abdul-Aziz Al-Oraij. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1192881&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1192881</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185006&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1185006</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1156068&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1156068</a>] The &quot;Browse Server&quot; button is now working correctly
+			for the Background Image in the &quot;Document Properties&quot; dialog window (full
+			page editing). The active &quot;BaseHref&quot; is also set to the preview window.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1191704&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1191704</a>] Invalid HTML tags (according to the W3C naming standards for XHTML)
+			are ignored with no errors. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1185911&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1185911</a>] The Greek language file name has been corrected to &quot;el.js&quot;.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181572&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1181572</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1158421&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1158421</a>] The &quot;Print&quot; button is now active on startup. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1181572&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1165219</a>] No error occours when the user defines just one color to the FontColors
+			on &quot;in page&quot; configurations. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1162957&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1162957</a>] The small problem with Zope (ZPT)&nbsp;has been solved. </li>
+		<li>Some small RTL / LTR corrections has been done in the interface and the Farsi language
+			has been added to the Universal Keyboard. Thanks to Silver Baghdasarian.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by the <a href="http://www.hamilton.edu">
+			Hamilton College</a>.<br />
+		** This version has been partially sponsored by <a target="_blank" href="http://www.infineon.com/">
+			Infineon Technologies AG</a>.</p>
+	<h3>
+		Version 2.0 RC3 (Release Candidate 3)</h3>
+	<p>
+		New Features and Improvements:</p>
+	<ul>
+		<li>The editor now offers native <strong>Perl integration</strong>! Thanks and welcome
+			to Takashi Yamaguchi, our official Perl developer. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026584&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1026584</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1112692&amp;group_id=75348&amp;atid=543656">SF
+				Feature-1112692</a>] <strong>Formatting </strong>has been introduced to the
+			<strong>Source View</strong>. The output HTML can also be formatted. You can choose
+			to use spaces or tab for indentation. See the configuration file. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1031492&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1031492</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1004293&amp;group_id=75348&amp;atid=543656">SF
+				Feature-1004293</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=784281&amp;group_id=75348&amp;atid=543656">SF
+					Feature-784281</a>] It is now possible to edit <strong>full HTML pages</strong>
+			with the editor. Use the &quot;FullPage&quot; configuration setting to activate
+			it. </li>
+		<li>The&nbsp;new toolbar command, &quot;<strong>Document Properties</strong>&quot;&nbsp;is
+			available to edit document header info, title, colors, background, etc... Full page
+			editing must be enabled. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1151448&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1151448</a>] <strong>Spell Check</strong> is now available. You can use
+			<strong>ieSpell</strong> or <strong>Speller Pages</strong> right from FCKeditor.
+			More info about configuration can be found in the _docs folder. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1041686&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1041686</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086386&amp;group_id=75348&amp;atid=543656">SF
+				Feature-1086386</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124602&amp;group_id=75348&amp;atid=543656">SF
+					Feature-1124602</a>] New &quot;<strong>Insert Anchor</strong>&quot; command
+			has been introduced. (The anchor icon is visible only over&nbsp;IE for now). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1123816&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1123816</a>] It is now possible to configure the editor to <strong>show &quot;fake&quot;
+				table borders</strong> when the border size is set to zero. (It is working only
+			on IE for now). </li>
+		<li><strong>Numbered</strong> and <strong>Bulleted</strong> lists can now be <strong>
+			configured</strong> . Just right click on then. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088608&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1088608</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1144047&amp;group_id=75348&amp;atid=543656">SF
+				Feature-1144047</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149808&amp;group_id=75348&amp;atid=543656">SF
+					Feature-1149808</a>] A new configuration setting is available, &quot;<strong>BaseHref</strong>
+			&quot;, to set the URL used to resolve relative links. </li>
+		<li>It is now possible to set&nbsp;the <strong>content language direction</strong> .
+			See the &quot;FCKConfig.ContentLangDirection&quot; configurations setting. </li>
+		<li>All <strong>Field Commands</strong> available on version 1.6 have been upgraded
+			and&nbsp;included in this version: <strong>form</strong>, <strong>checkbox</strong>,
+			<strong>radio button</strong>, <strong>text field</strong>, text <strong>area</strong>,
+			<strong>select field</strong>, <strong>button</strong>, <strong>image button</strong>
+			and <strong>hidden field</strong> . </li>
+		<li><strong>Context menu</strong> options (right-click) has been added for: <strong>
+			anchors</strong>, <strong>select field</strong>, <strong>textarea</strong>, <strong>
+				checkbox</strong>, <strong>radio button</strong>, <strong>text field</strong>,
+			<strong>hidden field</strong>, <strong>textarea</strong>, <strong>button</strong>,
+			<strong>image button</strong>, <strong>form</strong>, <strong>bulleted list</strong>
+			and <strong>numbered list</strong> . </li>
+		<li>The &quot;<strong>Universal Keyboard</strong>&quot; has been converted from version
+			1.6 to this one and it's now available. </li>
+		<li>It is now possible to <strong>configure</strong> the items to be shown in the <strong>
+			context menu</strong> . Just use the FCKConfig.ContextMenu option&nbsp;at fckconfig.js.
+		</li>
+		<li>A new configuration (FillEmptyBlocks)&nbsp;is available to force the editor to <strong>
+			automatically insert a &amp;nbsp;</strong> on empty block elements (p, div, pre,
+			h1, etc...) to avoid differences from the editing and the final result. (Actually,
+			the editor automatically &quot;grows&quot; empty elements to make the user able
+			to enter text on it). Attention: the extra &amp;nbsp; will be added when switching
+			from WYSIWYG to Source View, so the user may see an additional space on empty blocks.
+			(XHTML support must be enabled). </li>
+		<li>It is now possible to configure the <strong>toolbar</strong> to &quot;<strong>break</strong>
+			&quot; between two toolbar strips. Just insert a &quot;/&quot; between then. Take
+			a look at fckconfig.js for a sample. </li>
+		<li>New Language files are available:
+			<ul>
+				<li><strong>Brazilian Portuguese</strong> (by Carlos Alberto Tomatis Loth) </li>
+				<li><strong>Bulgarian</strong> (by Miroslav Ivanov) </li>
+				<li><strong>Esperanto</strong> (by Tim Morley) </li>
+				<li><strong>Galician</strong> (by Fernando Riveiro Lopez) </li>
+				<li><strong>Japanese</strong> ( by Takashi Yamaguchi) </li>
+				<li><strong>Persian</strong> (by Hamed Taj-Abadi) </li>
+				<li><strong>Romanian</strong> (by Adrian Nicoara) </li>
+				<li><strong>Slovak</strong> (by Gabriel Kiss) </li>
+				<li><strong>Thai </strong>(by Audy Charin Arsakit) </li>
+				<li><strong>Turkish</strong> (by Reha Bi&ccedil;er) </li>
+				<li>The Chinese Traditional has been set as the default (zn) instead of zn-tw.</li>
+			</ul>
+		</li>
+		<li>Warning: All toolbar image images have been changed. The &quot;button.&quot; prefix
+			has been removed. If you have your custom skin, please rename your files. </li>
+		<li>A new plugin is available in the package: &quot;<strong>Placeholders</strong>&quot;.
+			In this way you can insert non editable tags in your document to be processed on
+			server side (very specific usage). </li>
+		<li>The ASPX files are no longer available in this package. They have been moved to
+			the FCKeditor.Net package. In this way the ASP.Net integration is much better organized.
+		</li>
+		<li>The FCKeditor.Packager program is now part of the main package. It is not anymore&nbsp;distributed
+			separately. </li>
+		<li>The PHP connector now sets the uploaded file permissions (chmod)&nbsp;to 0777. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090215&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1090215</a>] It's now possible to give back more info from your custom image
+			browser calling the SetUrl( url [, width] [, height] [, alt] ). Thanks to Ben Noblet.
+		</li>
+		<li>The package files now maintain their original &quot;Last Modified&quot; date, so
+			incremental FTP uploads can be used to update to&nbsp;new versions of the editor
+			(from now on). </li>
+		<li>The &quot;Source&quot; view now forces its contents to be written in &quot;Left
+			to Right&quot; direction even when the editor interface language is running a RTL
+			language (like Arabic, Hebrew or Persian). </li>
+	</ul>
+	<p>
+		Fixed Bugs:</p>
+	<ul>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1124220&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1124220</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1119894&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1119894</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090986&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1090986</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1100408&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1100408</a>] The editor now works correctly when starting with an
+			empty value and switching to the Source mode. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1119380&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1119380</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1115750&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1115750</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1101808&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1101808</a>] The problem with the scrollbar and the toolbar combos (Style,
+			Font, etc...) over Mac has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098460&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1098460</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1076544&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1076544</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077845&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1077845</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092395&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1092395</a>] A new upload class has been included for the ASP File
+			Manager Connector. It uses the &quot;ADODB.Stream&quot; object. Many thanks to &quot;NetRube&quot;.
+		</li>
+		<li>I small correction has been made to the ColdFusion integration files. Thanks to
+			Hendrik Kramer. </li>
+		<li>There was a very specific problem when the editor was running over a FRAME executed
+			on another domain. </li>
+		<li>The performance problem on Gecko while typing&nbsp;quickly has been solved. </li>
+		<li>The &lt;br type= &quot;_moz&quot;&gt;is not anymore shown on XHTML source. </li>
+		<li>It has been introduced a mechanism to avoid automatic contents duplication on very
+			specific occasions (bad formatted HTML). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1146407&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1146407</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1145800&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1145800</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1118803&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1118803</a> ] Other&nbsp;issues in the XHTML processor have been solved.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1143969&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1143969</a>] The editor now accepts the &quot;accept-charset&quot; attribute
+			in the FORM tag (IE specific bug). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1122742&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1122742</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1089548&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1089548</a> ] Now, the contents of the SCRIPT and STYLE tags remain untouched.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114748&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1114748</a>] The PHP File Manager Connector now sets the new folders permissions
+			(chmod)&nbsp;to 0777 correctly. </li>
+		<li>The PHP File Manager Connector now has a configuration file (editor/filemanager/browser/default/connectors/php/config.php)
+			to set some security preferences. </li>
+		<li>The&nbsp;ASP File Manager Connector now has a configuration file (editor/filemanager/browser/default/connectors/asp/config.asp)
+			to set some security preferences. </li>
+		<li>A small bug in the toolbar rendering (strips auto position) has been corrected.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1093732&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1093732</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1091377&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1091377</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083044&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1083044</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1096307&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1096307</a>] The configurations are now encoded so a user can use
+			values that has special chars (&amp;=/). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1103688&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1103688</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1092331&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1092331</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088220&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1088220</a>] PHP samples now use PHP_SELF to automatically discover
+			the editor's base path. </li>
+		<li>Some small wrapping problems with some labels in the Image and Table dialog windows
+			have been fixed. </li>
+		<li>All .js files are now encoded in UTF-8 format with the BOM (byte order mask) to
+			avoid some errors on specific Linux installations. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114449&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1114449</a>] The editor packager program has been modified so now it is possible
+			to use the source files to run the editor as described in the documentation. The
+			new packager must be downloaded. </li>
+		<li>A small problem with the editor focus while in&nbsp;source&nbsp;mode has been corrected.
+			Thanks to Eric (ric1607). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1108167&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1108167</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085149&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1085149</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1151296&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1151296</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082433&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1082433</a>] No more IFRAMEs without src attribute. Now it points
+			to a blank page located in the editor's package. In this way we avoid security warnings
+			when using the editor over HTTPS. Thanks to Guillermo Bozovich. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1117779&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1117779</a>] The editor now works well if you have more than one element named
+			&quot;submit&quot;&nbsp;on its form (even if it is not correct to have this situation).
+		</li>
+		<li>The XHTML processor was duplicating the text on some specific situation. It has
+			been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090213&amp;group_id=75348&amp;atid=543655">SF
+			Patch-1090213</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1098929&amp;group_id=75348&amp;atid=543653">SF
+				Patch-1098929</a>] With ASP, the editor now works correctly on pages using &quot;Option
+			Explicit&quot;. Thanks to Ben Noblet. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1100759&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1100759</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029125&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1029125</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=966130&amp;group_id=75348&amp;atid=543653">SF
+					BUG-966130</a>] The editor was not working with old IE 5.5 browsers. There
+			was a problem with the XML parser. It has been fixed. </li>
+		<li>The localization engine is now working correctly over IE 5.5 browsers. </li>
+		<li>Some commands where not working well over IE 5.5 (emoticons, image,...). It has
+			been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1146441&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1146441</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1149777&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1149777</a>] The editor now uses the TEXTAREA id&nbsp;in the ReplaceTextarea
+			function. If the id is now found, it uses the &quot;name&quot;. The docs have been
+			updated. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1144297&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1144297</a>] Some corrections have been made to the Dutch language file. Thanks
+			to Erwin Dondorp. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1121365&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1121365</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1090102&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1090102</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1152171&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1152171</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1102907&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1102907</a>] There is no problem now to start the editor with values
+			like &quot;&lt;div&gt;&lt;/div&gt;&quot; or &quot;&lt;p&gt;&lt;/p&gt;&quot;. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1114059&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1114059</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1041861&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1041861</a>] The click on the disabled options in the Context Menu has no
+			effects now. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1152617&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1152617</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1102441&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1102441</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1095312&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1095312</a>] Some problems when setting the editor source to very specific
+			values has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1093514&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1093514</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1089204&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1089204</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077609&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1077609</a>] The editor now runs correctly if called directly (locally)&nbsp;without
+			a server installation (just opening the HTML sample files). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088248&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1088248</a>] The editor now uses a different method to load its contents. In
+			this way the URLs remain untouched. </li>
+		<li>The PHP integration file now detects Internet Explorer 5.5 correctly.</li>
+	</ul>
+	<h3>
+		Version 2.0 RC2 (Release Candidate 2)</h3>
+	<ul>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1042034</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1075961&amp;group_id=75348&amp;atid=543656">SF
+				Feature-1075961</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083200&amp;group_id=75348&amp;atid=543656">SF
+					Feature-1083200</a>] A new dialog window for the <strong>table cell properties</strong>
+			is now available (right-click). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1042034</a>] The new &quot;<strong>Split Cell</strong> &quot;, to split
+			a table cell in two columns, has been introduced (right-click). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1042034&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1042034</a>] The new &quot;<strong>Merge Cells</strong>&quot;, to merge
+			table cells (in the same row), has been introduced (right-click). </li>
+		<li>The &quot;fake&quot; <strong>TAB key support</strong> (available by default over
+			Gecko browsers is now available over IE too. You can set the number of spaces to
+			add setting the FCKConfig.TabSpaces configuration setting. Set it to 0 (zero) to
+			disable this feature (IE). </li>
+		<li>It now possible to tell IE to send a <strong>&lt;BR&gt;</strong> when the user presses
+			the <strong>Enter key</strong>. Take a look at the FCKConfig.UseBROnCarriageReturn
+			configuration setting. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085422&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1085422</a>] <strong>ColdFusion</strong>: The <strong>File Manager connector</strong>
+			is now available! (Thanks to Hendrik Kramer). </li>
+		<li>The editor is now available in <strong>29 languages!</strong> The new language files
+			available are:&nbsp;
+			<ul>
+				<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1067775&amp;group_id=75348&amp;atid=543656">SF
+					Feature-1067775</a>] <strong>Chinese Simplified and Traditional</strong> (Taiwan
+					and Hong Kong) (by NetRube). </li>
+				<li><strong>Czech</strong> (by David Hor&aacute;k). </li>
+				<li><strong>Danish</strong> (by Jesper Michelsen). </li>
+				<li><strong>Dutch</strong> (by Bram Crins). </li>
+				<li><strong>German</strong> (by Maik Unruh). </li>
+				<li><strong>Portuguese</strong> (Portugal) (by Francisco Pereira). </li>
+				<li><strong>Russian</strong> (by Andrey Grebnev). </li>
+				<li><strong>Slovenian</strong> (by Boris Volaric).</li>
+			</ul>
+		</li>
+		<li>Updates to the <strong>French</strong> language files (by Hubert Garrido). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085816&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1085816</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083743&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1083743</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1078783&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1078783</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077861&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1077861</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077861&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1037404</a>] Many&nbsp;small bugs&nbsp;in the XHTML processor
+			has been corrected (workarounds to browser specific bugs). These are some things
+			to consider regarding the changes:
+			<ul>
+				<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1083744&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1083744</a>] On Gecko browsers, any element attribute that the name starts with
+					&quot;_moz&quot; will be ignored. </li>
+				<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1060073&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1060073</a>] The &lt;STYLE&gt; and &lt;SCRIPT&gt; elements contents will be
+					handled as is, without CDATA tag surrounding. This may break XHTML validation. In
+					any case the use of external files for scripts and styles is recommended (W3C recommendation).</li>
+			</ul>
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088310&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1088310</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1078837&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1078837</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=999792&amp;group_id=75348&amp;atid=543653">SF
+					BUG-999792</a>] URLs now remain untouched when initializing the editor or
+			switching from WYSYWYG to Source and vice versa. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082323&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1082323</a>] The&nbsp;problem in the ASP and PHP connectors when handling non
+			&quot;strange&quot; chars in file names has been corrected. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1085034&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1085034</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1076796&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1076796</a>] Some bugs in the PHP connector have been corrected. </li>
+		<li>A&nbsp;problem with the &quot;Format&quot; command on IE browsers on languages different
+			of English has been solved. The negative side of this correction is that due to
+			a IE bad design it is not possible to update the &quot;Format&quot; combo while
+			moving throw the text (context sensitive). </li>
+		<li>On Gecko browsers, when selecting an image and executing the &quot;New Page&quot;
+			command, the image handles still appear, even if the image is not available anymore
+			(this is a Gecko bug). When clicking in&nbsp;a &quot;phanton&quot; randle, the browser
+			crashes. It doesn't&nbsp;happen (the crash)&nbsp;anymore. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1082197&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1082197</a>] On ASP, the bug in the browser detection system for Gecko browsers
+			has been corrected. Thanks to Alex Varga. </li>
+		<li>Again on ASP, the browser detection for IE had some problems on servers that use
+			comma for decimal separators on numbers. It has been corrected. Thanks to Agrotic.
+		</li>
+		<li>No error is thrown now when&nbsp;non existing&nbsp;language is configured in the
+			editor. The English language file is loaded in that case. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1077747&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1077747</a>] The missing images on the Office2003 and Silver skins are now included
+			in the package. </li>
+		<li>On some Gecko browsers, the dialog window was not loading correctly. I couldn't
+			reproduce the problem, but a fix has been applied based on users tests. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1004078&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1004078</a>] ColdFusion: The &quot;config&quot; structure/hash table with keys
+			and values is in ColdFusion not(!) case sensitive. All keys returned by ColdFusion
+			are in upper case format. Because the FCKeditor configuration keys must be case
+			sensitive, we had to match all structure/hash keys with a list of the correct configuration
+			names in mixed case. This has been added to the fckeditor.cfc and fckeditor.cfm.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1075166&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1075166</a>] ColdFusion: The &quot;fallback&quot; variant of the texteditor
+			(&lt;textarea&gt;) has a bug in the fckeditor.cfm. This has been fixed. </li>
+		<li>A typo in the Polish language file has been corrected. Thanks to Pawel Tomicki.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1086370&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1086370</a>] A small coding type in the Link dialog window has been corrected.
+		</li>
+	</ul>
+	<h3>
+		Version 2.0 RC1 (Release Candidate 1)</h3>
+	<ul>
+		<li><strong>ASP</strong> support is now available (including the&nbsp;File Manager connector).
+		</li>
+		<li><strong>PHP</strong> support is now available (including the File Manager connector).
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1063217&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1063217</a>] The new advanced&nbsp;<strong>Style</strong> command is available
+			in the toolbar: full preview, context sensitive, style definitions are loaded from
+			a XML file (see documentation for more instructions). </li>
+		<li>The <strong>Font Format</strong>, <strong>Font Name</strong> and <strong>Font Size</strong>
+			toolbar command now show a <strong>preview</strong> of the available options. </li>
+		<li>The new <strong>Find</strong> and <strong>Replace</strong> features has been introduced.
+		</li>
+		<li>A new <strong>Plug-in</strong> system has been developed. Now it is quite easy to
+			customize the editor to your needs. (Take a look at the html/sample06.html file).
+		</li>
+		<li>The editor now handles <strong>HTML entities</strong> in the right way (XHTML support
+			must be set to &quot;true&quot;). It handles all entities defined in the W3C&nbsp;XHTML
+			DTD file. </li>
+		<li>A new &quot;_docs&quot; folder has been introduced for the <strong>documentation</strong>.
+			It is not yet complete, but I hope the community will help us to fill it better.
+		</li>
+		<li>It is now possible (even if it is not recommended by the W3C) to force the use of
+			simple ampersands (&amp;) on attributes (like the links href) instead of its entity
+			&amp;amp;. Just set FCKConfig.ForceSimpleAmpersand = true in the&nbsp;configuration
+			file. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026866&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1026866</a>] The &quot;<strong>EditorAreaCSS</strong>&quot; configuration
+			option has been introduced. In this way you can set the CSS to use in the editor
+			(editable area). </li>
+		<li>The editing area is not anymore clipped if the toolbar is too large and exceeds
+			the window width. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1064902&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1064902</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1033933&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1033933</a>] The editor <strong>interface</strong> is now completely <strong>localizable</strong>.
+			The version ships with 19 languages including: <b>Arabic</b>, <b>Bosnian</b>, <b>Catalan</b>,
+			<b>English</b>, <b>Spanish</b>, <b>Estonian</b>, <b>Finnish</b>, <b>French</b>,
+			<b>Greek</b>, <b>Hebrew</b>, <b>Croatian</b>, <b>Italian</b>, <b>Korean</b>, <b>Lithuanian</b>,
+			<b>Norwegian</b>, <strong>Polish</strong>, <strong>Serbian (Cyrillic)</strong>,
+			<strong>Serbian (Latin)</strong> and <strong>Swedish</strong>.</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1027858&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1027858</a>] Firefox 1.0 PR&nbsp;introduced&nbsp;a bug that made the editor
+			stop working on it. A workaround has been developed to fix the problem. </li>
+		<li>There was a positioning problem over IE&nbsp;with the color panel. It has been corrected.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1049842&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1049842</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1033832&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1033832</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1028623&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1028623</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1026610&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1026610</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1064498&amp;group_id=75348&amp;atid=543653">SF
+							BUG-1064498</a>] The combo commands in the toolbar were not opening
+			in the right way. It has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1053399&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1053399</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=965318&amp;group_id=75348&amp;atid=543653">SF
+				BUG-965318</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1018296&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1018296</a>] The toolbar buttons icons were not showing on some IE and
+			Firefox/Mac installations. It has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1054621&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1054621</a>] Color pickers are now working with the &quot;office2003&quot; and
+			&quot;silver&quot; skins. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1054108&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1054108</a>] IE doesn&rsquo;t recognize the &quot;&amp;apos;&quot; entity for
+			apostrophes, so a workaround has been developed to replace it with &quot;&amp;#39;&quot;
+			(its numeric entity representation). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=983434&amp;group_id=75348&amp;atid=543653">SF
+			BUG-983434</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=983398&amp;group_id=75348&amp;atid=543653">SF
+				BUG-983398</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1028103&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1028103</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1072496&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1072496</a>] The problem with elements with name &quot;submit&quot;
+			inside the editor's form has been solved. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1018743&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1018743</a>] The problem with Gecko when collapsing the toolbar while in source
+			mode has been fixed. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1065268&amp;group_id=75348">SF
+			BUG-1065268</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1034354&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1034354</a>] The XHTML processor now doesn&rsquo;t use the minimized tag
+			syntax (like &lt;br/&gt;) for empty elements that are not marked as EMPTY in the
+			W3C XHTML DTD specifications. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029654&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1029654</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046500&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1046500</a>] Due to a bug on Gecko there was a problem when creating links.
+			It has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1065973&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1065973</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=999792&amp;group_id=75348&amp;atid=543653">SF
+				BUG-999792</a>] The editor now handles relative URLs in IE. In effect IE transform
+			all relative URLs to absolute links, pointing to the site the editor is running.
+			So now the editor removes the protocol and host part of the link if it matches the
+			running server. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1071824&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1071824</a>] The color dialog box bug has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1052856&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1052856</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046493&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1046493</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1023530&amp;group_id=75348&amp;atid=543653">SF
+					BUG-1023530</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1025978&amp;group_id=75348&amp;atid=543653">SF
+						BUG-1025978</a>] The editor now doesn&rsquo;t throw an error if no selection
+			was made and the create link command is used. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1036756&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1036756</a>] The XHTML processor has been reviewed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1029101&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1029101</a>] The Paste from Word feature is working correctly. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1034623&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1034623</a>] There is an IE bug when setting the editor value to &quot;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;&quot;.
+			A workaround has been developed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1052695&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1052695</a>] There are some rendering differences between Netscape and Mozilla.
+			(Actually that is a bug on both browsers). A workaround has been developed to solve
+			it. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1073053&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1073053</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1050394&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1050394</a>] The editor doesn&rsquo;t throw errors when hidden. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1066321&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1066321</a>] Scrollbars should not appear on dialog boxes (at least for the
+			Image and Link ones). </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1046490&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1046490</a>] Dialogs now are forced to show on foreground over Mac. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=1073955&amp;group_id=75348">SF
+			BUG-1073955</a>] A small bug in the image dialog window has been corrected. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1049534&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1049534</a>] The Resources Browser window is now working well over Gecko browsers.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1036675&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1036675</a>] The Resources Browser window now displays the server error on bad
+			installations.</li>
+	</ul>
+	<h3>
+		Version 2.0 Beta 2</h3>
+	<ul>
+		<li>There is a new configuration - &quot;<strong>GeckoUseSPAN</strong>&quot; - that
+			can be used to tell Gecko browsers to use &lt;SPAN style...&gt; or &lt;B&gt;, &lt;I&gt;
+			and &lt;U&gt; for the bold, italic and underline commands. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1002622&amp;group_id=75348&amp;atid=543656">SF
+			Feature-1002622</a>] New <strong>Text Color</strong> and&nbsp;<strong>Background Color</strong>
+			&nbsp;commands have been added to the editor. </li>
+		<li>On Gecko browsers, a message is shown when,&nbsp;because of&nbsp;security settings,&nbsp;the
+			user&nbsp;is not able to&nbsp;cut, copy or paste data from the clipboard using the
+			toolbar buttons or the context menu. </li>
+		<li>The new &quot;<strong>Paste as Plain Text</strong> &quot; command has been introduced.
+		</li>
+		<li>The new &quot;<strong>Paste from Word</strong> &quot; command has been introduced.
+		</li>
+		<li>A new configuration named&nbsp;&quot;StartupFocus&quot; can be used to tell the
+			editor to get the focus when the page is loaded. </li>
+		<li>All <strong>Java </strong>integration files has been moved to a new separated package.
+		</li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1016781&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1016781</a>] <strong>Table operations</strong> are now working when right click
+			inside a table. The following commands has been introduced: <strong>Insert Row</strong>,
+			<strong>Delete Row</strong>, <strong>Insert Column</strong>, <strong>Delete Column</strong>,
+			<strong>Insert Cell</strong> and <strong>Delete Cells</strong> . </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=965067&amp;group_id=75348&amp;atid=543653">SF
+			BUG-965067</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1010379&amp;group_id=75348&amp;atid=543653">SF
+				BUG-1010379</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=977713&amp;group_id=75348&amp;atid=543653">SF
+					BUG-977713</a>] XHTML support was not working with FireFox, blocking the
+			editor when submitting data. It has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1007547&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1007547</a> ] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=974595&amp;group_id=75348&amp;atid=543653">SF
+				BUG-974595</a> ]&nbsp;The &quot;FCKLang not defined&quot; error when loading
+			has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1021028&amp;group_id=75348&amp;atid=543653">SF
+			BUG-1021028</a>] If the editor doesn't have the focus, some commands were been executed
+			outside the editor in the place where the focus is. It has been fixed. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=981191&amp;group_id=75348&amp;atid=543653">SF
+			BUG-981191</a>] We are now using &lt;!--- ---&gt; for ColdFusion comments.</li>
+	</ul>
+	<h3>
+		Version 2.0 Beta 1</h3>
+	<p>
+		This is the first beta of the 2.x series. It brings a lot of new and important things.
+		Beta versions will be released until all features available on version 1.x will
+		be introduced in the 2.0.<br />
+		<br />
+		<strong>Note:</strong> As it is a beta, it is not yet completely developed. Future
+		versions can bring new features that can break backward compatibility with this
+		version.
+	</p>
+	<ul>
+		<li>Gecko browsers (<strong>Mozilla</strong> and <strong>Netscape</strong>) support.
+		</li>
+		<li><strong>Quick startup</strong> response times. </li>
+		<li>Complete <strong>XHTML</strong> 1.0 support. </li>
+		<li><strong>Advanced link</strong> dialog box:
+			<ul>
+				<li>Target selection. </li>
+				<li>Popup configurator. </li>
+				<li>E-Mail link. </li>
+				<li>Anchor selector. </li>
+			</ul>
+		</li>
+		<li>New <strong>File Manager</strong>. </li>
+		<li>New dialog box system, with <strong>tabbed dialogs</strong> support. </li>
+		<li>New <strong>context menus</strong> with icons. </li>
+		<li>New toolbar with &quot;expand/collapse&quot; feature. </li>
+		<li><strong>Skins</strong> support. </li>
+		<li><strong>Right to left languages</strong> support. </li>
+	</ul>
+	<h3>
+		Version 1.6.1</h3>
+	<ul>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=862364&amp;group_id=75348&amp;atid=543653">SF
+			BUG-862364</a>] [<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=812733&amp;group_id=75348&amp;atid=543653">SF
+				BUG-812733</a>] There was a problem when the user tried to delete the last row,
+			collumn or cell in a table. It has been corrected.* </li>
+		<li>New Estonian language file. Thanks to Kristjan Kivikangur </li>
+		<li>New Croatian language file. Thanks to Alex Varga. </li>
+		<li>Updated language file for Czech. Thanks to Plachow. </li>
+		<li>Updated language file for Chineze (zh-cn). Thanks to Yanglin. </li>
+		<li>Updated language file for Catalan. Thanks to Jordi Cerdan.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a href="http://www.genuitec.com/">Genuitec,
+			LLC</a>.</p>
+	<h3>
+		Version 1.6</h3>
+	<ul>
+		<li><strong>Context Menu</strong> support for <strong>form</strong> elements.* </li>
+		<li>New <strong>&quot;Selection Field&quot; command</strong> with advanced dialog box
+			for options definitions.* </li>
+		<li>New <strong>&quot;Image Button&quot; command</strong> is available.* </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=936196&amp;group_id=75348&amp;atid=543656">SF
+			Feature-936196</a>] Many form elements <strong>bugs has been fixed</strong> and
+			<strong>many improvements</strong> has been done.* </li>
+		<li>New <strong>Java Integration Module</strong>. There is a complete Java API and Tag
+			Library implementations. Take a look at the _jsp directory. Thanks to Simone Chiaretta
+			and Hao Jiang. </li>
+		<li>The <strong>Word Spell Checker</strong> can be used. To be able to run it, your
+			browser security configuration &quot;Initialize and script ActiveX controls not
+			marked as safe&quot; must be set to &quot;Enable&quot; or &quot;Prompt&quot;. And
+			easier and more secure way to do that is to add your site in the list of trusted
+			sites. IeSpell can still be used. Take a look at the fck_config.js file for some
+			configuration options. Thanks to EdwardRF. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=748807&amp;group_id=75348&amp;atid=543656">SF
+			Feature-748807</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=801030&amp;group_id=75348&amp;atid=543656">SF
+				Feature-801030</a>] [<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=880684&amp;group_id=75348&amp;atid=543656">SF
+					Feature-880684</a>] New &quot;<strong>Anchor&quot; command</strong>, including
+			context menu support. Thanks to G.Meijer. </li>
+		<li>Special characters are replaced with their decimal HTML entities when the XHMTL
+			support is enabled (only over IE5.5+). </li>
+		<li>New <strong>Office 2003 Style</strong> toolbar icons are available. Just uncomment
+			the config.ToolbarImagesPath key in the fck_config.js file. Thanks to Abdul-Aziz
+			A. Al-Oraij. <strong>Attention</strong>: the default toolbar items have been moved
+			to the &quot;images/toolbar/default&quot; directory. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=934566&amp;group_id=75348&amp;atid=543655">SF
+			Patch-934566</a>] <strong>Double click support</strong> for Images, Tables, Links,
+			Anchors and all Form elements. Thanks to Top Man. </li>
+		<li>New <strong>&quot;New Page&quot; command</strong> to start a typing from scratch.
+			Thanks to Abdul-Aziz A. Al-Oraij. </li>
+		<li>New <strong>&quot;Replace&quot; command</strong>. Thanks to Abdul-Aziz A. Al-Oraij.
+		</li>
+		<li>New <strong>&quot;Advanced Font Style&quot; command</strong>. Thanks to Abdul-Aziz
+			A. Al-Oraij. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=738193&amp;group_id=75348&amp;atid=543656">SF
+			Feature-738193</a>] New <strong>&quot;Save&quot; command</strong>. It can be used
+			to simulate a save action, but in fact it just submits the form where the editor
+			is placed in. Thanks to Abdul-Aziz A. Al-Oraij. </li>
+		<li>New <strong>&quot;Universal Keyboard&quot; command</strong>. This 22 charsets are
+			available: Arabic, Belarusian, Bulgarian, Croatian, Czech, Danish, Finnish, French,
+			Greek, Hebrew, Hungarian, Diacritical, Macedonian, Norwegian, Polish, Russian, Serbian
+			(Cyrillic), Serbian (Latin), Slovak, Spanish, Ukrainian and Vietnamese. Includes
+			a keystroke listener to type Arabic on none Arabic OS or machine. Thanks to Abdul-Aziz
+			A. Al-Oraij. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=935358&amp;group_id=75348&amp;atid=543655">SF
+			Patch-935358</a>] New <strong>&quot;Preview&quot; command</strong>. Context menu
+			option is included and can be deactivated throw the config.ShowPreviewContextMenu
+			configuration. Thanks to Ben Ramsey. </li>
+		<li>New &quot;<strong>Table Auto Format</strong>&quot; context menu command. Hack a
+			little the fck_config.js and the fck_editorarea.css files. Thanks to Alexandros
+			Lezos. </li>
+		<li>New &quot;<strong>Bulleted List Properties</strong> &quot; context menu to define
+			its type and class. Thanks to Alexandros Lezos. </li>
+		<li>The <strong>image dialog</strong> box has been a <strong>redesigned</strong> . Thanks
+			to Mark Fierling. </li>
+		<li>Images now always have the <strong>&quot;alt&quot; attribute</strong> set, even
+			when it's value is empty. Thanks to Andreas Barnet. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=942250&amp;group_id=75348&amp;atid=543655">SF
+			Patch-942250</a>] You can set on fck_config.js to <strong>automatically clean Word</strong>
+			pasting operations without a user confirmation. </li>
+		<li>Forms element dialogs and other localization pending labels has been updated. </li>
+		<li>A new <strong>Lithuanian</strong> language file is available. Thanks to Tauras Paliulis.
+		</li>
+		<li>A new <strong>Hebrew</strong> language file is available. Thanks to Ophir Radnitz.
+		</li>
+		<li>A new <strong>Serbian</strong> language file is available. Thanks to Zoran Subic.
+		</li>
+		<li><strong>Danish</strong> language file updates. Thanks to Flemming Jensen. </li>
+		<li><strong>Catalan</strong> language file updates. Thanks to Jordi Cerdan. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=936514&amp;group_id=75348&amp;atid=543655">SF
+			Patch-936514</a>] [<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=918716&amp;group_id=75348">SF
+				BUG-918716</a>] [<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=931037&amp;group_id=75348&amp;atid=543653">SF
+					BUG-931037</a>] [<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=865864&amp;group_id=75348&amp;atid=543653">SF
+						BUG-865864</a>] [<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=915410&amp;group_id=75348&amp;atid=543653">SF
+							BUG-915410</a>] [<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=918716&amp;group_id=75348&amp;atid=543653">SF
+								BUG-918716</a>] Some <strong>languages files</strong> were not
+			saved on <strong>UTF-8</strong> format causing some javascript errors on loading
+			the editor or making &quot;undefined&quot; to show on editor labels. This problem
+			was solved. </li>
+		<li>Updates on the testsubmit.php file. Thanks to Geat and Gabriel Schillaci </li>
+		<li>[<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=924620&amp;group_id=75348">SF
+			BUG-924620</a>] There was a problem when setting a name to an editor instance when
+			the name is used by another tag. For example when using &quot;description&quot;
+			as the name in a page with the &lt;META name=&quot;description&quot;&gt; tag. </li>
+		<li>[<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=935018&amp;group_id=75348&amp;atid=543653">SF
+			BUG-935018</a>] The &quot;buletted&quot; typo has been corrected. </li>
+		<li>[<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=902122&amp;group_id=75348&amp;atid=543653">SF
+			BUG-902122</a>] Wrong css and js file references have been corrected. </li>
+		<li>[<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=918942&amp;group_id=75348&amp;atid=543653">SF
+			BUG-918942</a>] All dialog boxes now accept Enter and Escape keys as Ok and Cancel
+			buttons.</li>
+	</ul>
+	<p>
+		* This version has been partially sponsored by <a href="http://www.genuitec.com/">Genuitec,
+			LLC</a>.</p>
+	<h3>
+		Version 1.5</h3>
+	<ul>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543656&amp;aid=913777&amp;group_id=75348">SF
+			Feature-913777</a>] <strong>New Form Commands</strong> are now available! Special
+			thanks to G.Meijer. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=861149&amp;group_id=75348&amp;atid=543656">SF
+			Feature-861149</a>] <strong>Print Command</strong> is now available! </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=743546&amp;group_id=75348">SF
+			BUG-743546</a>] The <strong>XHTML content duplication problem </strong>has been
+			<strong>solved</strong> . Thanks to Paul Hutchison. </li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=875853&amp;group_id=75348">SF
+			BUG-875853</a>] The <strong>image dialog box</strong> now gives precedence for width
+			and height values set as styles. In this way a user can change the size of the image
+			directly inside the editor and the changes will be reflected in the dialog box.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543656&amp;aid=913777&amp;group_id=75348">SF
+			Feature-788368</a>] The sample <strong>file upload </strong>manager for ASPX now
+			uses <strong>guids</strong> for the file name generation. In this way a support
+			XML file is not needed anymore. </li>
+		<li>It's possible now to <strong>programmatically change the Base Path</strong> of the
+			editor if it's installed in a directory different of &quot;/FCKeditor/&quot;. Something
+			like this:<br />
+			oFCKeditor.BasePath = '/FCKeditor/' ;<br />
+			Take a look at the _test directory for samples. </li>
+		<li>There was a little bug in the TAB feature that moved the insertion point if there
+			were any object (images, tables) in the content. It has been fixed. </li>
+		<li>The problem with <strong>accented and international characters</strong> on the PHP
+			test page was solved. </li>
+		<li>A new <strong>Chinese (Taiwan)</strong> language file is available. Thanks to Nil.
+		</li>
+		<li>A new <strong>Slovenian</strong> language file is available. Thanks to Pavel Rotar.
+		</li>
+		<li>A new <strong>Catalan</strong> language file is available. Thanks to Jordi Cerdan.
+		</li>
+		<li>A new <strong>Arabic</strong> language file is available. Thanks to Abdul-Aziz A.
+			Al-Oraij. </li>
+		<li>Small corrections on the <strong>Norwegian</strong> language file. </li>
+		<li>A Java version for the test results (testsubmit.jsp) is now available. Thanks to
+			Pritpal Dhaliwal. </li>
+		<li>When using JavaScript to create a editor instance it's possible now to easily get
+			the editor's value calling oFCKeditor.GetValue() (eg.). Better JavaScript API interfaces
+			will be available on version 2.0. </li>
+		<li>If <strong>XHTML</strong> is enabled the editor cleans the HTML before showing it
+			on the Source View, so the exact result can be viewed by the user. This option can
+			be activated setting config.EnableSourceXHTML = true in the fck_config.js file.
+		</li>
+		<li>The <strong>JS integration object</strong> now escapes all configuration settings,
+			in this way a user can use <strong>reserved chars</strong> on it. For example:
+			<br />
+			oFCKeditor.Config[&quot;ImageBrowserURL&quot;] = '/imgs/browse.asp?filter=abc*.jpg&amp;userid=1';
+		</li>
+		<li>A minimal browse server sample is now available in ASP. Thanks to Andreas Barnet.
+		</li>
+	</ul>
+	<h3>
+		Version 1.4</h3>
+	<ul>
+		<li><strong>ATTENTION: For PHP users</strong>: The editor was changed and now uses <strong>
+			htmlspecialchars</strong> instead of <strong>htmlentities</strong> when handling
+			the initial value. It should works well, but please make some tests before upgrading
+			definitively. If there is any problem just uncomment the line in the fckeditor.php
+			file (and send me a message!). </li>
+		<li>The editor is now integrated with <strong>ieSpell</strong> (<a href="http://www.iespell.com">http://www.iespell.com</a>)
+			for <strong>Spell Checking</strong>. You can configure the download URL in then
+			fck_config.js file. Thanks to Sanjay Sharma. (ieSpell is free for personal use but
+			must be paid for commercial use) </li>
+		<li><strong>Table</strong> and <strong>table cell</strong> dialogs has been changed.
+			Now you can <strong>select the class</strong> you want to be applied. Thanks to
+			Alexander Lezos. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=865378&amp;group_id=75348&amp;atid=543656">SF
+			Feature-865378</a>]A new <strong>upload support is available for ASP</strong>. It
+			uses the /UserImages/ folder in the root of the web site as the files container
+			and a counter controlled by the upload.cnt file. Both must have write permissions
+			set to the IUSR_xxx user. Thanks to Trax and Juanjo. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=798128&amp;group_id=75348&amp;atid=543655">SF
+			Patch-798128</a>] The user (programmer) can now define a <strong>custom separator</strong>
+			for the list items of a combo in the toolbar. Thanks to Wulff D. Heiss. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=741963&amp;group_id=75348&amp;atid=543656">SF
+			Feature-741963</a>][<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=878941&amp;group_id=75348&amp;atid=543656">SF
+				Feature-878941</a>][<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=869389&amp;group_id=75348&amp;atid=543655">SF
+					Patch-869389</a>] A minimal support for a &ldquo;fake&rdquo; <strong>TAB is now available</strong>,
+			even if HTML has no support for TAB. Now when the user presses the TAB key a configurable
+			number of spaces (&amp;nbsp;) is added. Take a look at config.TabSpaces on the fck_config.js
+			file. No action is performed if it is set to zero. The default value is 4. Thanks
+			to Phil Hassey. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=782779&amp;group_id=75348&amp;atid=543653">SF
+			BUG-782779</a>][<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=790939&amp;group_id=75348&amp;atid=543653">SF
+				BUG-790939</a>] The problem with big images has been corrected. Thanks to Raver.
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853374&amp;group_id=75348">SF
+			BUG-862975</a>] Now the editor does nothing if no image is selected in the image
+			dialog box and the OK button is hit. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=851609&amp;group_id=75348&amp;atid=543653">SF
+			BUG-851609</a>] The problem with ASP and null values has been solved. </li>
+		<li><strong>Norwegean</strong> language pack. Thanks to Martin Kronstad. </li>
+		<li><strong>Hungarian</strong> language pack. Thanks to Bal&aacute;zs Szab&oacute;.
+		</li>
+		<li><strong>Bosnian</strong> language pack. Thanks to Trax. </li>
+		<li><strong>Japanese</strong> language pack. Thanks to Kato Yuichiro. </li>
+		<li>Updates on the <strong>Polish</strong> language pack. Thanks to Norbert Neubauer.
+		</li>
+		<li>The <strong>Chinese (Taiwan)</strong> (zh-tw) has been removed from the package
+			because it's corrupt. I'm sorry. I hope someone could send me a good version soon.
+		</li>
+	</ul>
+	<h3>
+		Version 1.3.1</h3>
+	<ul>
+		<li>It's now possible to configure the editor the insert a <strong>&lt;BR&gt; tag instead
+			of &lt;P&gt;</strong> when the user presses the <strong>&lt;Enter&gt;</strong> key.
+			Take a look at the fck_config.js configuration file for the &quot;<strong>UseBROnCarriageReturn</strong>&quot;
+			key. This option is disabled by default. </li>
+		<li><strong>Icelandic</strong> language pack. Thanks to Andri &Oacute;skarsson. </li>
+		<li>[<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853374&amp;group_id=75348">SF
+			BUG-853374</a>] On IE 5.0 there was a little error introduced with version 1.3 on
+			initialization. It was corrected. </li>
+		<li>[<a href="https://sourceforge.net/tracker/?func=detail&amp;atid=543653&amp;aid=853372&amp;group_id=75348">SF
+			BUG-853372</a>] On IE 5.0 there was a little error introduced with version 1.3 when
+			setting the focus in the editor. It was corrected. </li>
+		<li>Minor errors on the language file for <strong>english</strong> has been corrected.
+			Thanks to Anders Madsen. </li>
+		<li>Minor errors on the language file for <strong>danish</strong> has been corrected.
+			Thanks to Martin Johansen. </li>
+	</ul>
+	<h3>
+		Version 1.3</h3>
+	<ul>
+		<li>Language support for <strong>Danish, Polish, Simple Chinese, Slovak, Swedish and
+			Turkish</strong>. </li>
+		<li>Language updates for <strong>Romanian</strong>. </li>
+		<li>It's now possible to <strong>override</strong> any of the <strong>editor's configurations</strong>
+			(for now it's implemented just for JavaScript, ASPX and HTC modules). See _test/test.html
+			for a sample. I'm now waiting for the Community for the ASP, CFM and PHP versions.
+		</li>
+		<li>A new method is available for <strong>PHP</strong> users. It's called <strong>ReturnFCKeditor</strong>.
+			It works exactly like CreateFCKeditor, but it <strong>returns a string with the HTML</strong>
+			for the editor instead of output it (echo). This feature is useful for people who
+			are working with Smarty Templates or something like that. Thanks to Timothy J. Finucane.
+		</li>
+		<li>Many people have had problems with <strong>international characters</strong> over
+			<strong>PHP</strong>. I had also the same problem. PHP have strange problems with
+			character encoding. The code hasn't been changed but just saved again with Western
+			European encoding. <strong>Now it works well</strong> in my system.<br />
+			Take a look also at the &quot;default_charset&quot; configuration option at the
+			php.ini file. It doesn't seem to be an editor's problem but a PHP issue. </li>
+		<li>The &quot;<strong>testsubmit.php</strong>&quot; file now strips the &quot;<strong>Magic
+			Quotes</strong> &quot; that are automatically added by PHP on form posts. </li>
+		<li>A <strong>new language</strong> integration module is available for <strong>ASP/Jscript</strong>.
+			Thanks to Dimiter Naydenov. </li>
+		<li><strong>New configuration</strong> options are available to <strong>customize the
+			Target</strong> combo box in the <strong>Insert/Modify Link</strong> dialog box.
+			Now you can hide it, or set which options are available in the combo box. Take a
+			look at the fck_config.js file. </li>
+		<li>The <strong>Text as Plain Text</strong> toolbar <strong>icon</strong> has been changed
+			<strong>to avoid confusion</strong> with the Normal Paste or. Thanks to Kaupo Kalda.
+		</li>
+		<li>The file <strong>dhtmled.cab has been removed</strong> from the package. It's not
+			needed to the editor to work and caused some confusion for a few users. </li>
+		<li>The <strong>editor's content</strong> now <strong>doesn't loose the focus</strong>
+			when the user clicks with the mouse in a toolbar button. </li>
+		<li>On <strong>drag-and-drop</strong> operations the data to be inserted in the editor
+			is now <strong>converted to plain text</strong> when the &quot;<strong>ForcePasteAsPlainText</strong>&quot;
+			configuration is set to <strong>true</strong>. </li>
+		<li>The <strong>image browser</strong> sample in PHP now <strong>sorts the files</strong>
+			by name. Thanks to Sergey Lupashko. </li>
+		<li>Two <strong>new configuration</strong> options are available to <strong>turn on/off
+			by default</strong> the &quot;<strong>Show Borders</strong>&quot; and &quot;<strong>Show
+				Details</strong>&quot; commands. </li>
+		<li>Some <strong>characters have been removed</strong> from the &quot;<strong>Insert
+			Special Chars</strong>&quot; dialog box because they were causing encoding problems
+			in some languages. Thanks to Abomb Hua. </li>
+		<li><strong>JSP</strong> versions of the <strong>image and file upload and browsing</strong>
+			features. Thanks to Simone Chiaretta.</li>
+	</ul>
+	<h3>
+		Version 1.2.4</h3>
+	<ul>
+		<li>Language support for <strong>Spanish, Finnish, Romanian and Korean</strong>. </li>
+		<li>Language updates for <strong>German</strong>. </li>
+		<li>New <strong>Zoom</strong> toolbar option. (<a href="https://sourceforge.net/forum/forum.php?thread_id=904116&amp;forum_id=257180">Thanks
+			to &quot;mtn_roadie&quot;</a>)</li>
+	</ul>
+	<h3>
+		Version 1.2.2</h3>
+	<ul>
+		<li>Language support for <strong>French</strong>. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=782779&amp;group_id=75348&amp;atid=543653">SF
+			BUG-782779</a>] Version 1.2 introduced a bug on the image dialog window: when changing
+			the image, no update was done. This bug is now fixed. </li>
+	</ul>
+	<h3>
+		Version 1.2</h3>
+	<ul>
+		<li>Enhancements to the <strong>Word cleaning</strong> feature (Thanks to Karl von Randow).
+		</li>
+		<li>The <strong>Table dialog box</strong> now handles the Style width and height set
+			in the table (Thanks to Roberto Arruda). There where many problems on prior version
+			when people changed manually the table's size, dragging the size handles, and then
+			it was not possible to set a new size using the table dialog box. </li>
+		<li>For the <strong>Image dialog box:</strong>
+			<ul>
+				<li>No image is shown in the preview pane if no image has been set. </li>
+				<li>If no HSpace is set in the image a &quot;-1&quot; value was shown in the dialog
+					box. Now, nothing is shown if the value is negative. </li>
+			</ul>
+		</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=739630&amp;group_id=75348&amp;atid=543653">SF
+			BUG-739630</a>] Image with link lost the link when changing its properties. The
+			problem is solved. </li>
+		<li>Due to some problems in the XHTML cleaning (content duplication when the source
+			HTML is dirty and malformed), the <strong>XHTML support is turned off by default</strong>
+			from this version. You can still change this behavior and turn it on in the configuration
+			file. </li>
+		<li>Some little updates on the <strong>English </strong>language file. </li>
+		<li>A few addition of missing entries on all languages files (translations for these
+			changes are pending). </li>
+		<li>Language files has been added for the following languages:
+			<ul>
+				<li><strong>Brazilian Portuguese</strong> (pt-br) </li>
+				<li><strong>Czech</strong> (cz) </li>
+				<li><strong>Dutch</strong> (nl) </li>
+				<li><strong>Russian</strong> (ru) </li>
+				<li><strong>Chinese (Taiwan)</strong> (zh-tw) </li>
+				<li><strong>Greek</strong> (gr) </li>
+				<li><strong>German</strong> (de)</li>
+			</ul>
+		</li>
+	</ul>
+	<h3>
+		Version 1.1</h3>
+	<ul>
+		<li>The &quot;<strong>Multi Language</strong>&quot; system is now available. This version
+			ships with English and Italian versions completed. Other languages will be available
+			soon. The editor automatically detects the client language and sets all labels,
+			tooltips and dialog boxes to it, if available. The auto detection and the default
+			language can be set in the <strong>fck_config.file</strong>. </li>
+		<li>Two files can now be created to isolate customizations code from the original source
+			code of the editor: <strong>fckeditor.config.js</strong> and <strong>fckeditor.custom.js</strong>.
+			Create these files in the root folder of your web site, if needed. The first one
+			can be used to add or override configurations set on fck_config.js. The second one
+			is used for custom actions and behaviors. </li>
+		<li>A problem with relative links and images like &quot;/test/test.doc&quot; has been
+			solved. In prior versions, only with XHTML support enabled, the URL was changed
+			to something like &quot;http://www.mysite.xxx/test/test.doc&quot; (The domain was
+			automatically added). Now the XHTML cleaning procedure gets the URLs exactly how
+			they are defined in the editor&rsquo;s HTML. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=742168&amp;group_id=75348&amp;atid=543653">SF
+			BUG-742168</a>] Mouse drag and drop from toolbar buttons has been disabled. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=768210&amp;group_id=75348&amp;atid=543653">SF
+			BUG-768210</a>] HTML entities, like <strong>&amp;lt;</strong>, were not load correctly.
+			The problem is solved. </li>
+		<li>[<a target="_blank" href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=748812&amp;group_id=75348&amp;atid=543653">SF
+			BUG-748812</a>] The link dialog window doesn't open when the link button is grayed.
+		</li>
+	</ul>
+	<h3>
+		Version 1.0</h3>
+	<ul>
+		<li>Three new options are available in the configuration file to set what file types
+			are allowed / denied to be uploaded from the &quot;Insert Link&quot; and &quot;Insert
+			Image&quot; dialog boxes. </li>
+		<li>Upload options, for links and images, are automatically hidden on IE 5.0 browsers
+			(it's not compatible). </li>
+		<li>[SF BUG-734894] Fixed a problem on XHTML cleaning: the value on INPUT fields were
+			lost. </li>
+		<li>[SF BUG-713797] Fixed some image dialog errors when trying to set image properties
+			when no image is available. </li>
+		<li>[SF BUG-736414] Developed a workaround for a DHTML control bug when loading in the
+			editor some HTML started with &lt;p&gt;&lt;hr&gt;&lt;/p&gt;. </li>
+		<li>[SF BUG-737143] Paste from Word cleaning changed to solve some IE 5.0 errors. This
+			feature is still not available over IE 5.0. </li>
+		<li>[SF BUG-737233] CSS mappings are now OK on the PHP image browser module. </li>
+		<li>[SF BUG-737495] The image preview in the image dialog box is now working correctly.
+		</li>
+		<li>[SF BUG-737532] The editor automatically switches to WYSIWYG mode when the form
+			is posted. </li>
+		<li>[SF BUG-739571] The editor is now working well over Opera (as for Netscape, a TEXTAREA
+			is shown). </li>
+	</ul>
+	<h3>
+		Version 1.0 Final Candidate</h3>
+	<ul>
+		<li>A new dialog box for the &quot;Link&quot; command is available. Now you can upload
+			and browse the server exactly like the image dialog box. It's also possible to define
+			the link title and target window (_blank, _self, _parent and _top). As with the
+			image dialog box, a sample (and simple) file server browser is available. </li>
+		<li>A new configuration option is available to force every paste action to be handled
+			as plain text. See &quot;config.ForcePasteAsPlainText&quot; in fck_config.js. </li>
+		<li>A new Toolbar button is available: &quot;Paste from Word&quot;. It automatically
+			cleans the clipboard content before pasting (removesWord styles, classes, xml stuff,
+			etc...). This command is available for IE 5.5 and more. For IE 5.0 users, a message
+			is displayed advising that the text will not be cleaned before pasting. </li>
+		<li>The editor automatically detects Word clipboard data on pasting operations and asks
+			the user to clean it before pasting. This option is turned on by default but it
+			can be configured. See &quot;config.AutoDetectPasteFromWord&quot; in fck_config.js.
+		</li>
+		<li>Table properties are now available in cells' right click context menu. </li>
+		<li>It's now possible to edit cells advanced properties from it's right click context
+			menu. </li>
+	</ul>
+	<h3>
+		Version 1.0 Release Candidate 1 (RC1)</h3>
+	<ul>
+		<li>Some performance improvements. </li>
+		<li>The file dhtmled.cab has been added to the package for clients ho needs to install
+			the Microsoft DHTML Editor component. </li>
+		<li>[SF BUG-713952] The format command options are localized, so it depends on the IE
+			language to work. Until version 0.9.5 it was working only over English IE browsers.
+			Now the options are load dynamically on the client using the client's language.
+		</li>
+		<li>[SF BUG-712103] The style command is localized, so it depends on the IE language
+			to work. Until version 0.9.5 it was working only over English IE browsers. Now it
+			configures itself using the client's language. </li>
+		<li>[SF BUG-726137] On version 0.9.5, some commands (special chars, image, emoticons,
+			...) remove the next available character before inserting the required content even
+			if no selection was made in the editor. Now the editor replaces only the selected
+			content (if available). </li>
+	</ul>
+	<h3>
+		Version 0.9.5 beta</h3>
+	<ul>
+		<li>XHTML support is now available! It can be enabled/disabled in the fck_config.js
+			file. </li>
+		<li>&quot;Show Table Borders&quot; option: show borders for tables with borders size
+			set to zero. </li>
+		<li>&quot;Show Details&quot; option: show hidden elements (comments, scripts, paragraphs,
+			line breaks) </li>
+		<li>IE behavior integration module. Thanks to Daniel Shryock. </li>
+		<li>&quot;Find&quot; option: to find text in the document. </li>
+		<li>More performance enhancements. </li>
+		<li>New testsubmit.php file. Thansk to Jim Michaels. </li>
+		<li>Two initial PHP upload manager implementations (not working yet). Thanks to Frederic
+			Tyndiuk and Christian Liljedahl. </li>
+		<li>Initial PHP image browser implementation (not working yet). Thanks to Frederic Tyndiuk.
+		</li>
+		<li>Initial CFM upload manager implementation. Thanks to John Watson. </li>
+	</ul>
+	<h3>
+		Version 0.9.4 beta</h3>
+	<ul>
+		<li>ColdFusion module integration is now available! Thanks to John Watson. </li>
+		<li>&quot;Insert Smiley&quot; toolbar option! Thanks to Fredox. Take a look at fck_config.js
+			for configuration options. </li>
+		<li>&quot;Paste as plain text&quot; toolbar option! </li>
+		<li>Right click support for links (edit / remove). </li>
+		<li>Buttons now are shown in gray when disabled. </li>
+		<li>Buttons are shown just when the image is downloaded (no more &quot;red x&quot; while
+			waiting for it). </li>
+		<li>The toolbar background color can be set with a CSS style (see fck_editor.css). </li>
+		<li>Toolbar images have been reviewed:
+			<ul>
+				<li>Now they are transparent. </li>
+				<li>No more over...gif for every button (so the editor loads quicker). </li>
+				<li>Buttons states are controlled with CSS styles. (see fck_editor.css).</li>
+			</ul>
+		</li>
+		<li>Internet Explorer 5.0 compatibility, except for the image uploading popup. </li>
+		<li>Optimizations when loading the editor. </li>
+		<li>[SF BUG-709544] - Toolbar buttons wait for the images to be downloaded to start
+			watching and responding the user actions (turn buttons on/off when the user changes
+			position inside the editor). </li>
+		<li>JavaScript integration is now Object Oriented. CreateFCKeditor function is not available
+			anymore. Take a look in test.html. </li>
+		<li>Two new configuration options, ImageBrowser and ImageUpload, are available to turn
+			on and off the image upload and image browsing options in the Image dialog box.
+			This options can be hidden for a specific editor instance throw specific URL parameter
+			in the editor&rsquo;s IFRAME (upload=true/false&amp;browse=true/false). All specific
+			language integration modules handle this option. For sample see the _test directory.
+		</li>
+	</ul>
+</body>
 </html>

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenu.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenu.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,134 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKContextMenu Class: renders an control a context menu.
+ */
+
+var FCKContextMenu = function( parentWindow, langDir )
+{
+	var oPanel = this._Panel = new FCKPanel( parentWindow, true ) ;
+	oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	oPanel.IsContextMenu = true ;
+
+	// The FCKTools.DisableSelection doesn't seems to work to avoid dragging of the icons in Mozilla
+	// so we stop the start of the dragging
+	if ( FCKBrowserInfo.IsGecko )
+		oPanel.Document.addEventListener( 'draggesture', function(e) {e.preventDefault(); return false;}, true ) ;
+
+	var oMenuBlock = this._MenuBlock = new FCKMenuBlock() ;
+	oMenuBlock.Panel = oPanel ;
+	oMenuBlock.OnClick = FCKTools.CreateEventListener( FCKContextMenu_MenuBlock_OnClick, this ) ;
+
+	this._Redraw = true ;
+}
+
+
+FCKContextMenu.prototype.SetMouseClickWindow = function( mouseClickWindow )
+{
+	if ( !FCKBrowserInfo.IsIE )
+	{
+		this._Document = mouseClickWindow.document ;
+		this._Document.addEventListener( 'contextmenu', FCKContextMenu_Document_OnContextMenu, false ) ;
+	}
+}
+
+FCKContextMenu.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	var oItem = this._MenuBlock.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled) ;
+	this._Redraw = true ;
+	return oItem ;
+}
+
+FCKContextMenu.prototype.AddSeparator = function()
+{
+	this._MenuBlock.AddSeparator() ;
+	this._Redraw = true ;
+}
+
+FCKContextMenu.prototype.RemoveAllItems = function()
+{
+	this._MenuBlock.RemoveAllItems() ;
+	this._Redraw = true ;
+}
+
+FCKContextMenu.prototype.AttachToElement = function( element )
+{
+	if ( FCKBrowserInfo.IsIE )
+		FCKTools.AddEventListenerEx( element, 'contextmenu', FCKContextMenu_AttachedElement_OnContextMenu, this ) ;
+	else
+		element._FCKContextMenu = this ;
+
+//	element.onmouseup		= FCKContextMenu_AttachedElement_OnMouseUp ;
+}
+
+function FCKContextMenu_Document_OnContextMenu( e )
+{
+	var el = e.target ;
+
+	while ( el )
+	{
+		if ( el._FCKContextMenu )
+		{
+			FCKTools.CancelEvent( e ) ;
+			FCKContextMenu_AttachedElement_OnContextMenu( e, el._FCKContextMenu, el ) ;
+		}
+		el = el.parentNode ;
+	}
+}
+
+function FCKContextMenu_AttachedElement_OnContextMenu( ev, fckContextMenu, el )
+{
+//	var iButton = e ? e.which - 1 : event.button ;
+
+//	if ( iButton != 2 )
+//		return ;
+
+	var eTarget = el || this ;
+
+	if ( fckContextMenu.OnBeforeOpen )
+		fckContextMenu.OnBeforeOpen.call( fckContextMenu, eTarget ) ;
+
+	if ( fckContextMenu._MenuBlock.Count() == 0 )
+		return false ;
+
+	if ( fckContextMenu._Redraw )
+	{
+		fckContextMenu._MenuBlock.Create( fckContextMenu._Panel.MainNode ) ;
+		fckContextMenu._Redraw = false ;
+	}
+	
+	// This will avoid that the content of the context menu can be dragged in IE
+	// as the content of the panel is recreated we need to do it every time
+	FCKTools.DisableSelection( fckContextMenu._Panel.Document.body ) ;
+
+	fckContextMenu._Panel.Show(
+		ev.pageX || ev.screenX,
+		ev.pageY || ev.screenY,
+		ev.currentTarget || null
+	) ;
+
+	return false ;
+}
+
+function FCKContextMenu_MenuBlock_OnClick( menuItem, contextMenu )
+{
+	contextMenu._Panel.Hide() ;
+	FCKTools.RunFunction( contextMenu.OnItemClick, contextMenu, menuItem ) ;
+}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenugroup.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenugroup.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenugroup.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,71 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenugroup.js
- * 	FCKContextMenuGroup Class: represents a group of items in the context 
- * 	menu. Generaly a group of items is directly dependent of the same rules.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKContextMenuGroup = function( addSeparator, contextMenu, firstItemCommand, firstItemLabel, hasIcon )
-{
-	this.IsVisible = true ;
-	
-	// Array with all available context menu items of this group.
-	this.Items = new Array() ;
-	
-	if ( addSeparator )
-		this.Add( new FCKContextMenuSeparator() ) ;
-	
-	if ( contextMenu && firstItemCommand && firstItemLabel )
-		this.Add( new FCKContextMenuItem( contextMenu, firstItemCommand, firstItemLabel, hasIcon ) ) ;
-
-	// This OPTIONAL function checks if the group must be shown.
-	this.ValidationFunction = null ;
-}
-
-// Adds an item to the group's items collecion.
-FCKContextMenuGroup.prototype.Add = function( contextMenuItem )
-{
-	this.Items[ this.Items.length ] = contextMenuItem ;
-}
-
-// Creates the <TR> elements that represent the item in a table (usually the rendered context menu).
-FCKContextMenuGroup.prototype.CreateTableRows = function( table )
-{
-	for ( var i = 0 ; i < this.Items.length ; i++ )
-	{
-		this.Items[i].CreateTableRow( table ) ;
-	}
-}
-
-FCKContextMenuGroup.prototype.SetVisible = function( isVisible )
-{
-	for ( var i = 0 ; i < this.Items.length ; i++ )
-	{
-		this.Items[i].SetVisible( isVisible ) ;
-	}
-	
-	this.IsVisible = isVisible ;
-}
-
-FCKContextMenuGroup.prototype.RefreshState = function()
-{
-	if ( ! this.IsVisible ) return ;
-	
-	for ( var i = 0 ; i < this.Items.length ; i++ )
-	{
-		this.Items[i].RefreshState() ;
-	}
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuitem.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuitem.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuitem.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,104 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenuitem.js
- * 	FCKContextMenuItem Class: represents a item in the context menu.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKContextMenuItem = function( contextMenu, commandName, label, hasIcon )
-{
-	this.ContextMenu	= contextMenu ;
-	this.Command		= FCKCommands.GetCommand( commandName ) ;
-	this.Label			= label ? label : commandName ;
-	this.HasIcon		= hasIcon ? true : false ;
-}
-
-function FCKContextMenuItem_OnMouseOver()
-{
-	if ( this.className != 'CM_Disabled' )
-		this.className = 'CM_Over' ;
-}
-	
-function FCKContextMenuItem_OnMouseOut()
-{
-	if ( this.className != 'CM_Disabled' )
-		this.className = 'CM_Option' ;
-}
-	
-function FCKContextMenuItem_OnClick()
-{
-	if ( this.className != 'CM_Disabled' )
-	{
-		this.FCKContextMenuItem.ContextMenu.Hide() ;
-		this.FCKContextMenuItem.Command.Execute() ;
-	}
-	return false ;
-}
-
-FCKContextMenuItem.prototype.CreateTableRow = function( targetTable )
-{
-	// Creates the <TR> element.
-	this._Row = targetTable.insertRow(-1) ;
-	this._Row.className = 'CM_Disabled' ;
-	this._Row.FCKContextMenuItem = this ;
-	
-	this._Row.onmouseover	= FCKContextMenuItem_OnMouseOver ;
-	this._Row.onmouseout	= FCKContextMenuItem_OnMouseOut ;
-	this._Row.onclick		= FCKContextMenuItem_OnClick ;
-	
-	var oCell = this._Row.insertCell(-1) ;
-	oCell.className = 'CM_Icon' ;
-	
-	if ( this.HasIcon ) oCell.innerHTML = '<img alt="" src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="20" unselectable="on">' ;
-	
-	oCell = this._Row.insertCell(-1) ;
-	oCell.className		= 'CM_Label' ;
-	oCell.unselectable	= 'on' ;
-	oCell.noWrap		= true ;
-	oCell.innerHTML		= this.Label ;
-}
-
-FCKContextMenuItem.prototype.SetVisible = function( isVisible )
-{
-	this._Row.style.display = isVisible ? '' : 'none' ;
-}
-
-FCKContextMenuItem.prototype.RefreshState = function()
-{
-	switch ( this.Command.GetState() )
-	{
-		case FCK_TRISTATE_ON :
-		case FCK_TRISTATE_OFF :
-			this._Row.className = 'CM_Option' ;
-			break ;
-		default :
-			this._Row.className = 'CM_Disabled' ;
-			break ;
-	}
-} 
-
-/*
-Sample output.
------------------------------------------
-<tr class="CM_Disabled">
-	<td class="CM_Icon"><img alt="" src="icons/cut.gif" width="21" height="20" unselectable="on"></td>
-	<td class="CM_Label" unselectable="on">Cut</td>
-</tr>
------------------------------------------
-<tr class="CM_Option" onmouseover="OnOver(this);" onmouseout="OnOut(this);">
-	<td class="CM_Icon"></td>
-	<td class="CM_Label">Do Something</td>
-</tr>
-*/
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuseparator.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuseparator.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckcontextmenuseparator.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,55 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenuseparator.js
- * 	FCKContextMenuSeparator Class: represents a separator in the toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKContextMenuSeparator = function()
-{
-}
-
-FCKContextMenuSeparator.prototype.CreateTableRow = function( targetTable )
-{
-	// Creates the <TR> element.
-	this._Row = targetTable.insertRow(-1) ;
-	this._Row.className = 'CM_Separator' ;
-	
-	var oCell = this._Row.insertCell(-1) ;
-	oCell.className = 'CM_Icon' ;
-	
-	oCell = this._Row.insertCell(-1) ;
-	oCell.className = 'CM_Label' ;
-	oCell.innerHTML = '<div></div>' ;
-}
-
-FCKContextMenuSeparator.prototype.SetVisible = function( isVisible )
-{
-	this._Row.style.display = isVisible ? '' : 'none' ;
-}
-
-FCKContextMenuSeparator.prototype.RefreshState = function()
-{
-	// Do nothing... its state doesn't change.
-} 
-
-/*
-Sample output.
------------------------------------------
-<tr class="CM_Separator">
-	<td class="CM_Icon"></td>
-	<td class="CM_Label"><div></div></td>
-</tr>
-*/
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,46 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a generic Document Fragment object. It is not intended to provide
+ * the W3C implementation, but is a way to fix the missing of a real Document
+ * Fragment in IE (where document.createDocumentFragment() returns a normal
+ * document instead), giving a standard interface for it.
+ * (IE Implementation)
+ */
+
+var FCKDocumentFragment = function( parentDocument, baseDocFrag )
+{
+	this.RootNode = baseDocFrag || parentDocument.createDocumentFragment() ;
+}
+
+FCKDocumentFragment.prototype =
+{
+
+	// Append the contents of this Document Fragment to another element.
+	AppendTo : function( targetNode )
+	{
+		targetNode.appendChild( this.RootNode ) ;
+	},
+
+	InsertAfterNode : function( existingNode )
+	{
+		FCKDomTools.InsertAfterNode( existingNode, this.RootNode ) ;
+	}
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,58 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a generic Document Fragment object. It is not intended to provide
+ * the W3C implementation, but is a way to fix the missing of a real Document
+ * Fragment in IE (where document.createDocumentFragment() returns a normal
+ * document instead), giving a standard interface for it.
+ * (IE Implementation)
+ */
+
+var FCKDocumentFragment = function( parentDocument )
+{
+	this._Document = parentDocument ;
+	this.RootNode = parentDocument.createElement( 'div' ) ;
+}
+
+// Append the contents of this Document Fragment to another node.
+FCKDocumentFragment.prototype =
+{
+
+	AppendTo : function( targetNode )
+	{
+		FCKDomTools.MoveChildren( this.RootNode, targetNode ) ;
+	},
+
+	AppendHtml : function( html )
+	{
+		var eTmpDiv = this._Document.createElement( 'div' ) ;
+		eTmpDiv.innerHTML = html ;
+		FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ;
+	},
+
+	InsertAfterNode : function( existingNode )
+	{
+		var eRoot = this.RootNode ;
+		var eLast ;
+
+		while( ( eLast = eRoot.lastChild ) )
+			FCKDomTools.InsertAfterNode( existingNode, eRoot.removeChild( eLast ) ) ;
+	}
+} ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,452 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Class for working with a selection range, much like the W3C DOM Range, but
+ * it is not intented to be an implementation of the W3C interface.
+ */
+
+var FCKDomRange = function( sourceWindow )
+{
+	this.Window = sourceWindow ;
+}
+
+FCKDomRange.prototype =
+{
+
+	_UpdateElementInfo : function()
+	{
+		if ( !this._Range )
+			this.Release( true ) ;
+		else
+		{
+			var eStart	= this._Range.startContainer ;
+			var eEnd	= this._Range.endContainer ;
+
+			var oElementPath = new FCKElementPath( eStart ) ;
+			this.StartContainer		= oElementPath.LastElement ;
+			this.StartBlock			= oElementPath.Block ;
+			this.StartBlockLimit	= oElementPath.BlockLimit ;
+
+			if ( eStart != eEnd )
+				oElementPath = new FCKElementPath( eEnd ) ;
+			this.EndContainer		= oElementPath.LastElement ;
+			this.EndBlock			= oElementPath.Block ;
+			this.EndBlockLimit		= oElementPath.BlockLimit ;
+		}
+	},
+
+	CreateRange : function()
+	{
+		return new FCKW3CRange( this.Window.document ) ;
+	},
+
+	DeleteContents : function()
+	{
+		if ( this._Range )
+		{
+			this._Range.deleteContents() ;
+			this._UpdateElementInfo() ;
+		}
+	},
+
+	ExtractContents : function()
+	{
+		if ( this._Range )
+		{
+			var docFrag = this._Range.extractContents() ;
+			this._UpdateElementInfo() ;
+			return docFrag ;
+		}
+	},
+
+	CheckIsCollapsed : function()
+	{
+		if ( this._Range )
+			return this._Range.collapsed ;
+	},
+
+	Collapse : function( toStart )
+	{
+		if ( this._Range )
+			this._Range.collapse( toStart ) ;
+
+		this._UpdateElementInfo() ;
+	},
+
+	Clone : function()
+	{
+		var oClone = FCKTools.CloneObject( this ) ;
+
+		if ( this._Range )
+			oClone._Range = this._Range.cloneRange() ;
+
+		return oClone ;
+	},
+
+	MoveToNodeContents : function( targetNode )
+	{
+		if ( !this._Range )
+			this._Range = this.CreateRange() ;
+
+		this._Range.selectNodeContents( targetNode ) ;
+
+		this._UpdateElementInfo() ;
+	},
+
+	MoveToElementStart : function( targetElement )
+	{
+		this.SetStart(targetElement,1) ;
+		this.SetEnd(targetElement,1) ;
+	},
+
+	// Moves to the first editing point inside a element. For example, in a
+	// element tree like "<p><b><i></i></b> Text</p>", the start editing point
+	// is "<p><b><i>^</i></b> Text</p>" (inside <i>).
+	MoveToElementEditStart : function( targetElement )
+	{
+		var child ;
+
+		while ( ( child = targetElement.firstChild ) && child.nodeType == 1 && FCKListsLib.EmptyElements[ child.nodeName.toLowerCase() ] == null )
+			targetElement = child ;
+
+		this.MoveToElementStart( targetElement ) ;
+	},
+
+	InsertNode : function( node )
+	{
+		if ( this._Range )
+			this._Range.insertNode( node ) ;
+	},
+
+	CheckIsEmpty : function( ignoreEndBRs )
+	{
+		if ( this.CheckIsCollapsed() )
+			return true ;
+
+		// Inserts the contents of the range in a div tag.
+		var eToolDiv = this.Window.document.createElement( 'div' ) ;
+		this._Range.cloneContents().AppendTo( eToolDiv ) ;
+
+		FCKDomTools.TrimNode( eToolDiv, ignoreEndBRs ) ;
+
+		return ( eToolDiv.innerHTML.length == 0 ) ;
+	},
+
+	CheckStartOfBlock : function()
+	{
+		// Create a clone of the current range.
+		var oTestRange = this.Clone() ;
+
+		// Collapse it to its start point.
+		oTestRange.Collapse( true ) ;
+
+		// Move the start boundary to the start of the block.
+		oTestRange.SetStart( oTestRange.StartBlock || oTestRange.StartBlockLimit, 1 ) ;
+
+		var bIsStartOfBlock = oTestRange.CheckIsEmpty() ;
+
+		oTestRange.Release() ;
+
+		return bIsStartOfBlock ;
+	},
+
+	CheckEndOfBlock : function( refreshSelection )
+	{
+		// Create a clone of the current range.
+		var oTestRange = this.Clone() ;
+
+		// Collapse it to its end point.
+		oTestRange.Collapse( false ) ;
+
+		// Move the end boundary to the end of the block.
+		oTestRange.SetEnd( oTestRange.EndBlock || oTestRange.EndBlockLimit, 2 ) ;
+
+		var bIsEndOfBlock = oTestRange.CheckIsCollapsed() ;
+		
+		if ( !bIsEndOfBlock )
+		{
+			// Inserts the contents of the range in a div tag.
+			var eToolDiv = this.Window.document.createElement( 'div' ) ;
+			oTestRange._Range.cloneContents().AppendTo( eToolDiv ) ;
+			FCKDomTools.TrimNode( eToolDiv, true ) ;
+			
+			// Find out if we are in an empty tree of inline elements, like <b><i><span></span></i></b>
+			bIsEndOfBlock = true ;
+			var eLastChild = eToolDiv ;
+			while ( ( eLastChild = eLastChild.lastChild ) )
+			{
+				// Check the following:
+				//		1. Is there more than one node in the parents children?
+				//		2. Is the node not an element node?
+				//		3. Is it not a inline element.
+				if ( eLastChild.previousSibling || eLastChild.nodeType != 1 || FCKListsLib.InlineChildReqElements[ eLastChild.nodeName.toLowerCase() ] == null )
+				{
+					// So we are not in the end of the range.
+					bIsEndOfBlock = false ;
+					break ;
+				}
+			}
+		}
+		
+		oTestRange.Release() ;
+
+		if ( refreshSelection )
+			this.Select() ;
+
+		return bIsEndOfBlock ;
+	},
+
+	CreateBookmark : function()
+	{
+		// Create the bookmark info (random IDs).
+		var oBookmark =
+		{
+			StartId	: 'fck_dom_range_start_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000),
+			EndId	: 'fck_dom_range_end_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000)
+		} ;
+
+		var oDoc = this.Window.document ;
+		var eSpan ;
+		var oClone ;
+
+		// For collapsed ranges, add just the start marker.
+		if ( !this.CheckIsCollapsed() )
+		{
+			eSpan = oDoc.createElement( 'span' ) ;
+			eSpan.id = oBookmark.EndId ;
+			eSpan.innerHTML = '&nbsp;' ;	// For IE, it must have something inside, otherwise it may be removed during operations.
+
+			oClone = this.Clone() ;
+			oClone.Collapse( false ) ;
+			oClone.InsertNode( eSpan ) ;
+		}
+
+		eSpan = oDoc.createElement( 'span' ) ;
+		eSpan.id = oBookmark.StartId ;
+		eSpan.innerHTML = '&nbsp;' ;	// For IE, it must have something inside, otherwise it may be removed during operations.
+
+		oClone = this.Clone() ;
+		oClone.Collapse( true ) ;
+		oClone.InsertNode( eSpan ) ;
+
+		return oBookmark ;
+	},
+
+	MoveToBookmark : function( bookmark, preserveBookmark )
+	{
+		var oDoc = this.Window.document ;
+
+		var eStartSpan	=  oDoc.getElementById( bookmark.StartId ) ;
+		var eEndSpan	=  oDoc.getElementById( bookmark.EndId ) ;
+
+		this.SetStart( eStartSpan, 3 ) ;
+
+		if ( !preserveBookmark )
+			FCKDomTools.RemoveNode( eStartSpan ) ;
+
+		// If collapsed, the start span will not be available.
+		if ( eEndSpan )
+		{
+			this.SetEnd( eEndSpan, 3 ) ;
+
+			if ( !preserveBookmark )
+				FCKDomTools.RemoveNode( eEndSpan ) ;
+		}
+		else
+			this.Collapse( true ) ;
+	},
+
+	/*
+	 * Moves the position of the start boundary of the range to a specific position
+	 * relatively to a element.
+	 *		@position:
+	 *			1 = After Start		<target>^contents</target>
+	 *			2 = Before End		<target>contents^</target>
+	 *			3 = Before Start	^<target>contents</target>
+	 *			4 = After End		<target>contents</target>^
+	 */
+	SetStart : function( targetElement, position )
+	{
+		var oRange = this._Range ;
+		if ( !oRange )
+			oRange = this._Range = this.CreateRange() ;
+
+		switch( position )
+		{
+			case 1 :		// After Start		<target>^contents</target>
+				oRange.setStart( targetElement, 0 ) ;
+				break ;
+
+			case 2 :		// Before End		<target>contents^</target>
+				oRange.setStart( targetElement, targetElement.childNodes.length ) ;
+				break ;
+
+			case 3 :		// Before Start		^<target>contents</target>
+				oRange.setStartBefore( targetElement ) ;
+				break ;
+
+			case 4 :		// After End		<target>contents</target>^
+				oRange.setStartAfter( targetElement ) ;
+		}
+		this._UpdateElementInfo() ;
+	},
+
+	/*
+	 * Moves the position of the start boundary of the range to a specific position
+	 * relatively to a element.
+	 *		@position:
+	 *			1 = After Start		<target>^contents</target>
+	 *			2 = Before End		<target>contents^</target>
+	 *			3 = Before Start	^<target>contents</target>
+	 *			4 = After End		<target>contents</target>^
+	 */
+	SetEnd : function( targetElement, position )
+	{
+		var oRange = this._Range ;
+		if ( !oRange )
+			oRange = this._Range = this.CreateRange() ;
+
+		switch( position )
+		{
+			case 1 :		// After Start		<target>^contents</target>
+				oRange.setEnd( targetElement, 0 ) ;
+				break ;
+
+			case 2 :		// Before End		<target>contents^</target>
+				oRange.setEnd( targetElement, targetElement.childNodes.length ) ;
+				break ;
+
+			case 3 :		// Before Start		^<target>contents</target>
+				oRange.setEndBefore( targetElement ) ;
+				break ;
+
+			case 4 :		// After End		<target>contents</target>^
+				oRange.setEndAfter( targetElement ) ;
+		}
+		this._UpdateElementInfo() ;
+	},
+
+	Expand : function( unit )
+	{
+		var oNode, oSibling ;
+
+		switch ( unit )
+		{
+			case 'block_contents' :
+				if ( this.StartBlock )
+					this.SetStart( this.StartBlock, 1 ) ;
+				else
+				{
+					// Get the start node for the current range.
+					oNode = this._Range.startContainer ;
+
+					// If it is an element, get the current child node for the range (in the offset).
+					// If the offset node is not available, the the first one.
+					if ( oNode.nodeType == 1 )
+					{
+						if ( !( oNode = oNode.childNodes[ this._Range.startOffset ] ) )
+							oNode = oNode.firstChild ;
+					}
+
+					// Not able to defined the current position.
+					if ( !oNode )
+						return ;
+
+					// We must look for the left boundary, relative to the range
+					// start, which is limited by a block element.
+					while ( true )
+					{
+						oSibling = oNode.previousSibling ;
+
+						if ( !oSibling )
+						{
+							// Continue if we are not yet in the block limit (inside a <b>, for example).
+							if ( oNode.parentNode != this.StartBlockLimit )
+								oNode = oNode.parentNode ;
+							else
+								break ;
+						}
+						else if ( oSibling.nodeType != 1 || !(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test( oSibling.nodeName.toUpperCase() ) )
+						{
+							// Continue if the sibling is not a block tag.
+							oNode = oSibling ;
+						}
+						else
+							break ;
+					}
+
+					this._Range.setStartBefore( oNode ) ;
+				}
+
+				if ( this.EndBlock )
+					this.SetEnd( this.EndBlock, 2 ) ;
+				else
+				{
+					oNode = this._Range.endContainer ;
+					if ( oNode.nodeType == 1 )
+						oNode = oNode.childNodes[ this._Range.endOffset ] || oNode.lastChild ;
+
+					if ( !oNode )
+						return ;
+
+					// We must look for the right boundary, relative to the range
+					// end, which is limited by a block element.
+					while ( true )
+					{
+						oSibling = oNode.nextSibling ;
+
+						if ( !oSibling )
+						{
+							// Continue if we are not yet in the block limit (inide a <b>, for example).
+							if ( oNode.parentNode != this.EndBlockLimit )
+								oNode = oNode.parentNode ;
+							else
+								break ;
+						}
+						else if ( oSibling.nodeType != 1 || !(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test( oSibling.nodeName.toUpperCase() ) )
+						{
+							// Continue if the sibling is not a block tag.
+							oNode = oSibling ;
+						}
+						else
+							break ;
+					}
+
+					this._Range.setEndAfter( oNode ) ;
+				}
+
+				this._UpdateElementInfo() ;
+		}
+	},
+
+	Release : function( preserveWindow )
+	{
+		if ( !preserveWindow )
+			this.Window = null ;
+
+		this.StartContainer = null ;
+		this.StartBlock = null ;
+		this.StartBlockLimit = null ;
+		this.EndContainer = null ;
+		this.EndBlock = null ;
+		this.EndBlockLimit = null ;
+		this._Range = null ;
+	}
+} ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_gecko.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,71 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Class for working with a selection range, much like the W3C DOM Range, but
+ * it is not intented to be an implementation of the W3C interface.
+ * (Gecko Implementation)
+ */
+
+FCKDomRange.prototype.MoveToSelection = function()
+{
+	this.Release( true ) ;
+
+	var oSel = this.Window.getSelection() ;
+
+	if ( oSel.rangeCount == 1 )
+	{
+		this._Range = FCKW3CRange.CreateFromRange( this.Window.document, oSel.getRangeAt(0) ) ;
+		this._UpdateElementInfo() ;
+	}
+}
+
+FCKDomRange.prototype.Select = function()
+{
+	var oRange = this._Range ;
+	if ( oRange )
+	{
+		var oDocRange = this.Window.document.createRange() ;
+		oDocRange.setStart( oRange.startContainer, oRange.startOffset ) ;
+
+		try
+		{
+			oDocRange.setEnd( oRange.endContainer, oRange.endOffset ) ;
+		}
+		catch ( e )
+		{
+			// There is a bug in Firefox implementation (it would be too easy
+			// otherwhise). The new start can't be after the end (W3C says it can).
+			// So, let's create a new range and collapse it to the desired point.
+			if ( e.toString().Contains( 'NS_ERROR_ILLEGAL_VALUE' ) )
+			{
+				oRange.collapse( true ) ;
+				oDocRange.setEnd( oRange.endContainer, oRange.endOffset ) ;
+			}
+			else
+				throw( e ) ;
+		}
+
+		var oSel = this.Window.getSelection() ;
+		oSel.removeAllRanges() ;
+
+		// We must add a clone otherwise Firefox will have rendering issues.
+		oSel.addRange( oDocRange ) ;
+	}
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_ie.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckdomrange_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,149 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Class for working with a selection range, much like the W3C DOM Range, but
+ * it is not intented to be an implementation of the W3C interface.
+ * (IE Implementation)
+ */
+
+FCKDomRange.prototype.MoveToSelection = function()
+{
+	this.Release( true ) ;
+
+	this._Range = new FCKW3CRange( this.Window.document ) ;
+
+	var oSel = this.Window.document.selection ;
+
+	if ( oSel.type != 'Control' )
+	{
+		// Set the start boundary.
+		eMarker = this._GetSelectionMarkerTag( true ) ;
+		this._Range.setStart( eMarker.parentNode, FCKDomTools.GetIndexOf( eMarker ) ) ;
+		eMarker.parentNode.removeChild( eMarker ) ;
+
+		// Set the end boundary.
+		var eMarker = this._GetSelectionMarkerTag( false ) ;
+		this._Range.setEnd( eMarker.parentNode, FCKDomTools.GetIndexOf( eMarker ) ) ;
+		eMarker.parentNode.removeChild( eMarker ) ;
+
+		this._UpdateElementInfo() ;
+	}
+	else
+	{
+		var oControl = oSel.createRange().item(0) ;
+
+		if ( oControl )
+		{
+			this._Range.setStartBefore( oControl ) ;
+			this._Range.setEndAfter( oControl ) ;
+			this._UpdateElementInfo() ;
+		}
+	}
+}
+
+FCKDomRange.prototype.Select = function()
+{
+	if ( this._Range )
+	{
+		var bIsCollapsed = this.CheckIsCollapsed() ;
+
+		// Create marker tags for the start and end boundaries.
+		var eStartMarker	= this._GetRangeMarkerTag( true ) ;
+
+		if ( !bIsCollapsed )
+			var eEndMarker	= this._GetRangeMarkerTag( false ) ;
+
+		// Create the main range which will be used for the selection.
+		var oIERange = this.Window.document.body.createTextRange() ;
+
+		// Position the range at the start boundary.
+		oIERange.moveToElementText( eStartMarker ) ;
+		oIERange.moveStart( 'character', 1 ) ;
+
+		if ( !bIsCollapsed )
+		{
+			// Create a tool range for the end.
+			var oIERangeEnd = this.Window.document.body.createTextRange() ;
+
+			// Position the tool range at the end.
+			oIERangeEnd.moveToElementText( eEndMarker ) ;
+
+			// Move the end boundary of the main range to match the tool range.
+			oIERange.setEndPoint( 'EndToEnd', oIERangeEnd ) ;
+			oIERange.moveEnd( 'character', -1 ) ;
+		}
+
+		// Remove the markers (reset the position, because of the changes in the DOM tree).
+		this._Range.setStartBefore( eStartMarker ) ;
+		eStartMarker.parentNode.removeChild( eStartMarker ) ;
+
+		if ( bIsCollapsed )
+		{
+			// The following trick is needed so IE makes collapsed selections
+			// inside empty blocks visible (expands the block).
+			try
+			{
+				oIERange.pasteHTML('&nbsp;') ;
+				oIERange.moveStart( 'character', -1 ) ;
+			}
+			catch (e){}
+			oIERange.select() ;
+			oIERange.pasteHTML('') ;
+		}
+		else
+		{
+			this._Range.setEndBefore( eEndMarker ) ;
+			eEndMarker.parentNode.removeChild( eEndMarker ) ;
+			oIERange.select() ;
+		}
+	}
+}
+
+FCKDomRange.prototype._GetSelectionMarkerTag = function( toStart )
+{
+	// Get a range for the start boundary.
+	var oRange = this.Window.document.selection.createRange() ;
+	oRange.collapse( toStart === true ) ;
+
+	// Paste a marker element at the collapsed range and get it from the DOM.
+	var sMarkerId = 'fck_dom_range_temp_' + (new Date()).valueOf() + '_' + Math.floor(Math.random()*1000) ;
+	oRange.pasteHTML( '<span id="' + sMarkerId + '"></span>' ) ;
+	return this.Window.document.getElementById( sMarkerId ) ;
+}
+
+FCKDomRange.prototype._GetRangeMarkerTag = function( toStart )
+{
+	// Get a range for the start boundary.
+	var oRange = this._Range ;
+
+	// insertNode() will add the node at the beginning of the Range, updating
+	// the endOffset if necessary. So, we can work with the current range in this case.
+	if ( !toStart )
+	{
+		oRange = oRange.cloneRange() ;
+		oRange.collapse( toStart === true ) ;
+	}
+
+	var eSpan = this.Window.document.createElement( 'span' ) ;
+	eSpan.innerHTML = '&nbsp;' ;
+	oRange.insertNode( eSpan ) ;
+
+	return eSpan ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckeditingarea.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckeditingarea.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckeditingarea.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,253 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKEditingArea Class: renders an editable area.
+ */
+
+/**
+ * @constructor
+ * @param {String} targetElement The element that will hold the editing area. Any child element present in the target will be deleted.
+ */
+var FCKEditingArea = function( targetElement )
+{
+	this.TargetElement = targetElement ;
+	this.Mode = FCK_EDITMODE_WYSIWYG ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKEditingArea_Cleanup ) ;
+}
+
+
+/**
+ * @param {String} html The complete HTML for the page, including DOCTYPE and the <html> tag.
+ */
+FCKEditingArea.prototype.Start = function( html, secondCall )
+{
+	var eTargetElement	= this.TargetElement ;
+	var oTargetDocument	= FCKTools.GetElementDocument( eTargetElement ) ;
+
+	// Remove all child nodes from the target.
+	while( eTargetElement.childNodes.length > 0 )
+		eTargetElement.removeChild( eTargetElement.childNodes[0] ) ;
+
+	if ( this.Mode == FCK_EDITMODE_WYSIWYG )
+	{
+		// Create the editing area IFRAME.
+		var oIFrame = this.IFrame = oTargetDocument.createElement( 'iframe' ) ;
+		oIFrame.src = 'javascript:void(0)' ;
+		oIFrame.frameBorder = 0 ;
+		oIFrame.width = oIFrame.height = '100%' ;
+
+		// Append the new IFRAME to the target.
+		eTargetElement.appendChild( oIFrame ) ;
+
+		// IE has a bug with the <base> tag... it must have a </base> closer,
+		// otherwise the all sucessive tags will be set as children nodes of the <base>.
+		if ( FCKBrowserInfo.IsIE )
+			html = html.replace( /(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi, '$1></base>' ) ;
+		else if ( !secondCall )
+		{
+			// If nothing in the body, place a BOGUS tag so the cursor will appear.
+			if ( FCKBrowserInfo.IsGecko )
+				html = html.replace( /(<body[^>]*>)\s*(<\/body>)/i, '$1' + GECKO_BOGUS + '$2' ) ;
+
+			// Gecko moves some tags out of the body to the head, so we must use
+			// innerHTML to set the body contents (SF BUG 1526154).
+
+			// Extract the BODY contents from the html.
+			var oMatch = html.match( FCKRegexLib.BodyContents ) ;
+
+			if ( oMatch )
+			{
+				html =
+					oMatch[1] +					// This is the HTML until the <body...> tag, inclusive.
+					'&nbsp;' +
+					oMatch[3] ;					// This is the HTML from the </body> tag, inclusive.
+
+				this._BodyHTML = oMatch[2] ;	// This is the BODY tag contents.
+			}
+			else
+				this._BodyHTML = html ;			// Invalid HTML input.
+		}
+
+		// Get the window and document objects used to interact with the newly created IFRAME.
+		this.Window = oIFrame.contentWindow ;
+
+		// IE: Avoid JavaScript errors thrown by the editing are source (like tags events).
+		// TODO: This error handler is not being fired.
+		// this.Window.onerror = function() { alert( 'Error!' ) ; return true ; }
+
+		var oDoc = this.Document = this.Window.document ;
+
+		oDoc.open() ;
+		oDoc.write( html ) ;
+		oDoc.close() ;
+
+		// Firefox 1.0.x is buggy... ohh yes... so let's do it two times and it
+		// will magicaly work.
+		if ( FCKBrowserInfo.IsGecko10 && !secondCall )
+		{
+			this.Start( html, true ) ;
+			return ;
+		}
+
+		this.Window._FCKEditingArea = this ;
+
+		// FF 1.0.x is buggy... we must wait a lot to enable editing because
+		// sometimes the content simply disappears, for example when pasting
+		// "bla1!<img src='some_url'>!bla2" in the source and then switching
+		// back to design.
+		if ( FCKBrowserInfo.IsGecko10 )
+			this.Window.setTimeout( FCKEditingArea_CompleteStart, 500 ) ;
+		else
+			FCKEditingArea_CompleteStart.call( this.Window ) ;
+	}
+	else
+	{
+		var eTextarea = this.Textarea = oTargetDocument.createElement( 'textarea' ) ;
+		eTextarea.className = 'SourceField' ;
+		eTextarea.dir = 'ltr' ;
+		eTextarea.style.width = eTextarea.style.height = '100%' ;
+		eTextarea.style.border = 'none' ;
+		eTargetElement.appendChild( eTextarea ) ;
+
+		eTextarea.value = html  ;
+
+		// Fire the "OnLoad" event.
+		FCKTools.RunFunction( this.OnLoad ) ;
+	}
+}
+
+// "this" here is FCKEditingArea.Window
+function FCKEditingArea_CompleteStart()
+{
+	// Of Firefox, the DOM takes a little to become available. So we must wait for it in a loop.
+	if ( !this.document.body )
+	{
+		this.setTimeout( FCKEditingArea_CompleteStart, 50 ) ;
+		return ;
+	}
+
+	var oEditorArea = this._FCKEditingArea ;
+	oEditorArea.MakeEditable() ;
+
+	// Fire the "OnLoad" event.
+	FCKTools.RunFunction( oEditorArea.OnLoad ) ;
+}
+
+FCKEditingArea.prototype.MakeEditable = function()
+{
+	var oDoc = this.Document ;
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		oDoc.body.contentEditable = true ;
+
+		/* The following commands don't throw errors, but have no effect.
+		oDoc.execCommand( 'AutoDetect', false, false ) ;
+		oDoc.execCommand( 'KeepSelection', false, true ) ;
+		*/
+	}
+	else
+	{
+		try
+		{
+			// Disable Firefox 2 Spell Checker.
+			oDoc.body.spellcheck = ( this.FFSpellChecker !== false ) ;
+
+			if ( this._BodyHTML )
+			{
+				oDoc.body.innerHTML = this._BodyHTML ;
+				this._BodyHTML = null ;
+			}
+
+			oDoc.designMode = 'on' ;
+
+			// Tell Gecko to use or not the <SPAN> tag for the bold, italic and underline.
+			try
+			{
+				oDoc.execCommand( 'styleWithCSS', false, FCKConfig.GeckoUseSPAN ) ;
+			}
+			catch (e)
+			{
+				// As evidenced here, useCSS is deprecated in favor of styleWithCSS:
+				// http://www.mozilla.org/editor/midas-spec.html
+				oDoc.execCommand( 'useCSS', false, !FCKConfig.GeckoUseSPAN ) ;
+			}
+
+			// Analysing Firefox 1.5 source code, it seams that there is support for a
+			// "insertBrOnReturn" command. Applying it gives no error, but it doesn't
+			// gives the same behavior that you have with IE. It works only if you are
+			// already inside a paragraph and it doesn't render correctly in the first enter.
+			// oDoc.execCommand( 'insertBrOnReturn', false, false ) ;
+
+			// Tell Gecko (Firefox 1.5+) to enable or not live resizing of objects (by Alfonso Martinez)
+			oDoc.execCommand( 'enableObjectResizing', false, !FCKConfig.DisableObjectResizing ) ;
+
+			// Disable the standard table editing features of Firefox.
+			oDoc.execCommand( 'enableInlineTableEditing', false, !FCKConfig.DisableFFTableHandles ) ;
+		}
+		catch (e) {}
+	}
+}
+
+FCKEditingArea.prototype.Focus = function()
+{
+	try
+	{
+		if ( this.Mode == FCK_EDITMODE_WYSIWYG )
+		{
+			// The following check is important to avoid IE entering in a focus loop. Ref:
+			// http://sourceforge.net/tracker/index.php?func=detail&aid=1567060&group_id=75348&atid=543653
+			if ( FCKBrowserInfo.IsIE && this.Document.hasFocus() )
+				return ;
+
+			if ( FCKBrowserInfo.IsSafari )
+				this.IFrame.focus() ;
+			else
+			{
+				this.Window.focus() ;
+			}
+		}
+		else
+		{
+			var oDoc = FCKTools.GetElementDocument( this.Textarea ) ;
+			if ( (!oDoc.hasFocus || oDoc.hasFocus() ) && oDoc.activeElement == this.Textarea )
+				return ;
+
+			this.Textarea.focus() ;
+		}
+	}
+	catch(e) {}
+}
+
+function FCKEditingArea_Cleanup()
+{
+	this.TargetElement = null ;
+	this.IFrame = null ;
+	this.Document = null ;
+	this.Textarea = null ;
+
+	if ( this.Window )
+	{
+		this.Window._FCKEditingArea = null ;
+		this.Window = null ;
+	}
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckelementpath.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckelementpath.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckelementpath.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,66 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Manages the DOM anscensors element list of a specific DOM node
+ * (limited to body, inclusive).
+ */
+
+// TODO: Implement IE cleanup.
+
+var FCKElementPath = function( lastNode )
+{
+	var eBlock = null ;
+	var eBlockLimit = null ;
+
+	var aElements = new Array() ;
+
+	var e = lastNode ;
+	while ( e )
+	{
+		if ( e.nodeType == 1 )
+		{
+			if ( !this.LastElement )
+				this.LastElement = e ;
+
+			var sElementName = e.nodeName.toLowerCase() ;
+
+			if ( !eBlockLimit )
+			{
+				if ( !eBlock && FCKListsLib.PathBlockElements[ sElementName ] != null )
+					eBlock = e ;
+
+				if ( FCKListsLib.PathBlockLimitElements[ sElementName ] != null )
+					eBlockLimit = e ;
+			}
+
+			aElements.push( e ) ;
+
+			if ( sElementName == 'body' )
+				break ;
+		}
+		e = e.parentNode ;
+	}
+
+	this.Block = eBlock ;
+	this.BlockLimit = eBlockLimit ;
+	this.Elements = aElements ;
+}
+
+

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckenterkey.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckenterkey.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckenterkey.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,556 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Controls the [Enter] keystroke behavior in a document.
+ */
+
+/*
+ *	Constructor.
+ *		@targetDocument : the target document.
+ *		@enterMode : the behavior for the <Enter> keystroke.
+ *			May be "p", "div", "br". Default is "p".
+ *		@shiftEnterMode : the behavior for the <Shift>+<Enter> keystroke.
+ *			May be "p", "div", "br". Defaults to "br".
+ */
+var FCKEnterKey = function( targetWindow, enterMode, shiftEnterMode )
+{
+	this.Window			= targetWindow ;
+	this.EnterMode		= enterMode || 'p' ;
+	this.ShiftEnterMode	= shiftEnterMode || 'br' ;
+
+	// Setup the Keystroke Handler.
+	var oKeystrokeHandler = new FCKKeystrokeHandler( false ) ;
+	oKeystrokeHandler._EnterKey = this ;
+	oKeystrokeHandler.OnKeystroke = FCKEnterKey_OnKeystroke ;
+
+	oKeystrokeHandler.SetKeystrokes( [
+		[ 13		, 'Enter' ],
+		[ SHIFT + 13, 'ShiftEnter' ],
+		[ 8			, 'Backspace' ],
+		[ 46		, 'Delete' ]
+	] ) ;
+
+	oKeystrokeHandler.AttachToElement( targetWindow.document ) ;
+}
+
+
+function FCKEnterKey_OnKeystroke(  keyCombination, keystrokeValue )
+{
+	var oEnterKey = this._EnterKey ;
+
+	try
+	{
+		switch ( keystrokeValue )
+		{
+			case 'Enter' :
+				return oEnterKey.DoEnter() ;
+				break ;
+
+			case 'ShiftEnter' :
+				return oEnterKey.DoShiftEnter() ;
+				break ;
+
+			case 'Backspace' :
+				return oEnterKey.DoBackspace() ;
+				break ;
+
+			case 'Delete' :
+				return oEnterKey.DoDelete() ;
+		}
+	}
+	catch (e)
+	{
+		// If for any reason we are not able to handle it, go
+		// ahead with the browser default behavior.
+	}
+
+	return false ;
+}
+
+/*
+ * Executes the <Enter> key behavior.
+ */
+FCKEnterKey.prototype.DoEnter = function( mode, hasShift )
+{
+	this._HasShift = ( hasShift === true ) ;
+
+	var sMode = mode || this.EnterMode ;
+
+	if ( sMode == 'br' )
+		return this._ExecuteEnterBr() ;
+	else
+		return this._ExecuteEnterBlock( sMode ) ;
+}
+
+/*
+ * Executes the <Shift>+<Enter> key behavior.
+ */
+FCKEnterKey.prototype.DoShiftEnter = function()
+{
+	return this.DoEnter( this.ShiftEnterMode, true ) ;
+}
+
+/*
+ * Executes the <Backspace> key behavior.
+ */
+FCKEnterKey.prototype.DoBackspace = function()
+{
+	var bCustom = false ;
+
+	// Get the current selection.
+	var oRange = new FCKDomRange( this.Window ) ;
+	oRange.MoveToSelection() ;
+
+	if ( !oRange.CheckIsCollapsed() )
+		return false ;
+
+	var oStartBlock = oRange.StartBlock ;
+	var oEndBlock = oRange.EndBlock ;
+
+	// The selection boundaries must be in the same "block limit" element
+	if ( oRange.StartBlockLimit == oRange.EndBlockLimit && oStartBlock && oEndBlock )
+	{
+		if ( !oRange.CheckIsCollapsed() )
+		{
+			var bEndOfBlock = oRange.CheckEndOfBlock() ;
+
+			oRange.DeleteContents() ;
+
+			if ( oStartBlock != oEndBlock )
+			{
+				oRange.SetStart(oEndBlock,1) ;
+				oRange.SetEnd(oEndBlock,1) ;
+
+//				if ( bEndOfBlock )
+//					oEndBlock.parentNode.removeChild( oEndBlock ) ;
+			}
+
+			oRange.Select() ;
+
+			bCustom = ( oStartBlock == oEndBlock ) ;
+		}
+
+		if ( oRange.CheckStartOfBlock() )
+		{
+			var oCurrentBlock = oRange.StartBlock ;
+
+			var ePrevious = FCKDomTools.GetPreviousSourceElement( oCurrentBlock, true, [ 'BODY', oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
+
+			bCustom = this._ExecuteBackspace( oRange, ePrevious, oCurrentBlock ) ;
+		}
+		else if ( FCKBrowserInfo.IsGecko )
+		{
+			// Firefox looses the selection when executing CheckStartOfBlock, so we must reselect.
+			oRange.Select() ;
+		}
+	}
+
+	oRange.Release() ;
+	return bCustom ;
+}
+
+FCKEnterKey.prototype._ExecuteBackspace = function( range, previous, currentBlock )
+{
+	var bCustom = false ;
+
+	// We could be in a nested LI.
+	if ( !previous && currentBlock.nodeName.IEquals( 'LI' ) && currentBlock.parentNode.parentNode.nodeName.IEquals( 'LI' ) )
+	{
+		this._OutdentWithSelection( currentBlock, range ) ;
+		return true ;
+	}
+
+	if ( previous && previous.nodeName.IEquals( 'LI' ) )
+	{
+		var oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
+
+		while ( oNestedList )
+		{
+			previous = FCKDomTools.GetLastChild( oNestedList, 'LI' ) ;
+			oNestedList = FCKDomTools.GetLastChild( previous, ['UL','OL'] ) ;
+		}
+	}
+
+	if ( previous && currentBlock )
+	{
+		// If we are in a LI, and the previous block is not an LI, we must outdent it.
+		if ( currentBlock.nodeName.IEquals( 'LI' ) && !previous.nodeName.IEquals( 'LI' ) )
+		{
+			this._OutdentWithSelection( currentBlock, range ) ;
+			return true ;
+		}
+
+		// Take a reference to the parent for post processing cleanup.
+		var oCurrentParent = currentBlock.parentNode ;
+
+		var sPreviousName = previous.nodeName.toLowerCase() ;
+		if ( FCKListsLib.EmptyElements[ sPreviousName ] != null || sPreviousName == 'table' )
+		{
+			FCKDomTools.RemoveNode( previous ) ;
+			bCustom = true ;
+		}
+		else
+		{
+			// Remove the current block.
+			FCKDomTools.RemoveNode( currentBlock ) ;
+
+			// Remove any empty tag left by the block removal.
+			while ( oCurrentParent.innerHTML.Trim().length == 0 )
+			{
+				var oParent = oCurrentParent.parentNode ;
+				oParent.removeChild( oCurrentParent ) ;
+				oCurrentParent = oParent ;
+			}
+
+			// Cleanup the previous and the current elements.
+			FCKDomTools.TrimNode( currentBlock ) ;
+			FCKDomTools.TrimNode( previous ) ;
+
+			// Append a space to the previous.
+			// Maybe it is not always desirable...
+			// previous.appendChild( this.Window.document.createTextNode( ' ' ) ) ;
+
+			// Set the range to the end of the previous element and bookmark it.
+			range.SetStart( previous, 2 ) ;
+			range.Collapse( true ) ;
+			var oBookmark = range.CreateBookmark() ;
+
+			// Move the contents of the block to the previous element and delete it.
+			FCKDomTools.MoveChildren( currentBlock, previous ) ;
+
+			// Place the selection at the bookmark.
+			range.MoveToBookmark( oBookmark ) ;
+			range.Select() ;
+
+			bCustom = true ;
+		}
+	}
+
+	return bCustom ;
+}
+
+/*
+ * Executes the <Delete> key behavior.
+ */
+FCKEnterKey.prototype.DoDelete = function()
+{
+	// The <Delete> has the same effect as the <Backspace>, so we have the same
+	// results if we just move to the next block and apply the same <Backspace> logic.
+
+	var bCustom = false ;
+
+	// Get the current selection.
+	var oRange = new FCKDomRange( this.Window ) ;
+	oRange.MoveToSelection() ;
+
+	// There is just one special case for collapsed selections at the end of a block.
+	if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGecko ) )
+	{
+		var oCurrentBlock = oRange.StartBlock ;
+
+		var eNext = FCKDomTools.GetNextSourceElement( oCurrentBlock, true, [ oRange.StartBlockLimit.nodeName ], ['UL','OL'] ) ;
+
+		bCustom = this._ExecuteBackspace( oRange, oCurrentBlock, eNext ) ;
+	}
+
+	oRange.Release() ;
+	return bCustom ;
+}
+
+FCKEnterKey.prototype._ExecuteEnterBlock = function( blockTag, range )
+{
+	// Get the current selection.
+	var oRange = range || new FCKDomRange( this.Window ) ;
+
+	// If we don't have a range, move it to the selection.
+	if ( !range )
+		oRange.MoveToSelection() ;
+
+	// The selection boundaries must be in the same "block limit" element.
+	if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
+	{
+		// If the StartBlock or EndBlock are not available (for text without a
+		// block tag), we must fix them, by moving the text to a block.
+		if ( !oRange.StartBlock )
+			this._FixBlock( oRange, true, blockTag ) ;
+
+		if ( !oRange.EndBlock )
+			this._FixBlock( oRange, false, blockTag ) ;
+
+		// Get the current blocks.
+		var eStartBlock	= oRange.StartBlock ;
+		var eEndBlock	= oRange.EndBlock ;
+
+		// Delete the current selection.
+		if ( !oRange.CheckIsEmpty() )
+			oRange.DeleteContents() ;
+
+		// If the selection boundaries are in the same block element
+		if ( eStartBlock == eEndBlock )
+		{
+			var eNewBlock ;
+
+			var bIsStartOfBlock	= oRange.CheckStartOfBlock() ;
+			var bIsEndOfBlock	= oRange.CheckEndOfBlock() ;
+
+			if ( bIsStartOfBlock && !bIsEndOfBlock )
+			{
+				eNewBlock = eStartBlock.cloneNode(false) ;
+
+				if ( FCKBrowserInfo.IsGeckoLike )
+					eNewBlock.innerHTML = GECKO_BOGUS ;
+
+				// Place the new block before the current block element.
+				eStartBlock.parentNode.insertBefore( eNewBlock, eStartBlock ) ;
+
+				// This is tricky, but to make the new block visible correctly
+				// we must select it.
+				if ( FCKBrowserInfo.IsIE )
+				{
+					// Move the selection to the new block.
+					oRange.MoveToNodeContents( eNewBlock ) ;
+
+					oRange.Select() ;
+				}
+
+				// Move the selection to the new block.
+				oRange.MoveToElementEditStart( eStartBlock ) ;
+			}
+			else
+			{
+				// Check if the selection is at the end of the block.
+				if ( bIsEndOfBlock )
+				{
+					var sStartBlockTag = eStartBlock.tagName.toUpperCase() ;
+
+					// If the entire block is selected, and we are in a LI, let's decrease its indentation.
+					if ( bIsStartOfBlock && sStartBlockTag == 'LI' )
+					{
+						this._OutdentWithSelection( eStartBlock, oRange ) ;
+						oRange.Release() ;
+						return true ;
+					}
+					else
+					{
+						// If is a header tag, or we are in a Shift+Enter (#77),
+						// create a new block element.
+						if ( (/^H[1-6]$/).test( sStartBlockTag ) || this._HasShift )
+							eNewBlock = this.Window.document.createElement( blockTag ) ;
+						// Otherwise, duplicate the current block.
+						else
+						{
+							eNewBlock = eStartBlock.cloneNode(false) ;
+							this._RecreateEndingTree( eStartBlock, eNewBlock ) ;
+						}
+
+						if ( FCKBrowserInfo.IsGeckoLike )
+						{
+							eNewBlock.innerHTML = GECKO_BOGUS ;
+
+							// If the entire block is selected, let's add a bogus in the start block.
+							if ( bIsStartOfBlock )
+								eStartBlock.innerHTML = GECKO_BOGUS ;
+						}
+					}
+				}
+				else
+				{
+					// Extract the contents of the block from the selection point to the end of its contents.
+					oRange.SetEnd( eStartBlock, 2 ) ;
+					var eDocFrag = oRange.ExtractContents() ;
+
+					// Duplicate the block element after it.
+					eNewBlock = eStartBlock.cloneNode(false) ;
+
+					// It could be that we are in a LI with a child UL/OL. Insert a bogus to give us space to type.
+					FCKDomTools.TrimNode( eDocFrag.RootNode ) ;
+					if ( eDocFrag.RootNode.firstChild.nodeType == 1 && eDocFrag.RootNode.firstChild.tagName.toUpperCase().Equals( 'UL', 'OL' ) )
+						eNewBlock.innerHTML = GECKO_BOGUS ;
+
+					// Place the extracted contents in the duplicated block.
+					eDocFrag.AppendTo( eNewBlock ) ;
+
+					if ( FCKBrowserInfo.IsGecko )
+					{
+						// In Gecko, the last child node must be a bogus <br>.
+						this._AppendBogusBr( eStartBlock ) ;
+						this._AppendBogusBr( eNewBlock ) ;
+					}
+				}
+
+				if ( eNewBlock )
+				{
+					FCKDomTools.InsertAfterNode( eStartBlock, eNewBlock ) ;
+
+					// Move the selection to the new block.
+					oRange.MoveToElementEditStart( eNewBlock ) ;
+
+					if ( FCKBrowserInfo.IsGecko )
+						eNewBlock.scrollIntoView( false ) ;
+				}
+			}
+		}
+		else
+		{
+			// Move the selection to the end block.
+			oRange.MoveToElementEditStart( eEndBlock ) ;
+		}
+
+		oRange.Select() ;
+	}
+
+	// Release the resources used by the range.
+	oRange.Release() ;
+
+	return true ;
+}
+
+FCKEnterKey.prototype._ExecuteEnterBr = function( blockTag )
+{
+	// Get the current selection.
+	var oRange = new FCKDomRange( this.Window ) ;
+	oRange.MoveToSelection() ;
+
+	// The selection boundaries must be in the same "block limit" element.
+	if ( oRange.StartBlockLimit == oRange.EndBlockLimit )
+	{
+		oRange.DeleteContents() ;
+
+		// Get the new selection (it is collapsed at this point).
+		oRange.MoveToSelection() ;
+
+		var bIsStartOfBlock	= oRange.CheckStartOfBlock() ;
+		var bIsEndOfBlock	= oRange.CheckEndOfBlock() ;
+
+		var sStartBlockTag = oRange.StartBlock ? oRange.StartBlock.tagName.toUpperCase() : '' ;
+
+		var bHasShift = this._HasShift ;
+
+		if ( !bHasShift && sStartBlockTag == 'LI' )
+			return this._ExecuteEnterBlock( null, oRange ) ;
+
+		// If we are at the end of a header block.
+		if ( !bHasShift && bIsEndOfBlock && (/^H[1-6]$/).test( sStartBlockTag ) )
+		{
+			FCKDebug.Output( 'BR - Header' ) ;
+
+			// Insert a BR after the current paragraph.
+			FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createElement( 'br' ) ) ;
+
+			// The space is required by Gecko only to make the cursor blink.
+			if ( FCKBrowserInfo.IsGecko )
+				FCKDomTools.InsertAfterNode( oRange.StartBlock, this.Window.document.createTextNode( '' ) ) ;
+
+			// IE and Gecko have different behaviors regarding the position.
+			oRange.SetStart( oRange.StartBlock.nextSibling, FCKBrowserInfo.IsIE ? 3 : 1 ) ;
+		}
+		else
+		{
+			FCKDebug.Output( 'BR - No Header' ) ;
+
+			var eBr = this.Window.document.createElement( 'br' ) ;
+
+			oRange.InsertNode( eBr ) ;
+
+			// The space is required by Gecko only to make the cursor blink.
+			if ( FCKBrowserInfo.IsGecko )
+				FCKDomTools.InsertAfterNode( eBr, this.Window.document.createTextNode( '' ) ) ;
+
+			// If we are at the end of a block, we must be sure the bogus node is available in that block.
+			if ( bIsEndOfBlock && FCKBrowserInfo.IsGecko )
+				this._AppendBogusBr( eBr.parentNode ) ;
+
+			if ( FCKBrowserInfo.IsIE )
+				oRange.SetStart( eBr, 4 ) ;
+			else
+				oRange.SetStart( eBr.nextSibling, 1 ) ;
+
+		}
+
+		// This collapse guarantees the cursor will be blinking.
+		oRange.Collapse( true ) ;
+
+		oRange.Select() ;
+	}
+
+	// Release the resources used by the range.
+	oRange.Release() ;
+
+	return true ;
+}
+
+// Transform a block without a block tag in a valid block (orphan text in the body or td, usually).
+FCKEnterKey.prototype._FixBlock = function( range, isStart, blockTag )
+{
+	// Bookmark the range so we can restore it later.
+	var oBookmark = range.CreateBookmark() ;
+
+	// Collapse the range to the requested ending boundary.
+	range.Collapse( isStart ) ;
+
+	// Expands it to the block contents.
+	range.Expand( 'block_contents' ) ;
+
+	// Create the fixed block.
+	var oFixedBlock = this.Window.document.createElement( blockTag ) ;
+
+	// Move the contents of the temporary range to the fixed block.
+	range.ExtractContents().AppendTo( oFixedBlock ) ;
+	FCKDomTools.TrimNode( oFixedBlock ) ;
+
+	// Insert the fixed block into the DOM.
+	range.InsertNode( oFixedBlock ) ;
+
+	// Move the range back to the bookmarked place.
+	range.MoveToBookmark( oBookmark ) ;
+}
+
+// Appends a bogus <br> at the end of the element, if not yet available.
+FCKEnterKey.prototype._AppendBogusBr = function( element )
+{
+	var eLastChild = element.getElementsByTagName('br') ;
+
+	if ( eLastChild )
+		eLastChild = eLastChild[ eLastChild.legth - 1 ] ;
+
+	if ( !eLastChild || eLastChild.getAttribute( 'type', 2 ) != '_moz' )
+		element.appendChild( FCKTools.CreateBogusBR( this.Window.document ) ) ;
+}
+
+// Recreate the elements tree at the end of the source block, at the beginning
+// of the target block. Eg.:
+//	If source = <p><u>Some</u> sample <b><i>text</i></b></p> then target = <p><b><i></i></b></p>
+//	If source = <p><u>Some</u> sample text</p> then target = <p></p>
+FCKEnterKey.prototype._RecreateEndingTree = function( source, target )
+{
+	while ( ( source = source.lastChild ) && source.nodeType == 1 && FCKListsLib.InlineChildReqElements[ source.nodeName.toLowerCase() ] != null )
+		target = target.insertBefore( source.cloneNode( false ), target.firstChild ) ;
+}
+
+// Outdents a LI, maintaining the seletion defined on a range.
+FCKEnterKey.prototype._OutdentWithSelection = function( li, range )
+{
+	var oBookmark = range.CreateBookmark() ;
+
+	FCKListHandler.OutdentListItem( li ) ;
+
+	range.MoveToBookmark( oBookmark ) ;
+	range.Select() ;
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckevents.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckevents.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckevents.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,50 +1,53 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckevents.js
- * 	FCKEvents Class: used to handle events is a advanced way.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKEvents Class: used to handle events is a advanced way.
  */
 
-var FCKEvents ;
+var FCKEvents = function( eventsOwner )
+{
+	this.Owner = eventsOwner ;
+	this._RegisteredEvents = new Object() ;
+}
 
-if ( !( FCKEvents = NS.FCKEvents ) )
+FCKEvents.prototype.AttachEvent = function( eventName, functionPointer )
 {
-	FCKEvents = NS.FCKEvents = function( eventsOwner )
-	{
-		this.Owner = eventsOwner ;
-		this.RegisteredEvents = new Object() ;
-	}
+	var aTargets ;
 
-	FCKEvents.prototype.AttachEvent = function( eventName, functionPointer )
-	{
-		if ( ! this.RegisteredEvents[ eventName ] ) this.RegisteredEvents[ eventName ] = new Array() ;
+	if ( !( aTargets = this._RegisteredEvents[ eventName ] ) )
+		this._RegisteredEvents[ eventName ] = [ functionPointer ] ;
+	else
+		aTargets.push( functionPointer ) ;
+}
 
-		this.RegisteredEvents[ eventName ][ this.RegisteredEvents[ eventName ].length ] = functionPointer ;
-	}
+FCKEvents.prototype.FireEvent = function( eventName, params )
+{
+	var bReturnValue = true ;
 
-	FCKEvents.prototype.FireEvent = function( eventName, params )
+	var oCalls = this._RegisteredEvents[ eventName ] ;
+
+	if ( oCalls )
 	{
-		var bReturnValue = true ;
+		for ( var i = 0 ; i < oCalls.length ; i++ )
+			bReturnValue = ( oCalls[ i ]( this.Owner, params ) && bReturnValue ) ;
+	}
 
-		var oCalls = this.RegisteredEvents[ eventName ] ;
-		if ( oCalls )
-		{
-			for ( var i = 0 ; i < oCalls.length ; i++ )
-				bReturnValue = ( oCalls[ i ]( this.Owner, params ) && bReturnValue ) ;
-		}
-
-		return bReturnValue ;
-	}
-}
\ No newline at end of file
+	return bReturnValue ;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckicon.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckicon.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckicon.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,98 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKIcon Class: renders an icon from a single image, a strip or even a
+ * spacer.
+ */
+
+var FCKIcon = function( iconPathOrStripInfoArray )
+{
+	var sTypeOf = iconPathOrStripInfoArray ? typeof( iconPathOrStripInfoArray ) : 'undefined' ;
+	switch ( sTypeOf )
+	{
+		case 'number' :
+			this.Path = FCKConfig.SkinPath + 'fck_strip.gif' ;
+			this.Size = 16 ;
+			this.Position = iconPathOrStripInfoArray ;
+			break ;
+
+		case 'undefined' :
+			this.Path = FCK_SPACER_PATH ;
+			break ;
+
+		case 'string' :
+			this.Path = iconPathOrStripInfoArray ;
+			break ;
+
+		default :
+			// It is an array in the format [ StripFilePath, IconSize, IconPosition ]
+			this.Path		= iconPathOrStripInfoArray[0] ;
+			this.Size		= iconPathOrStripInfoArray[1] ;
+			this.Position	= iconPathOrStripInfoArray[2] ;
+	}
+}
+
+FCKIcon.prototype.CreateIconElement = function( document )
+{
+	var eIcon, eIconImage ;
+
+	if ( this.Position )		// It is using an icons strip image.
+	{
+		var sPos = '-' + ( ( this.Position - 1 ) * this.Size ) + 'px' ;
+
+		if ( FCKBrowserInfo.IsIE )
+		{
+			// <div class="TB_Button_Image"><img src="strip.gif" style="top:-16px"></div>
+
+			eIcon = document.createElement( 'DIV' ) ;
+
+			eIconImage = eIcon.appendChild( document.createElement( 'IMG' ) ) ;
+			eIconImage.src = this.Path ;
+			eIconImage.style.top = sPos ;
+		}
+		else
+		{
+			// <img class="TB_Button_Image" src="spacer.gif" style="background-position: 0px -16px;background-image: url(strip.gif);">
+
+			eIcon = document.createElement( 'IMG' ) ;
+			eIcon.src = FCK_SPACER_PATH ;
+			eIcon.style.backgroundPosition	= '0px ' + sPos ;
+			eIcon.style.backgroundImage		= 'url(' + this.Path + ')' ;
+		}
+	}
+	else					// It is using a single icon image.
+	{
+		// This is not working well with IE. See notes bellow.
+		// <img class="TB_Button_Image" src="smiley.gif">
+//		eIcon = document.createElement( 'IMG' ) ;
+//		eIcon.src = this.Path ? this.Path : FCK_SPACER_PATH ;
+
+		// IE makes the button 1px higher if using the <img> directly, so we
+		// are changing to the <div> system to clip the image correctly.
+		eIcon = document.createElement( 'DIV' ) ;
+
+		eIconImage = eIcon.appendChild( document.createElement( 'IMG' ) ) ;
+		eIconImage.src = this.Path ? this.Path : FCK_SPACER_PATH ;
+	}
+
+	eIcon.className = 'TB_Button_Image' ;
+
+	return eIcon ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckiecleanup.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckiecleanup.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckiecleanup.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,68 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKIECleanup Class: a generic class used as a tool to remove IE leaks.
+ */
+
+var	FCKIECleanup = function( attachWindow )
+{
+	// If the attachWindow already have a cleanup object, jusgt use that one.
+	if ( attachWindow._FCKCleanupObj )
+		this.Items = attachWindow._FCKCleanupObj.Items ;
+	else
+	{
+		this.Items = new Array() ;
+
+		attachWindow._FCKCleanupObj = this ;
+		FCKTools.AddEventListenerEx( attachWindow, 'unload', FCKIECleanup_Cleanup ) ;
+//		attachWindow.attachEvent( 'onunload', FCKIECleanup_Cleanup ) ;
+	}
+}
+
+FCKIECleanup.prototype.AddItem = function( dirtyItem, cleanupFunction )
+{
+	this.Items.push( [ dirtyItem, cleanupFunction ] ) ;
+}
+
+function FCKIECleanup_Cleanup()
+{
+	if ( !this._FCKCleanupObj )
+		return ;
+
+	var aItems = this._FCKCleanupObj.Items ;
+
+	while ( aItems.length > 0 )
+	{
+
+		// It is important to remove from the end to the beginning (pop()),
+		// because of the order things get created in the editor. In the code,
+		// elements in deeper position in the DOM are placed at the end of the
+		// cleanup function, so we must cleanup then first, otherwise IE could
+		// throw some crazy memory errors (IE bug).
+		var oItem = aItems.pop() ;
+		if ( oItem )
+			oItem[1].call( oItem[0] ) ;
+	}
+
+	this._FCKCleanupObj = null ;
+
+	if ( CollectGarbage )
+		CollectGarbage() ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckimagepreloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckimagepreloader.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckimagepreloader.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,68 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preload a list of images, firing an event when complete.
+ */
+
+var FCKImagePreloader = function()
+{
+	this._Images = new Array() ;
+}
+
+FCKImagePreloader.prototype =
+{
+	AddImages : function( images )
+	{
+		if ( typeof( images ) == 'string' )
+			images = images.split( ';' ) ;
+
+		this._Images = this._Images.concat( images ) ;
+	},
+
+	Start : function()
+	{
+		var aImages = this._Images ;
+		this._PreloadCount = aImages.length ;
+
+		for ( var i = 0 ; i < aImages.length ; i++ )
+		{
+			var eImg = document.createElement( 'img' ) ;
+			eImg.onload = eImg.onerror = _FCKImagePreloader_OnImage ;
+			eImg._FCKImagePreloader = this ;
+			eImg.src = aImages[i] ;
+
+			_FCKImagePreloader_ImageCache.push( eImg ) ;
+		}
+	}
+};
+
+// All preloaded images must be placed in a global array, otherwise the preload
+// magic will not happen.
+var _FCKImagePreloader_ImageCache = new Array() ;
+
+function _FCKImagePreloader_OnImage()
+{
+	var oImagePreloader = this._FCKImagePreloader ;
+
+	if ( (--oImagePreloader._PreloadCount) == 0 && oImagePreloader.OnComplete )
+		oImagePreloader.OnComplete() ;
+
+	this._FCKImagePreloader = null ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckkeystrokehandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckkeystrokehandler.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckkeystrokehandler.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,136 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Control keyboard keystroke combinations.
+ */
+
+var FCKKeystrokeHandler = function( cancelCtrlDefaults )
+{
+	this.Keystrokes = new Object() ;
+	this.CancelCtrlDefaults = ( cancelCtrlDefaults !== false ) ;
+}
+
+/*
+ * Listen to keystroke events in an element or DOM document object.
+ *		@target: The element or document to listen to keystroke events.
+ */
+FCKKeystrokeHandler.prototype.AttachToElement = function( target )
+{
+	// For newer browsers, it is enough to listen to the keydown event only.
+	// Some browsers instead, don't cancel key events in the keydown, but in the
+	// keypress. So we must do a longer trip in those cases.
+	FCKTools.AddEventListenerEx( target, 'keydown', _FCKKeystrokeHandler_OnKeyDown, this ) ;
+	if ( FCKBrowserInfo.IsGecko10 || FCKBrowserInfo.IsOpera || ( FCKBrowserInfo.IsGecko && FCKBrowserInfo.IsMac ) )
+		FCKTools.AddEventListenerEx( target, 'keypress', _FCKKeystrokeHandler_OnKeyPress, this ) ;
+}
+
+/*
+ * Sets a list of keystrokes. It can receive either a single array or "n"
+ * arguments, each one being an array of 1 or 2 elemenst. The first element
+ * is the keystroke combination, and the second is the value to assign to it.
+ * If the second element is missing, the keystroke definition is removed.
+ */
+FCKKeystrokeHandler.prototype.SetKeystrokes = function()
+{
+	// Look through the arguments.
+	for ( var i = 0 ; i < arguments.length ; i++ )
+	{
+		var keyDef = arguments[i] ;
+
+		if ( typeof( keyDef[0] ) == 'object' )		// It is an array with arrays defining the keystrokes.
+			this.SetKeystrokes.apply( this, keyDef ) ;
+		else
+		{
+			if ( keyDef.length == 1 )		// If it has only one element, removed the keystroke.
+				delete this.Keystrokes[ keyDef[0] ] ;
+			else							// Otherwise add it.
+				this.Keystrokes[ keyDef[0] ] = keyDef[1] === true ? true : keyDef ;
+		}
+	}
+}
+
+function _FCKKeystrokeHandler_OnKeyDown( ev, keystrokeHandler )
+{
+	// Get the key code.
+	var keystroke = ev.keyCode || ev.which ;
+
+	// Combine it with the CTRL, SHIFT and ALT states.
+	var keyModifiers = 0 ;
+
+	if ( ev.ctrlKey || ev.metaKey )
+		keyModifiers += CTRL ;
+
+	if ( ev.shiftKey )
+		keyModifiers += SHIFT ;
+
+	if ( ev.altKey )
+		keyModifiers += ALT ;
+
+	var keyCombination = keystroke + keyModifiers ;
+
+	var cancelIt = keystrokeHandler._CancelIt = false ;
+
+	// Look for its definition availability.
+	var keystrokeValue = keystrokeHandler.Keystrokes[ keyCombination ] ;
+
+//	FCKDebug.Output( 'KeyDown: ' + keyCombination + ' - Value: ' + keystrokeValue ) ;
+
+	// If the keystroke is defined
+	if ( keystrokeValue )
+	{
+		// If the keystroke has been explicetly set to "true" OR calling the
+		// "OnKeystroke" event, it doesn't return "true", the default behavior
+		// must be preserved.
+		if ( keystrokeValue === true || !( keystrokeHandler.OnKeystroke && keystrokeHandler.OnKeystroke.apply( keystrokeHandler, keystrokeValue ) ) )
+			return true ;
+
+		cancelIt = true ;
+	}
+
+	// By default, it will cancel all combinations with the CTRL key only (except positioning keys).
+	if ( cancelIt || ( keystrokeHandler.CancelCtrlDefaults && keyModifiers == CTRL && ( keystroke < 33 || keystroke > 40 ) ) )
+	{
+		keystrokeHandler._CancelIt = true ;
+
+		if ( ev.preventDefault )
+			return ev.preventDefault() ;
+
+		ev.returnValue = false ;
+		ev.cancelBubble = true ;
+		return false ;
+	}
+
+	return true ;
+}
+
+function _FCKKeystrokeHandler_OnKeyPress( ev, keystrokeHandler )
+{
+	if ( keystrokeHandler._CancelIt )
+	{
+//		FCKDebug.Output( 'KeyPress Cancel', 'Red') ;
+
+		if ( ev.preventDefault )
+			return ev.preventDefault() ;
+
+		return false ;
+	}
+
+	return true ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublock.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublock.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublock.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,143 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Renders a list of menu items.
+ */
+
+var FCKMenuBlock = function()
+{
+	this._Items	= new Array() ;
+}
+
+
+FCKMenuBlock.prototype.Count = function()
+{
+	return this._Items.length ;
+}
+
+FCKMenuBlock.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	var oItem = new FCKMenuItem( this, name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+
+	oItem.OnClick		= FCKTools.CreateEventListener( FCKMenuBlock_Item_OnClick, this ) ;
+	oItem.OnActivate	= FCKTools.CreateEventListener( FCKMenuBlock_Item_OnActivate, this ) ;
+
+	this._Items.push( oItem ) ;
+
+	return oItem ;
+}
+
+FCKMenuBlock.prototype.AddSeparator = function()
+{
+	this._Items.push( new FCKMenuSeparator() ) ;
+}
+
+FCKMenuBlock.prototype.RemoveAllItems = function()
+{
+	this._Items = new Array() ;
+
+	var eItemsTable = this._ItemsTable ;
+	if ( eItemsTable )
+	{
+		while ( eItemsTable.rows.length > 0 )
+			eItemsTable.deleteRow( 0 ) ;
+	}
+}
+
+FCKMenuBlock.prototype.Create = function( parentElement )
+{
+	if ( !this._ItemsTable )
+	{
+		if ( FCK.IECleanup )
+			FCK.IECleanup.AddItem( this, FCKMenuBlock_Cleanup ) ;
+
+		this._Window = FCKTools.GetElementWindow( parentElement ) ;
+
+		var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+
+		var eTable = parentElement.appendChild( oDoc.createElement( 'table' ) ) ;
+		eTable.cellPadding = 0 ;
+		eTable.cellSpacing = 0 ;
+
+		FCKTools.DisableSelection( eTable ) ;
+
+		var oMainElement = eTable.insertRow(-1).insertCell(-1) ;
+		oMainElement.className = 'MN_Menu' ;
+
+		var eItemsTable = this._ItemsTable = oMainElement.appendChild( oDoc.createElement( 'table' ) ) ;
+		eItemsTable.cellPadding = 0 ;
+		eItemsTable.cellSpacing = 0 ;
+	}
+
+	for ( var i = 0 ; i < this._Items.length ; i++ )
+		this._Items[i].Create( this._ItemsTable ) ;
+}
+
+/* Events */
+
+function FCKMenuBlock_Item_OnClick( clickedItem, menuBlock )
+{
+	FCKTools.RunFunction( menuBlock.OnClick, menuBlock, [ clickedItem ] ) ;
+}
+
+function FCKMenuBlock_Item_OnActivate( menuBlock )
+{
+	var oActiveItem = menuBlock._ActiveItem ;
+
+	if ( oActiveItem && oActiveItem != this )
+	{
+		// Set the focus to this menu block window (to fire OnBlur on opened panels).
+		if ( !FCKBrowserInfo.IsIE && oActiveItem.HasSubMenu && !this.HasSubMenu )
+			menuBlock._Window.focus() ;
+
+		oActiveItem.Deactivate() ;
+	}
+
+	menuBlock._ActiveItem = this ;
+}
+
+function FCKMenuBlock_Cleanup()
+{
+	this._Window = null ;
+	this._ItemsTable = null ;
+}
+
+// ################# //
+
+var FCKMenuSeparator = function()
+{}
+
+FCKMenuSeparator.prototype.Create = function( parentTable )
+{
+	var oDoc = FCKTools.GetElementDocument( parentTable ) ;
+
+	var r = parentTable.insertRow(-1) ;
+
+	var eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator MN_Icon' ;
+
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator' ;
+	eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Separator' ;
+	eCell.appendChild( oDoc.createElement( 'DIV' ) ).className = 'MN_Separator_Line' ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublockpanel.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublockpanel.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenublockpanel.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,54 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 class is a menu block that behaves like a panel. It's a mix of the
+ * FCKMenuBlock and FCKPanel classes.
+ */
+
+var FCKMenuBlockPanel = function()
+{
+	// Call the "base" constructor.
+	FCKMenuBlock.call( this ) ;
+}
+
+FCKMenuBlockPanel.prototype = new FCKMenuBlock() ;
+
+
+// Override the create method.
+FCKMenuBlockPanel.prototype.Create = function()
+{
+	var oPanel = this.Panel = ( this.Parent && this.Parent.Panel ? this.Parent.Panel.CreateChildPanel() : new FCKPanel() ) ;
+	oPanel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+	// Call the "base" implementation.
+	FCKMenuBlock.prototype.Create.call( this, oPanel.MainNode ) ;
+}
+
+FCKMenuBlockPanel.prototype.Show = function( x, y, relElement )
+{
+	if ( !this.Panel.CheckIsOpened() )
+		this.Panel.Show( x, y, relElement ) ;
+}
+
+FCKMenuBlockPanel.prototype.Hide = function()
+{
+	if ( this.Panel.CheckIsOpened() )
+		this.Panel.Hide() ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenuitem.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenuitem.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckmenuitem.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,160 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines and renders a menu items in a menu block.
+ */
+
+var FCKMenuItem = function( parentMenuBlock, name, label, iconPathOrStripInfoArray, isDisabled )
+{
+	this.Name		= name ;
+	this.Label		= label || name ;
+	this.IsDisabled	= isDisabled ;
+
+	this.Icon = new FCKIcon( iconPathOrStripInfoArray ) ;
+
+	this.SubMenu			= new FCKMenuBlockPanel() ;
+	this.SubMenu.Parent		= parentMenuBlock ;
+	this.SubMenu.OnClick	= FCKTools.CreateEventListener( FCKMenuItem_SubMenu_OnClick, this ) ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKMenuItem_Cleanup ) ;
+}
+
+
+FCKMenuItem.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled )
+{
+	this.HasSubMenu = true ;
+	return this.SubMenu.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled ) ;
+}
+
+FCKMenuItem.prototype.AddSeparator = function()
+{
+	this.SubMenu.AddSeparator() ;
+}
+
+FCKMenuItem.prototype.Create = function( parentTable )
+{
+	var bHasSubMenu = this.HasSubMenu ;
+
+	var oDoc = FCKTools.GetElementDocument( parentTable ) ;
+
+	// Add a row in the table to hold the menu item.
+	var r = this.MainElement = parentTable.insertRow(-1) ;
+	r.className = this.IsDisabled ? 'MN_Item_Disabled' : 'MN_Item' ;
+
+	// Set the row behavior.
+	if ( !this.IsDisabled )
+	{
+		FCKTools.AddEventListenerEx( r, 'mouseover', FCKMenuItem_OnMouseOver, [ this ] ) ;
+		FCKTools.AddEventListenerEx( r, 'click', FCKMenuItem_OnClick, [ this ] ) ;
+
+		if ( !bHasSubMenu )
+			FCKTools.AddEventListenerEx( r, 'mouseout', FCKMenuItem_OnMouseOut, [ this ] ) ;
+	}
+
+	// Create the icon cell.
+	var eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Icon' ;
+	eCell.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+
+	// Create the label cell.
+	eCell = r.insertCell(-1) ;
+	eCell.className = 'MN_Label' ;
+	eCell.noWrap = true ;
+	eCell.appendChild( oDoc.createTextNode( this.Label ) ) ;
+
+	// Create the arrow cell and setup the sub menu panel (if needed).
+	eCell = r.insertCell(-1) ;
+	if ( bHasSubMenu )
+	{
+		eCell.className = 'MN_Arrow' ;
+
+		// The arrow is a fixed size image.
+		var eArrowImg = eCell.appendChild( oDoc.createElement( 'IMG' ) ) ;
+		eArrowImg.src = FCK_IMAGES_PATH + 'arrow_' + FCKLang.Dir + '.gif' ;
+		eArrowImg.width	 = 4 ;
+		eArrowImg.height = 7 ;
+
+		this.SubMenu.Create() ;
+		this.SubMenu.Panel.OnHide = FCKTools.CreateEventListener( FCKMenuItem_SubMenu_OnHide, this ) ;
+	}
+}
+
+FCKMenuItem.prototype.Activate = function()
+{
+	this.MainElement.className = 'MN_Item_Over' ;
+
+	if ( this.HasSubMenu )
+	{
+		// Show the child menu block. The ( +2, -2 ) correction is done because
+		// of the padding in the skin. It is not a good solution because one
+		// could change the skin and so the final result would not be accurate.
+		// For now it is ok because we are controlling the skin.
+		this.SubMenu.Show( this.MainElement.offsetWidth + 2, -2, this.MainElement ) ;
+	}
+
+	FCKTools.RunFunction( this.OnActivate, this ) ;
+}
+
+FCKMenuItem.prototype.Deactivate = function()
+{
+	this.MainElement.className = 'MN_Item' ;
+
+	if ( this.HasSubMenu )
+		this.SubMenu.Hide() ;
+}
+
+/* Events */
+
+function FCKMenuItem_SubMenu_OnClick( clickedItem, listeningItem )
+{
+	FCKTools.RunFunction( listeningItem.OnClick, listeningItem, [ clickedItem ] ) ;
+}
+
+function FCKMenuItem_SubMenu_OnHide( menuItem )
+{
+	menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_OnClick( ev, menuItem )
+{
+	if ( menuItem.HasSubMenu )
+		menuItem.Activate() ;
+	else
+	{
+		menuItem.Deactivate() ;
+		FCKTools.RunFunction( menuItem.OnClick, menuItem, [ menuItem ] ) ;
+	}
+}
+
+function FCKMenuItem_OnMouseOver( ev, menuItem )
+{
+	menuItem.Activate() ;
+}
+
+function FCKMenuItem_OnMouseOut( ev, menuItem )
+{
+	menuItem.Deactivate() ;
+}
+
+function FCKMenuItem_Cleanup()
+{
+	this.MainElement = null ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,303 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Component that creates floating panels. It is used by many
+ * other components, like the toolbar items, context menu, etc...
+ */
+
+var FCKPanel = function( parentWindow )
+{
+	this.IsRTL			= ( FCKLang.Dir == 'rtl' ) ;
+	this.IsContextMenu	= false ;
+	this._LockCounter	= 0 ;
+
+	this._Window = parentWindow || window ;
+
+	var oDocument ;
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		// Create the Popup that will hold the panel.
+		this._Popup	= this._Window.createPopup() ;
+		oDocument = this.Document = this._Popup.document ;
+
+		FCK.IECleanup.AddItem( this, FCKPanel_Cleanup ) ;
+	}
+	else
+	{
+		var oIFrame = this._IFrame = this._Window.document.createElement('iframe') ;
+		oIFrame.src					= 'javascript:void(0)' ;
+		oIFrame.allowTransparency	= true ;
+		oIFrame.frameBorder			= '0' ;
+		oIFrame.scrolling			= 'no' ;
+		oIFrame.style.position		= 'absolute';
+		oIFrame.style.zIndex		= FCKConfig.FloatingPanelsZIndex ;
+		oIFrame.width = oIFrame.height = 0 ;
+
+		if ( this._Window == window.parent && window.frameElement )
+			window.frameElement.parentNode.insertBefore( oIFrame, window.frameElement ) ;
+		else
+			this._Window.document.body.appendChild( oIFrame ) ;
+
+		var oIFrameWindow = oIFrame.contentWindow ;
+
+		oDocument = this.Document = oIFrameWindow.document ;
+
+		// Initialize the IFRAME document body.
+		oDocument.open() ;
+		oDocument.write( '<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>' ) ;
+		oDocument.close() ;
+
+		FCKTools.AddEventListenerEx( oIFrameWindow, 'focus', FCKPanel_Window_OnFocus, this ) ;
+		FCKTools.AddEventListenerEx( oIFrameWindow, 'blur', FCKPanel_Window_OnBlur, this ) ;
+	}
+
+	oDocument.dir = FCKLang.Dir ;
+
+	oDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+
+	// Create the main DIV that is used as the panel base.
+	this.MainNode = oDocument.body.appendChild( oDocument.createElement('DIV') ) ;
+
+	// The "float" property must be set so Firefox calculates the size correcly.
+	this.MainNode.style.cssFloat = this.IsRTL ? 'right' : 'left' ;
+}
+
+
+FCKPanel.prototype.AppendStyleSheet = function( styleSheet )
+{
+	FCKTools.AppendStyleSheet( this.Document, styleSheet ) ;
+}
+
+FCKPanel.prototype.Preload = function( x, y, relElement )
+{
+	// The offsetWidth and offsetHeight properties are not available if the
+	// element is not visible. So we must "show" the popup with no size to
+	// be able to use that values in the second call (IE only).
+	if ( this._Popup )
+		this._Popup.show( x, y, 0, 0, relElement ) ;
+}
+
+FCKPanel.prototype.Show = function( x, y, relElement, width, height )
+{
+	var iMainWidth ;
+
+	if ( this._Popup )
+	{
+		// The offsetWidth and offsetHeight properties are not available if the
+		// element is not visible. So we must "show" the popup with no size to
+		// be able to use that values in the second call.
+		this._Popup.show( x, y, 0, 0, relElement ) ;
+
+		// The following lines must be place after the above "show", otherwise it
+		// doesn't has the desired effect.
+		this.MainNode.style.width	= width ? width + 'px' : '' ;
+		this.MainNode.style.height	= height ? height + 'px' : '' ;
+
+		iMainWidth = this.MainNode.offsetWidth ;
+
+		if ( this.IsRTL )
+		{
+			if ( this.IsContextMenu )
+				x  = x - iMainWidth + 1 ;
+			else if ( relElement )
+				x  = ( x * -1 ) + relElement.offsetWidth - iMainWidth ;
+		}
+
+		// Second call: Show the Popup at the specified location, with the correct size.
+		this._Popup.show( x, y, iMainWidth, this.MainNode.offsetHeight, relElement ) ;
+
+		if ( this.OnHide )
+		{
+			if ( this._Timer )
+				CheckPopupOnHide.call( this, true ) ;
+
+			this._Timer = FCKTools.SetInterval( CheckPopupOnHide, 100, this ) ;
+		}
+	}
+	else
+	{
+		// Do not fire OnBlur while the panel is opened.
+		if ( typeof( FCKFocusManager ) != 'undefined' )
+			FCKFocusManager.Lock() ;
+
+		if ( this.ParentPanel )
+			this.ParentPanel.Lock() ;
+
+		this.MainNode.style.width	= width ? width + 'px' : '' ;
+		this.MainNode.style.height	= height ? height + 'px' : '' ;
+
+		iMainWidth = this.MainNode.offsetWidth ;
+
+		if ( !width )	this._IFrame.width	= 1 ;
+		if ( !height )	this._IFrame.height	= 1 ;
+
+		// This is weird... but with Firefox, we must get the offsetWidth before
+		// setting the _IFrame size (which returns "0"), and then after that,
+		// to return the correct width. Remove the first step and it will not
+		// work when the editor is in RTL.
+		iMainWidth = this.MainNode.offsetWidth ;
+
+		var oPos = FCKTools.GetElementPosition(
+			relElement.nodeType == 9 ?
+				( FCKTools.IsStrictMode( relElement ) ? relElement.documentElement : relElement.body ) :
+				relElement,
+			this._Window ) ;
+
+		if ( this.IsRTL && !this.IsContextMenu )
+			x = ( x * -1 ) ;
+
+		x += oPos.X ;
+		y += oPos.Y ;
+
+		if ( this.IsRTL )
+		{
+			if ( this.IsContextMenu )
+				x  = x - iMainWidth + 1 ;
+			else if ( relElement )
+				x  = x + relElement.offsetWidth - iMainWidth ;
+		}
+		else
+		{
+			var oViewPaneSize = FCKTools.GetViewPaneSize( this._Window ) ;
+			var oScrollPosition = FCKTools.GetScrollPosition( this._Window ) ;
+
+			var iViewPaneHeight	= oViewPaneSize.Height + oScrollPosition.Y ;
+			var iViewPaneWidth	= oViewPaneSize.Width + oScrollPosition.X ;
+
+			if ( ( x + iMainWidth ) > iViewPaneWidth )
+				x -= x + iMainWidth - iViewPaneWidth ;
+
+			if ( ( y + this.MainNode.offsetHeight ) > iViewPaneHeight )
+				y -= y + this.MainNode.offsetHeight - iViewPaneHeight ;
+		}
+
+		if ( x < 0 )
+			 x = 0 ;
+
+		// Set the context menu DIV in the specified location.
+		this._IFrame.style.left	= x + 'px' ;
+		this._IFrame.style.top	= y + 'px' ;
+
+		var iWidth	= iMainWidth ;
+		var iHeight	= this.MainNode.offsetHeight ;
+
+		this._IFrame.width	= iWidth ;
+		this._IFrame.height = iHeight ;
+
+		// Move the focus to the IFRAME so we catch the "onblur".
+		this._IFrame.contentWindow.focus() ;
+	}
+
+	this._IsOpened = true ;
+
+	FCKTools.RunFunction( this.OnShow, this ) ;
+}
+
+FCKPanel.prototype.Hide = function( ignoreOnHide )
+{
+	if ( this._Popup )
+		this._Popup.hide() ;
+	else
+	{
+		if ( !this._IsOpened )
+			return ;
+
+		// Enable the editor to fire the "OnBlur".
+		if ( typeof( FCKFocusManager ) != 'undefined' )
+			FCKFocusManager.Unlock() ;
+
+		// It is better to set the sizes to 0, otherwise Firefox would have
+		// rendering problems.
+		this._IFrame.width = this._IFrame.height = 0 ;
+
+		this._IsOpened = false ;
+
+		if ( this.ParentPanel )
+			this.ParentPanel.Unlock() ;
+
+		if ( !ignoreOnHide )
+			FCKTools.RunFunction( this.OnHide, this ) ;
+	}
+}
+
+FCKPanel.prototype.CheckIsOpened = function()
+{
+	if ( this._Popup )
+		return this._Popup.isOpen ;
+	else
+		return this._IsOpened ;
+}
+
+FCKPanel.prototype.CreateChildPanel = function()
+{
+	var oWindow = this._Popup ? FCKTools.GetDocumentWindow( this.Document ) : this._Window ;
+
+	var oChildPanel = new FCKPanel( oWindow, true ) ;
+	oChildPanel.ParentPanel = this ;
+
+	return oChildPanel ;
+}
+
+FCKPanel.prototype.Lock = function()
+{
+	this._LockCounter++ ;
+}
+
+FCKPanel.prototype.Unlock = function()
+{
+	if ( --this._LockCounter == 0 && !this.HasFocus )
+		this.Hide() ;
+}
+
+/* Events */
+
+function FCKPanel_Window_OnFocus( e, panel )
+{
+	panel.HasFocus = true ;
+}
+
+function FCKPanel_Window_OnBlur( e, panel )
+{
+	panel.HasFocus = false ;
+
+	if ( panel._LockCounter == 0 )
+		FCKTools.RunFunction( panel.Hide, panel ) ;
+}
+
+function CheckPopupOnHide( forceHide )
+{
+	if ( forceHide || !this._Popup.isOpen )
+	{
+		window.clearInterval( this._Timer ) ;
+		this._Timer = null ;
+
+		FCKTools.RunFunction( this.OnHide, this ) ;
+	}
+}
+
+function FCKPanel_Cleanup()
+{
+	this._Popup = null ;
+	this._Window = null ;
+	this.Document = null ;
+	this.MainNode = null ;
+}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,206 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckpanel_gecko.js
- * 	FCKPanel Class: Creates and manages floating panels in Gecko Browsers.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKPanel = function( parentWindow )
-{
-	if ( parentWindow )
-		this.Window = parentWindow ;
-	else
-	{
-		this.Window = window ;
-
-		while ( this.Window != window.top )
-		{
-			// Try/Catch must be used to avoit an error when using a frameset
-			// on a different domain:
-			// "Permission denied to get property HTMLDocument.Body".
-			try
-			{
-				if ( this.Window.parent.document.body.tagName == 'FRAMESET' )
-					break ;
-			}
-			catch (e)
-			{
-				break ;
-			}
-
-			this.Window = this.Window.parent ;
-		}
-	}
-}
-
-FCKPanel.prototype.Create = function()
-{
-	this._IFrame = this.Window.document.createElement('iframe') ; 
-	this._IFrame.src = 'about:blank' ;
-    this._IFrame.frameBorder		= '0';
-    this._IFrame.scrolling			= 'no' ;
-    this._IFrame.style.left			= '0px' ;
-	this._IFrame.style.top			= '0px' ;
-    this._IFrame.width				= 10 ;
-	this._IFrame.height				= 10 ;
-    this._IFrame.style.position		= 'absolute';
-	this._IFrame.style.visibility	= 'hidden' ;
-
-	this._IFrame.IsFCKPanel	= true ;
-	this._IFrame.Panel		= this ;
-
-	this.Window.document.body.appendChild( this._IFrame ) ;
-	
-	this.Document = this._IFrame.contentWindow.document ;
-
-	// Initialize the IFRAME document body.
-	this.Document.open() ;
-	this.Document.write( '<html><head></head><body><\/body><\/html>' ) ;
-	this.Document.close() ;
-
-	// Remove the default margins.
-	this.Document.body.style.margin = this.Document.body.style.padding = '0px' ;
-
-	// Add the defined Style Sheet to the document.
-	if ( this.StyleSheet )
-		FCKTools.AppendStyleSheet( this.Document, this.StyleSheet ) ;
-
-
-	this.OuterDiv = this.Document.body.appendChild( this.Document.createElement('DIV') ) ;
-	this.OuterDiv.style.cssFloat = 'left' ;
-
-	this.PanelDiv = this.OuterDiv.appendChild( this.Document.createElement('DIV') ) ;
-	this.PanelDiv.className = 'FCK_Panel' ;
-
-	this.Created = true ;
-}
-
-FCKPanel.prototype.Show = function( panelX, panelY, relElement, width, height, autoSize  )
-{
-	if ( ! this.Created )
-		this.Create() ;
-
-	if ( width != null && autoSize && width < this.OuterDiv.offsetWidth )
-		this.PanelDiv.style.width = width ;
-
-	if ( height != null && autoSize && height < this.PanelDiv.offsetHeight )
-		this.PanelDiv.style.height = height + 'px' ;
-
-	var oPos = this.GetElementPosition( relElement ) ;
-
-	panelX += oPos.X ;
-	panelY += oPos.Y ;
-
-	if ( panelX + this.OuterDiv.offsetWidth > this.Window.innerWidth )
-	{
-		// The following line aligns the panel to the other side of the refElement.
-		// panelX = oPos.X - ( this.PanelDiv.offsetWidth - relElement.offsetWidth ) ;
-
-		panelX -= panelX + this.OuterDiv.offsetWidth - this.Window.innerWidth ;
-	}
-
-	// Set the context menu DIV in the specified location.
-	this._IFrame.style.left	= panelX + 'px' ;
-	this._IFrame.style.top	= panelY + 'px' ;
-
-	// Watch the "OnClick" event for all windows to close the Context Menu.
-	function SetOnClickListener( targetWindow, targetFunction )
-	{
-		// Try/Catch must be used to avoit an error when using a frameset
-		// on a different domain:
-		// "Permission denied to get property Window.frameElement".
-		try
-		{
-			if ( targetWindow == null || ( targetWindow.frameElement && targetWindow.frameElement.IsFCKPanel ) )
-				return ;
-
-			targetWindow.document.addEventListener( 'click', targetFunction, false ) ;
-		}
-		catch (e) {}
-
-		for ( var i = 0 ; i < targetWindow.frames.length ; i++ )
-			SetOnClickListener( targetWindow.frames[i], targetFunction ) ;
-	}
-	SetOnClickListener( window.top, FCKPanelEventHandlers.OnDocumentClick ) ;
-
-	this._IFrame.width	= this.OuterDiv.offsetWidth ;
-	this._IFrame.height = this.OuterDiv.offsetHeight ;
-
-	// Show it.
-	this._IFrame.style.visibility = '' ;
-}
-
-FCKPanel.prototype.GetElementPosition = function( el )
-{
-	// Initializes the Coordinates object that will be returned by the function.
-	var c = { X:0, Y:0 } ;
-
-	// Loop throw the offset chain.
-	while ( el )
-	{
-		c.X += el.offsetLeft ;
-		c.Y += el.offsetTop ;
-
-		if ( el.offsetParent == null && el.ownerDocument.defaultView != this.Window )
-			el = el.ownerDocument.defaultView.frameElement ;
-		else
-			el = el.offsetParent ;
-	}
-
-	// Return the Coordinates object
-	return c ;
-}
-
-FCKPanel.prototype.Hide = function()
-{
-	// There is a bug on Firefox over Mac. It doesn't hide the Panel
-	// scrollbars, so we must force it.
-	this.PanelDiv.style.overflow = 'visible' ;
-
-	this._IFrame.style.visibility = 'hidden' ;
-//	this._IFrame.style.left = this._IFrame.style.top = '0px' ;
-}
-
-var FCKPanelEventHandlers = new Object() ;
-
-FCKPanelEventHandlers.OnDocumentClick = function( e )
-{
-	var oWindow = e.target.ownerDocument.defaultView ;
-
-	if ( ! oWindow.IsFCKPanel )
-	{
-		function RemoveOnClickListener( targetWindow )
-		{
-			if ( targetWindow == null )
-				return ;
-
-			// Try/Catch must be used to avoit an error when using a frameset
-			// on a different domain:
-			// "Permission denied to get property Window.frameElement".
-			try
-			{
-				if ( targetWindow.frameElement && targetWindow.frameElement.IsFCKPanel )
-					targetWindow.frameElement.Panel.Hide() ;
-				else
-					targetWindow.document.removeEventListener( 'click', FCKPanelEventHandlers.OnDocumentClick, false ) ;
-			}
-			catch (e) {}
-
-			for ( var i = 0 ; i < targetWindow.frames.length ; i++ )
-				RemoveOnClickListener( targetWindow.frames[i] ) ;
-		}
-		RemoveOnClickListener( window.top ) ;
-	}
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckpanel_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,78 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckpanel_ie.js
- * 	FCKPanel Class: Creates and manages floating panels in IE Browsers.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKPanel = function( parentWindow )
-{
-	this.Window = parentWindow ? parentWindow : window ;
-}
-
-function FCKPanel_OnContextMenu() { return false ; }
-
-FCKPanel.prototype.Create = function()
-{
-	// Create the Popup that will hold the panel.
-	this._Popup = this.Window.createPopup() ;
-	
-	this.Document = this._Popup.document ;
-	
-	aCleanupDocs[ aCleanupDocs.length ] = this.Document ;
-	
-	this.Document.oncontextmenu = FCKPanel_OnContextMenu ;
-
-	if ( this.StyleSheet )
-		FCKTools.AppendStyleSheet( this.Document, this.StyleSheet ) ;
-		
-	// Create the main DIV that is used as the panel base.
-	this.PanelDiv = this.Document.body.appendChild( this.Document.createElement('DIV') ) ;
-	this.PanelDiv.className = 'FCK_Panel' ;
-	
-	this.Created = true ;
-}
-
-FCKPanel.prototype.Show = function( panelX, panelY, relElement, width, height, autoSize )
-{
-	if ( ! this.Created )
-		this._Create() ;
-	
-	// The offsetWidth and offsetHeight properties are not available if the 
-	// element is not visible. So we must "show" the popup with no size to
-	// be able to use that values in the second call.
-	this._Popup.show( panelX, panelY, 0, 0, relElement ) ;
-
-	if ( width == null || ( autoSize && width > this.PanelDiv.offsetWidth ) )
-		var iWidth = this.PanelDiv.offsetWidth ;
-	else
-		var iWidth = width ;
-
-	if ( height == null || ( autoSize && height > this.PanelDiv.offsetHeight ) )
-		var iHeight = this.PanelDiv.offsetHeight ;
-	else
-		var iHeight = height ;
-
-	this.PanelDiv.style.height = iHeight ;
-
-	// Second call: Show the Popup at the specified location.
-	this._Popup.show( panelX, panelY, iWidth, iHeight, relElement ) ;
-}
-
-FCKPanel.prototype.Hide = function()
-{
-	if ( this._Popup )
-		this._Popup.hide() ;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,32 +1,32 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	FCKPlugin Class: Represents a single plugin.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKPlugin Class: Represents a single plugin.
  */
 
-// Certifies that the "PluginsPath" configuration ends with a slash.
-if ( !FCKConfig.PluginsPath.endsWith('/') )
-	FCKConfig.PluginsPath += '/' ;
-
 var FCKPlugin = function( name, availableLangs, basePath )
 {
 	this.Name = name ;
 	this.BasePath = basePath ? basePath : FCKConfig.PluginsPath ;
 	this.Path = this.BasePath + name + '/' ;
-	
+
 	if ( !availableLangs || availableLangs.length == 0 )
 		this.AvailableLangs = new Array() ;
 	else
@@ -39,18 +39,18 @@
 	if ( this.AvailableLangs.length > 0 )
 	{
 		var sLang ;
-		
+
 		// Check if the plugin has the language file for the active language.
-		if ( this.AvailableLangs.indexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 )
+		if ( this.AvailableLangs.IndexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 )
 			sLang = FCKLanguageManager.ActiveLanguage.Code ;
 		else
 			// Load the default language file (first one) if the current one is not available.
 			sLang = this.AvailableLangs[0] ;
-		
+
 		// Add the main plugin script.
-		FCKScriptLoader.AddScript( this.Path + 'lang/' + sLang + '.js' ) ;		
+		LoadScript( this.Path + 'lang/' + sLang + '.js' ) ;
 	}
-		
+
 	// Add the main plugin script.
-	FCKScriptLoader.AddScript( this.Path + 'fckplugin.js' ) ;
+	LoadScript( this.Path + 'fckplugin.js' ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckspecialcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckspecialcombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckspecialcombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,44 +1,59 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckspecialcombo.js
- * 	FCKSpecialCombo Class: represents a special combo.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKSpecialCombo Class: represents a special combo.
  */
 
-var FCKSpecialCombo = function( caption )
+var FCKSpecialCombo = function( caption, fieldWidth, panelWidth, panelMaxHeight, parentWindow )
 {
 	// Default properties values.
-	this.FieldWidth		= 80 ;
-	this.PanelWidth		= 130 ;
-	this.PanelMaxHeight	= 150 ;
+	this.FieldWidth		= fieldWidth || 100 ;
+	this.PanelWidth		= panelWidth || 150 ;
+	this.PanelMaxHeight	= panelMaxHeight || 150 ;
 	this.Label			= '&nbsp;' ;
 	this.Caption		= caption ;
 	this.Tooltip		= caption ;
 	this.Style			= FCK_TOOLBARITEM_ICONTEXT ;
 
 	this.Enabled = true ;
-	
+
 	this.Items = new Object() ;
-	
-	this._Panel = new FCKPanel() ;
-	this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ;
-	this._Panel.Create() ;
-	this._Panel.PanelDiv.className += ' SC_Panel' ;
-	this._Panel.PanelDiv.innerHTML = '<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>' ;
-	
-	this._ItemsHolderEl = this._Panel.PanelDiv.getElementsByTagName('TD')[0] ;
+
+	this._Panel = new FCKPanel( parentWindow || window, true ) ;
+	this._Panel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	this._PanelBox = this._Panel.MainNode.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ;
+	this._PanelBox.className = 'SC_Panel' ;
+	this._PanelBox.style.width = this.PanelWidth + 'px' ;
+
+	this._PanelBox.innerHTML = '<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>' ;
+
+	this._ItemsHolderEl = this._PanelBox.getElementsByTagName('TD')[0] ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKSpecialCombo_Cleanup ) ;
+
+//	this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ;
+//	this._Panel.Create() ;
+//	this._Panel.PanelDiv.className += ' SC_Panel' ;
+//	this._Panel.PanelDiv.innerHTML = '<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>' ;
+//	this._ItemsHolderEl = this._Panel.PanelDiv.getElementsByTagName('TD')[0] ;
 }
 
 function FCKSpecialCombo_ItemOnMouseOver()
@@ -53,6 +68,8 @@
 
 function FCKSpecialCombo_ItemOnClick()
 {
+	this.className = this.originalClass ;
+
 	this.FCKSpecialCombo._Panel.Hide() ;
 
 	this.FCKSpecialCombo.SetLabel( this.FCKItemLabel ) ;
@@ -61,30 +78,37 @@
 		this.FCKSpecialCombo.OnSelect( this.FCKItemID, this ) ;
 }
 
-FCKSpecialCombo.prototype.AddItem = function( id, html, label )
+FCKSpecialCombo.prototype.AddItem = function( id, html, label, bgColor )
 {
 	// <div class="SC_Item" onmouseover="this.className='SC_Item SC_ItemOver';" onmouseout="this.className='SC_Item';"><b>Bold 1</b></div>
 	var oDiv = this._ItemsHolderEl.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ;
 	oDiv.className = oDiv.originalClass = 'SC_Item' ;
 	oDiv.innerHTML = html ;
 	oDiv.FCKItemID = id ;
-	oDiv.FCKItemLabel = label ? label : id ;
+	oDiv.FCKItemLabel = label || id ;
 	oDiv.FCKSpecialCombo = this ;
 	oDiv.Selected = false ;
 
+	// In IE, the width must be set so the borders are shown correctly when the content overflows.
+	if ( FCKBrowserInfo.IsIE )
+		oDiv.style.width = '100%' ;
+
+	if ( bgColor )
+		oDiv.style.backgroundColor = bgColor ;
+
 	oDiv.onmouseover	= FCKSpecialCombo_ItemOnMouseOver ;
 	oDiv.onmouseout		= FCKSpecialCombo_ItemOnMouseOut ;
 	oDiv.onclick		= FCKSpecialCombo_ItemOnClick ;
-	
+
 	this.Items[ id.toString().toLowerCase() ] = oDiv ;
-	
+
 	return oDiv ;
 }
 
 FCKSpecialCombo.prototype.SelectItem = function( itemId )
 {
 	itemId = itemId ? itemId.toString().toLowerCase() : '' ;
-	
+
 	var oDiv = this.Items[ itemId ] ;
 	if ( oDiv )
 	{
@@ -93,19 +117,39 @@
 	}
 }
 
-FCKSpecialCombo.prototype.DeselectAll = function()
+FCKSpecialCombo.prototype.SelectItemByLabel = function( itemLabel, setLabel )
 {
+	for ( var id in this.Items )
+	{
+		var oDiv = this.Items[id] ;
+
+		if ( oDiv.FCKItemLabel == itemLabel )
+		{
+			oDiv.className = oDiv.originalClass = 'SC_ItemSelected' ;
+			oDiv.Selected = true ;
+
+			if ( setLabel )
+				this.SetLabel( itemLabel ) ;
+		}
+	}
+}
+
+FCKSpecialCombo.prototype.DeselectAll = function( clearLabel )
+{
 	for ( var i in this.Items )
 	{
 		this.Items[i].className = this.Items[i].originalClass = 'SC_Item' ;
 		this.Items[i].Selected = false ;
 	}
+
+	if ( clearLabel )
+		this.SetLabel( '' ) ;
 }
 
 FCKSpecialCombo.prototype.SetLabelById = function( id )
 {
 	id = id ? id.toString().toLowerCase() : '' ;
-	
+
 	var oDiv = this.Items[ id ] ;
 	this.SetLabel( oDiv ? oDiv.FCKItemLabel : '' ) ;
 }
@@ -115,27 +159,36 @@
 	this.Label = text.length == 0 ? '&nbsp;' : text ;
 
 	if ( this._LabelEl )
+	{
 		this._LabelEl.innerHTML = this.Label ;
+
+		// It may happen that the label is some HTML, including tags. This
+		// would be a problem because when the user click on those tags, the
+		// combo will get the selection from the editing area. So we must
+		// disable any kind of selection here.
+		FCKTools.DisableSelection( this._LabelEl ) ;
+	}
 }
 
 FCKSpecialCombo.prototype.SetEnabled = function( isEnabled )
 {
 	this.Enabled = isEnabled ;
-	
+
 	this._OuterTable.className = isEnabled ? '' : 'SC_FieldDisabled' ;
 }
 
 FCKSpecialCombo.prototype.Create = function( targetElement )
 {
-	this._OuterTable = targetElement.appendChild( document.createElement( 'TABLE' ) ) ;
-	this._OuterTable.cellPadding = 0 ;
-	this._OuterTable.cellSpacing = 0 ;
-	
-	this._OuterTable.insertRow(-1) ;
-	
+	var oDoc = FCKTools.GetElementDocument( targetElement ) ;
+	var eOuterTable = this._OuterTable = targetElement.appendChild( oDoc.createElement( 'TABLE' ) ) ;
+	eOuterTable.cellPadding = 0 ;
+	eOuterTable.cellSpacing = 0 ;
+
+	eOuterTable.insertRow(-1) ;
+
 	var sClass ;
 	var bShowLabel ;
-	
+
 	switch ( this.Style )
 	{
 		case FCK_TOOLBARITEM_ONLYICON :
@@ -153,35 +206,37 @@
 
 	if ( this.Caption && this.Caption.length > 0 && bShowLabel )
 	{
-		var oCaptionCell = this._OuterTable.rows[0].insertCell(-1) ;
-		oCaptionCell.unselectable = 'on' ;
+		var oCaptionCell = eOuterTable.rows[0].insertCell(-1) ;
 		oCaptionCell.innerHTML = this.Caption ;
 		oCaptionCell.className = 'SC_FieldCaption' ;
 	}
-	
+
 	// Create the main DIV element.
-	var oField = this._OuterTable.rows[0].insertCell(-1).appendChild( document.createElement( 'DIV' ) ) ;
+	var oField = FCKTools.AppendElement( eOuterTable.rows[0].insertCell(-1), 'div' ) ;
 	if ( bShowLabel )
 	{
 		oField.className = 'SC_Field' ;
 		oField.style.width = this.FieldWidth + 'px' ;
-		oField.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldLabel" unselectable="on"><label unselectable="on">&nbsp;</label></td><td class="SC_FieldButton" unselectable="on">&nbsp;</td></tr></tbody></table>' ;
+		oField.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>' ;
 
-		this._LabelEl = oField.getElementsByTagName('label')[0] ;
+		this._LabelEl = oField.getElementsByTagName('label')[0] ;		// Memory Leak
 		this._LabelEl.innerHTML = this.Label ;
 	}
 	else
 	{
 		oField.className = 'TB_Button_Off' ;
-		//oField.innerHTML = '<span className="SC_FieldCaption">' + this.Caption + '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldButton" style="border-left: none;" unselectable="on">&nbsp;</td></tr></tbody></table>' ;
-		oField.innerHTML = '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldButton" style="border-left: none;" unselectable="on">&nbsp;</td></tr></tbody></table>' ;
-		
+		//oField.innerHTML = '<span className="SC_FieldCaption">' + this.Caption + '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldButton" style="border-left: none;">&nbsp;</td></tr></tbody></table>' ;
+		//oField.innerHTML = '<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldButton" style="border-left: none;">&nbsp;</td></tr></tbody></table>' ;
+
 		// Gets the correct CSS class to use for the specified style (param).
-		oField.innerHTML ='<table title="' + this.Tooltip + '" class="' + sClass + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' +
+		oField.innerHTML = '<table title="' + this.Tooltip + '" class="' + sClass + '" cellspacing="0" cellpadding="0" border="0">' +
 				'<tr>' +
-					//'<td class="TB_Icon" unselectable="on"><img src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="21" unselectable="on"></td>' +
-					'<td class="TB_Text" unselectable="on">' + this.Caption + '</td>' +
-					'<td class="TB_ButtonArrow" unselectable="on"><img src="' + FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif" width="5" height="3"></td>' +
+					//'<td class="TB_Icon"><img src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="21"></td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
+					'<td class="TB_Text">' + this.Caption + '</td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
+					'<td class="TB_ButtonArrow"><img src="' + FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif" width="5" height="3"></td>' +
+					'<td><img class="TB_Button_Padding" src="' + FCK_SPACER_PATH + '" /></td>' +
 				'</tr>' +
 			'</table>' ;
 	}
@@ -190,12 +245,28 @@
 	// Events Handlers
 
 	oField.SpecialCombo = this ;
-	
+
 	oField.onmouseover	= FCKSpecialCombo_OnMouseOver ;
 	oField.onmouseout	= FCKSpecialCombo_OnMouseOut ;
 	oField.onclick		= FCKSpecialCombo_OnClick ;
+
+	FCKTools.DisableSelection( this._Panel.Document.body ) ;
 }
 
+function FCKSpecialCombo_Cleanup()
+{
+	this._LabelEl = null ;
+	this._OuterTable = null ;
+	this._ItemsHolderEl = null ;
+	this._PanelBox = null ;
+
+	if ( this.Items )
+	{
+		for ( var key in this.Items )
+			this.Items[key] = null ;
+	}
+}
+
 function FCKSpecialCombo_OnMouseOver()
 {
 	if ( this.SpecialCombo.Enabled )
@@ -203,10 +274,10 @@
 		switch ( this.SpecialCombo.Style )
 		{
 		case FCK_TOOLBARITEM_ONLYICON :
-			this.className = 'TB_Button_On';
+			this.className = 'TB_Button_On_Over';
 			break ;
 		case FCK_TOOLBARITEM_ONLYTEXT :
-			this.className = 'TB_Button_On';
+			this.className = 'TB_Button_On_Over';
 			break ;
 		case FCK_TOOLBARITEM_ICONTEXT :
 			this.className = 'SC_Field SC_FieldOver' ;
@@ -214,7 +285,7 @@
 		}
 	}
 }
-	
+
 function FCKSpecialCombo_OnMouseOut()
 {
 	switch ( this.SpecialCombo.Style )
@@ -230,41 +301,53 @@
 			break ;
 	}
 }
-	
+
 function FCKSpecialCombo_OnClick( e )
 {
-	// For Mozilla we must stop the event propagation to avoid it hiding 
+	// For Mozilla we must stop the event propagation to avoid it hiding
 	// the panel because of a click outside of it.
-	if ( e )
-	{
-		e.stopPropagation() ;
-		FCKPanelEventHandlers.OnDocumentClick( e ) ;
-	}
+//	if ( e )
+//	{
+//		e.stopPropagation() ;
+//		FCKPanelEventHandlers.OnDocumentClick( e ) ;
+//	}
 
-	if ( this.SpecialCombo.Enabled )
+	var oSpecialCombo = this.SpecialCombo ;
+
+	if ( oSpecialCombo.Enabled )
 	{
-		var oPanel = this.SpecialCombo._Panel ;
-		
-		if ( typeof( this.SpecialCombo.OnBeforeClick ) == 'function' )
-			this.SpecialCombo.OnBeforeClick( this.SpecialCombo ) ;
+		var oPanel			= oSpecialCombo._Panel ;
+		var oPanelBox		= oSpecialCombo._PanelBox ;
+		var oItemsHolder	= oSpecialCombo._ItemsHolderEl ;
+		var iMaxHeight		= oSpecialCombo.PanelMaxHeight ;
 
-		if ( this.SpecialCombo._ItemsHolderEl.offsetHeight > this.SpecialCombo.PanelMaxHeight )
-			oPanel.PanelDiv.style.height = this.SpecialCombo.PanelMaxHeight + 'px' ;
+		if ( oSpecialCombo.OnBeforeClick )
+			oSpecialCombo.OnBeforeClick( oSpecialCombo ) ;
+
+		// This is a tricky thing. We must call the "Load" function, otherwise
+		// it will not be possible to retrieve "oItemsHolder.offsetHeight" (IE only).
+		if ( FCKBrowserInfo.IsIE )
+			oPanel.Preload( 0, this.offsetHeight, this ) ;
+
+		if ( oItemsHolder.offsetHeight > iMaxHeight )
+//		{
+			oPanelBox.style.height = iMaxHeight + 'px' ;
+
+//			if ( FCKBrowserInfo.IsGecko )
+//				oPanelBox.style.overflow = '-moz-scrollbars-vertical' ;
+//		}
 		else
-			oPanel.PanelDiv.style.height = this.SpecialCombo._ItemsHolderEl.offsetHeight + 'px' ;
-			
-		oPanel.PanelDiv.style.width = this.SpecialCombo.PanelWidth + 'px' ;
-		
-		if ( FCKBrowserInfo.IsGecko )
-			oPanel.PanelDiv.style.overflow = '-moz-scrollbars-vertical' ;
+			oPanelBox.style.height = '' ;
 
-		oPanel.Show( 0, this.offsetHeight, this, null, this.SpecialCombo.PanelMaxHeight, true ) ;
+//		oPanel.PanelDiv.style.width = oSpecialCombo.PanelWidth + 'px' ;
+
+		oPanel.Show( 0, this.offsetHeight, this ) ;
 	}
 
-	return false ;
+//	return false ;
 }
 
-/* 
+/*
 Sample Combo Field HTML output:
 
 <div class="SC_Field" style="width: 80px;">

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstyledef.js
- * 	FCKStyleDef Class: represents a single stylke definition.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleDef Class: represents a single style definition.
  */
 
 var FCKStyleDef = function( name, element )
@@ -33,10 +37,10 @@
 FCKStyleDef.prototype.GetOpenerTag = function()
 {
 	var s = '<' + this.Element ;
-	
+
 	for ( var a in this.Attributes )
 		s += ' ' + a + '="' + this.Attributes[a] + '"' ;
-	
+
 	return s + '>' ;
 }
 
@@ -49,7 +53,7 @@
 FCKStyleDef.prototype.RemoveFromSelection = function()
 {
 	if ( FCKSelection.GetType() == 'Control' )
-		this._RemoveMe( FCKSelection.GetSelectedElement() ) ;
+		this._RemoveMe( FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ) ;
 	else
-		this._RemoveMe( FCKSelection.GetParentElement() ) ;
+		this._RemoveMe( FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement() ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,48 +1,52 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstyledef_gecko.js
- * 	FCKStyleDef Class: represents a single stylke definition. (Gecko specific)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleDef Class: represents a single stylke definition. (Gecko specific)
  */
 
 FCKStyleDef.prototype.ApplyToSelection = function()
 {
 	if ( FCKSelection.GetType() == 'Text' && !this.IsObjectElement )
 	{
-		var oSelection = FCK.EditorWindow.getSelection() ;
-		
+		var oSelection = FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection() ;
+
 		// Create the main element.
-		var e = FCK.EditorDocument.createElement( this.Element ) ;
-		
+		var e = FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement( this.Element ) ;
+
 		for ( var i = 0 ; i < oSelection.rangeCount ; i++ )
 		{
 			e.appendChild( oSelection.getRangeAt(i).extractContents() ) ;
 		}
-		
+
 		// Set the attributes.
 		this._AddAttributes( e ) ;
-		
+
 		// Remove the duplicated elements.
 		this._RemoveDuplicates( e ) ;
 
-		var oRange = oSelection.getRangeAt(0) ;		
+		var oRange = oSelection.getRangeAt(0) ;
 		oRange.insertNode( e ) ;
 	}
 	else
 	{
-		var oControl = FCKSelection.GetSelectedElement() ;
+		var oControl = FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ;
 		if ( oControl.tagName == this.Element )
 			this._AddAttributes( oControl ) ;
 	}
@@ -51,7 +55,15 @@
 FCKStyleDef.prototype._AddAttributes = function( targetElement )
 {
 	for ( var a in this.Attributes )
-		targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+	{
+		switch ( a.toLowerCase() )
+		{
+			case 'src' :
+				targetElement.setAttribute( '_fcksavedurl', this.Attributes[a], 0 ) ;
+			default :
+				targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+		}
+	}
 }
 
 FCKStyleDef.prototype._RemoveDuplicates = function( parent )
@@ -59,12 +71,12 @@
 	for ( var i = 0 ; i < parent.childNodes.length ; i++ )
 	{
 		var oChild = parent.childNodes[i] ;
-		
+
 		if ( oChild.nodeType != 1 )
 			continue ;
-		
+
 		this._RemoveDuplicates( oChild ) ;
-		
+
 		if ( this.IsEqual( oChild ) )
 			FCKTools.RemoveOuterTags( oChild ) ;
 	}
@@ -74,13 +86,13 @@
 {
 	if ( e.tagName != this.Element )
 		return false ;
-	
+
 	for ( var a in this.Attributes )
 	{
 		if ( e.getAttribute( a ) != this.Attributes[a] )
 			return false ;
 	}
-	
+
 	return true ;
 }
 
@@ -102,6 +114,6 @@
 		else
 			FCKTools.RemoveOuterTags( elementToCheck ) ;
 	}
-	
+
 	this._RemoveMe( oParent ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstyledef_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,46 +1,50 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstyledef_ie.js
- * 	FCKStyleDef Class: represents a single stylke definition. (IE specific)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleDef Class: represents a single stylke definition. (IE specific)
  */
 
 FCKStyleDef.prototype.ApplyToSelection = function()
 {
-	var oSelection = FCK.EditorDocument.selection ;
-	
+	var oSelection = FCK.ToolbarSet.CurrentInstance.EditorDocument.selection ;
+
 	if ( oSelection.type == 'Text' )
 	{
 		var oRange = oSelection.createRange() ;
-		
+
 		// Create the main element.
 		var e = document.createElement( this.Element ) ;
 		e.innerHTML = oRange.htmlText ;
-		
+
 		// Set the attributes.
 		this._AddAttributes( e ) ;
-		
+
 		// Remove the duplicated elements.
 		this._RemoveDuplicates( e ) ;
-		
+
 		// Replace the selection with the resulting HTML.
 		oRange.pasteHTML( e.outerHTML ) ;
 	}
 	else if ( oSelection.type == 'Control' )
 	{
-		var oControl = FCKSelection.GetSelectedElement() ;
+		var oControl = FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement() ;
 		if ( oControl.tagName == this.Element )
 			this._AddAttributes( oControl ) ;
 	}
@@ -50,10 +54,21 @@
 {
 	for ( var a in this.Attributes )
 	{
-		if ( a.toLowerCase() == 'style' )
-			targetElement.style.cssText = this.Attributes[a] ;
-		else
-			targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+		switch ( a.toLowerCase() )
+		{
+			case 'style' :
+				targetElement.style.cssText = this.Attributes[a] ;
+				break ;
+
+			case 'class' :
+				targetElement.setAttribute( 'className', this.Attributes[a], 0 ) ;
+				break ;
+
+			case 'src' :
+				targetElement.setAttribute( '_fcksavedurl', this.Attributes[a], 0 ) ;
+			default :
+				targetElement.setAttribute( a, this.Attributes[a], 0 ) ;
+		}
 	}
 }
 
@@ -63,12 +78,9 @@
 	{
 		var oChild = parent.children[i] ;
 		this._RemoveDuplicates( oChild ) ;
-		
+
 		if ( this.IsEqual( oChild ) )
-		{
-			oChild.insertAdjacentHTML( 'beforeBegin', oChild.innerHTML ) ;
-			oChild.parentElement.removeChild( oChild ) ;
-		}
+			FCKTools.RemoveOuterTags( oChild ) ;
 	}
 }
 
@@ -76,7 +88,7 @@
 {
 	if ( e.tagName != this.Element )
 		return false ;
-	
+
 	for ( var a in this.Attributes )
 	{
 		switch ( a.toLowerCase() )
@@ -94,7 +106,7 @@
 					return false ;
 		}
 	}
-	
+
 	return true ;
 }
 
@@ -125,6 +137,6 @@
 		else
 			FCKTools.RemoveOuterTags( elementToCheck ) ;
 	}
-	
+
 	this._RemoveMe( oParent ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstylesloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstylesloader.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckstylesloader.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstylesloader.js
- * 	FCKStylesLoader Class: this class define objects that are responsible
- * 	for loading the styles defined in the XML file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStylesLoader Class: this class define objects that are responsible
+ * for loading the styles defined in the XML file.
  */
 
 var FCKStylesLoader = function()
@@ -31,24 +35,24 @@
 	// Load the XML file into a FCKXml object.
 	var oXml = new FCKXml() ;
 	oXml.LoadUrl( stylesXmlUrl ) ;
-	
+
 	// Get the "Style" nodes defined in the XML file.
 	var aStyleNodes = oXml.SelectNodes( 'Styles/Style' ) ;
-	
+
 	// Add each style to our "Styles" collection.
 	for ( var i = 0 ; i < aStyleNodes.length ; i++ )
 	{
 		var sElement = aStyleNodes[i].attributes.getNamedItem('element').value.toUpperCase() ;
-	
+
 		// Create the style definition object.
 		var oStyleDef = new FCKStyleDef( aStyleNodes[i].attributes.getNamedItem('name').value, sElement ) ;
-		
+
 		if ( oStyleDef.IsObjectElement )
 			this.HasObjectElements = true ;
-		
+
 		// Get the attributes defined for the style (if any).
 		var aAttNodes = oXml.SelectNodes( 'Attribute', aStyleNodes[i] ) ;
-		
+
 		// Add the attributes to the style definition object.
 		for ( var j = 0 ; j < aAttNodes.length ; j++ )
 		{
@@ -63,13 +67,13 @@
 				oTempE.style.cssText = sAttValue ;
 				sAttValue = oTempE.style.cssText ;
 			}
-			
+
 			oStyleDef.AddAttribute( sAttName, sAttValue ) ;
 		}
 
 		// Add the style to the "Styles" collection using it's name as the key.
 		this.Styles[ oStyleDef.Name ] = oStyleDef ;
-		
+
 		// Add the style to the "StyleGroups" collection.
 		var aGroup = this.StyleGroups[sElement] ;
 		if ( aGroup == null )
@@ -79,6 +83,6 @@
 		}
 		aGroup[aGroup.length] = oStyleDef ;
 	}
-	
+
 	this.Loaded = true ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbar.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbar.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbar.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,62 +1,120 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbar.js
- * 	FCKToolbar Class: represents a toolbar. A toolbar is not the complete
- * 	toolbar set visible, but just a strip on it... a group of items.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbar Class: represents a toolbar in the toolbarset. It is a group of
+ * toolbar items.
  */
 
 var FCKToolbar = function()
 {
 	this.Items = new Array() ;
-	
-	var e = this.DOMTable = document.createElement( 'table' ) ;
-	e.className = 'TB_Toolbar' ;
 
-	// Sets the toolbar direction. IE uses "styleFloat" and Gecko uses "cssFloat".
-	e.style.styleFloat = e.style.cssFloat = FCKLang.Dir == 'rtl' ? 'right' : 'left' ;
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbar_Cleanup ) ;
+}
 
-	e.cellPadding = 0 ;
-	e.cellSpacing = 0 ;
-	e.border = 0 ;
+FCKToolbar.prototype.AddItem = function( item )
+{
+	return this.Items[ this.Items.length ] = item ;
+}
 
-	this.DOMRow = e.insertRow(-1) ;
+FCKToolbar.prototype.AddButton = function( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state )
+{
+	if ( typeof( iconPathOrStripInfoArrayOrIndex ) == 'number' )
+		 iconPathOrStripInfoArrayOrIndex = [ this.DefaultIconsStrip, this.DefaultIconSize, iconPathOrStripInfoArrayOrIndex ] ;
 
-	var oCell = this.DOMRow.insertCell(-1) ;
-	oCell.className = 'TB_Start' ;
-	oCell.innerHTML = '<img src="' + FCKConfig.SkinPath + 'images/toolbar.start.gif" width="7" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">' ;
+	var oButton = new FCKToolbarButtonUI( name, label, tooltip, iconPathOrStripInfoArrayOrIndex, style, state ) ;
+	oButton._FCKToolbar = this ;
+	oButton.OnClick = FCKToolbar_OnItemClick ;
 
-	FCKToolbarSet.DOMElement.appendChild( e ) ;
+	return this.AddItem( oButton ) ;
 }
 
-FCKToolbar.prototype.AddItem = function( toolbarItem )
+function FCKToolbar_OnItemClick( item )
 {
-	this.Items[ this.Items.length ] = toolbarItem ;
-	toolbarItem.CreateInstance( this ) ;
+	var oToolbar = item._FCKToolbar ;
+
+	if ( oToolbar.OnItemClick )
+		oToolbar.OnItemClick( oToolbar, item ) ;
 }
 
 FCKToolbar.prototype.AddSeparator = function()
 {
-	var oCell = this.DOMRow.insertCell(-1) ;
-	oCell.unselectable = 'on' ;
-	oCell.innerHTML = '<img src="' + FCKConfig.SkinPath + 'images/toolbar.separator.gif" width="5" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">' ;
+	this.AddItem( new FCKToolbarSeparator() ) ;
 }
 
-FCKToolbar.prototype.AddTerminator = function()
+FCKToolbar.prototype.Create = function( parentElement )
 {
-	var oCell = this.DOMRow.insertCell(-1) ;
-	oCell.className = 'TB_End' ;
-	oCell.innerHTML = '<img src="' + FCKConfig.SkinPath + 'images/toolbar.end.gif" width="12" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">' ;
+	if ( this.MainElement )
+	{
+//		this._Cleanup() ;
+		if ( this.MainElement.parentNode )
+			this.MainElement.parentNode.removeChild( this.MainElement ) ;
+		this.MainElement = null ;
+	}
+
+	var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+
+	var e = this.MainElement = oDoc.createElement( 'table' ) ;
+	e.className = 'TB_Toolbar' ;
+	e.style.styleFloat = e.style.cssFloat = ( FCKLang.Dir == 'ltr' ? 'left' : 'right' ) ;
+	e.dir = FCKLang.Dir ;
+	e.cellPadding = 0 ;
+	e.cellSpacing = 0 ;
+
+	this.RowElement = e.insertRow(-1) ;
+
+	// Insert the start cell.
+	var eCell ;
+
+	if ( !this.HideStart )
+	{
+		eCell = this.RowElement.insertCell(-1) ;
+		eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_Start' ;
+	}
+
+	for ( var i = 0 ; i < this.Items.length ; i++ )
+	{
+		this.Items[i].Create( this.RowElement.insertCell(-1) ) ;
+	}
+
+	// Insert the ending cell.
+	if ( !this.HideEnd )
+	{
+		eCell = this.RowElement.insertCell(-1) ;
+		eCell.appendChild( oDoc.createElement( 'div' ) ).className = 'TB_End' ;
+	}
+
+	parentElement.appendChild( e ) ;
 }
+
+function FCKToolbar_Cleanup()
+{
+	this.MainElement = null ;
+	this.RowElement = null ;
+}
+
+var FCKToolbarSeparator = function()
+{}
+
+FCKToolbarSeparator.prototype.Create = function( parentElement )
+{
+	FCKTools.AppendElement( parentElement, 'div' ).className = 'TB_Separator' ;
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,36 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarbreak_gecko.js
- * 	FCKToolbarBreak Class: breaks the toolbars.
- * 	It makes it possible to force the toolbar to brak to a new line.
- * 	This is the Gecko specific implementation.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarBreak Class: breaks the toolbars.
+ * It makes it possible to force the toolbar to break to a new line.
+ * This is the Gecko specific implementation.
  */
 
 var FCKToolbarBreak = function()
+{}
+
+FCKToolbarBreak.prototype.Create = function( targetElement )
 {
-	var oBreakDiv = document.createElement( 'div' ) ;
-	
+	var oBreakDiv = targetElement.ownerDocument.createElement( 'div' ) ;
+
 	oBreakDiv.style.clear = oBreakDiv.style.cssFloat = FCKLang.Dir == 'rtl' ? 'right' : 'left' ;
-	
-	FCKToolbarSet.DOMElement.appendChild( oBreakDiv ) ;
+
+	targetElement.appendChild( oBreakDiv ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,31 +1,38 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarbreak_ie.js
- * 	FCKToolbarBreak Class: breaks the toolbars.
- * 	It makes it possible to force the toolbar to brak to a new line.
- * 	This is the IE specific implementation.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarBreak Class: breaks the toolbars.
+ * It makes it possible to force the toolbar to brak to a new line.
+ * This is the IE specific implementation.
  */
 
 var FCKToolbarBreak = function()
+{}
+
+FCKToolbarBreak.prototype.Create = function( targetElement )
 {
-	var oBreakDiv = document.createElement( 'div' ) ;
-	
+	var oBreakDiv = FCKTools.GetElementDocument( targetElement ).createElement( 'div' ) ;
+
 	oBreakDiv.className = 'TB_Break' ;
-	
+
 	oBreakDiv.style.clear = FCKLang.Dir == 'rtl' ? 'left' : 'right' ;
-	
-	FCKToolbarSet.DOMElement.appendChild( oBreakDiv ) ;
+
+	targetElement.appendChild( oBreakDiv ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbutton.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbutton.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbutton.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,136 +1,65 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarbutton.js
- * 	FCKToolbarButton Class: represents a button in the toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarButton Class: represents a button in the toolbar.
  */
 
-var FCKToolbarButton = function( commandName, label, tooltip, style, sourceView, contextSensitive )
+var FCKToolbarButton = function( commandName, label, tooltip, style, sourceView, contextSensitive, icon )
 {
-	this.Command			= FCKCommands.GetCommand( commandName ) ;
-	this.Label				= label ? label : commandName ;
-	this.Tooltip			= tooltip ? tooltip : ( label ? label : commandName) ;
-	this.Style				= style ? style : FCK_TOOLBARITEM_ONLYICON ;
+	this.CommandName		= commandName ;
+	this.Label				= label ;
+	this.Tooltip			= tooltip ;
+	this.Style				= style ;
 	this.SourceView			= sourceView ? true : false ;
 	this.ContextSensitive	= contextSensitive ? true : false ;
-	this.IconPath			= FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
-	this.State				= FCK_UNKNOWN ;
+
+	if ( icon == null )
+		this.IconPath = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
+	else if ( typeof( icon ) == 'number' )
+		this.IconPath = [ FCKConfig.SkinPath + 'fck_strip.gif', 16, icon ] ;
 }
 
-FCKToolbarButton.prototype.CreateInstance = function( parentToolbar )
+FCKToolbarButton.prototype.Create = function( targetElement )
 {
-	this.DOMDiv = document.createElement( 'div' ) ;
-	this.DOMDiv.className = 'TB_Button_Off' ;
-
-	this.DOMDiv.FCKToolbarButton = this ;
-	
-	var sHtml =
-		'<table title="' + this.Tooltip + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' +
-			'<tr>' ;
-	
-	if ( this.Style != FCK_TOOLBARITEM_ONLYTEXT ) 
-		sHtml += '<td class="TB_Icon" unselectable="on"><img src="' + this.IconPath + '" width="21" height="21" unselectable="on"></td>' ;
-	
-	if ( this.Style != FCK_TOOLBARITEM_ONLYICON ) 
-		sHtml += '<td class="TB_Text" unselectable="on" nowrap>' + this.Label + '</td>' ;
-	
-	sHtml +=	
-			'</tr>' +
-		'</table>' ;
-	
-	this.DOMDiv.innerHTML = sHtml ;
-
-	var oCell = parentToolbar.DOMRow.insertCell(-1) ;
-	oCell.appendChild( this.DOMDiv ) ;
-	
-	this.RefreshState() ;
+	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( targetElement ) ;
 }
 
 FCKToolbarButton.prototype.RefreshState = function()
 {
-/*
-	TODO: Delete this commend block on stable version.
 	// Gets the actual state.
-//	var eState ;
+	var eState = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
 
-//	if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
-//		eState = FCK_TRISTATE_DISABLED ;
-//	else
-*/
-	// Gets the actual state.
-	var eState = this.Command.GetState() ;
-	
 	// If there are no state changes than do nothing and return.
-	if ( eState == this.State ) return ;
-	
-	// Sets the actual state.
-	this.State = eState ;
-	
-	switch ( this.State )
-	{
-		case FCK_TRISTATE_ON :
-			this.DOMDiv.className = 'TB_Button_On' ;
+	if ( eState == this._UIButton.State ) return ;
 
-			this.DOMDiv.onmouseover	= FCKToolbarButton_OnMouseOnOver ;
-			this.DOMDiv.onmouseout	= FCKToolbarButton_OnMouseOnOut ;
-			this.DOMDiv.onclick		= FCKToolbarButton_OnClick ;
-			
-			break ;
-		case FCK_TRISTATE_OFF :
-			this.DOMDiv.className = 'TB_Button_Off' ;
-
-			this.DOMDiv.onmouseover	= FCKToolbarButton_OnMouseOffOver ;
-			this.DOMDiv.onmouseout	= FCKToolbarButton_OnMouseOffOut ;
-			this.DOMDiv.onclick		= FCKToolbarButton_OnClick ;
-			
-			break ;
-		default :
-			this.Disable() ;
-			break ;
-	}
+	// Sets the actual state.
+	this._UIButton.ChangeState( eState ) ;
 }
 
-function FCKToolbarButton_OnMouseOnOver()
-{
-	this.className = 'TB_Button_On TB_Button_On_Over' ;
-}
-
-function FCKToolbarButton_OnMouseOnOut()
-{
-	this.className = 'TB_Button_On' ;
-}
-	
-function FCKToolbarButton_OnMouseOffOver()
-{
-	this.className = 'TB_Button_On TB_Button_Off_Over' ;
-}
-
-function FCKToolbarButton_OnMouseOffOut()
-{
-	this.className = 'TB_Button_Off' ;
-}
-	
-function FCKToolbarButton_OnClick(e)
-{
-	this.FCKToolbarButton.Click(e) ;
-	return false ;
-}
-
 FCKToolbarButton.prototype.Click = function()
 {
-	this.Command.Execute() ;
+	var oToolbarButton = this._ToolbarButton || this ;
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oToolbarButton.CommandName ).Execute() ;
 }
 
 FCKToolbarButton.prototype.Enable = function()
@@ -140,9 +69,6 @@
 
 FCKToolbarButton.prototype.Disable = function()
 {
-	this.State = FCK_TRISTATE_DISABLED ;
-	this.DOMDiv.className = 'TB_Button_Disabled' ;
-	this.DOMDiv.onmouseover	= null ;
-	this.DOMDiv.onmouseout	= null ;
-	this.DOMDiv.onclick		= null ;
+	// Sets the actual state.
+	this._UIButton.ChangeState( FCK_TRISTATE_DISABLED ) ;
 }
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,222 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarButtonUI Class: interface representation of a toolbar button.
+ */
+
+var FCKToolbarButtonUI = function( name, label, tooltip, iconPathOrStripInfoArray, style, state )
+{
+	this.Name		= name ;
+	this.Label		= label || name ;
+	this.Tooltip	= tooltip || this.Label ;
+	this.Style		= style || FCK_TOOLBARITEM_ONLYICON ;
+	this.State		= state || FCK_TRISTATE_OFF ;
+
+	this.Icon = new FCKIcon( iconPathOrStripInfoArray ) ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbarButtonUI_Cleanup ) ;
+}
+
+
+FCKToolbarButtonUI.prototype._CreatePaddingElement = function( document )
+{
+	var oImg = document.createElement( 'IMG' ) ;
+	oImg.className = 'TB_Button_Padding' ;
+	oImg.src = FCK_SPACER_PATH ;
+	return oImg ;
+}
+
+FCKToolbarButtonUI.prototype.Create = function( parentElement )
+{
+	var oMainElement = this.MainElement ;
+
+	if ( oMainElement )
+	{
+		FCKToolbarButtonUI_Cleanup.call(this) ;
+
+		if ( oMainElement.parentNode )
+			oMainElement.parentNode.removeChild( oMainElement ) ;
+		oMainElement = this.MainElement = null ;
+	}
+
+	var oDoc = FCKTools.GetElementDocument( parentElement ) ;
+
+	// Create the Main Element.
+	oMainElement = this.MainElement = oDoc.createElement( 'DIV' ) ;
+	oMainElement._FCKButton = this ;		// IE Memory Leak (Circular reference).
+	oMainElement.title		= this.Tooltip ;
+
+	// The following will prevent the button from catching the focus.
+	if ( FCKBrowserInfo.IsGecko )
+		 oMainElement.onmousedown	= FCKTools.CancelEvent ;
+
+	this.ChangeState( this.State, true ) ;
+
+	if ( this.Style == FCK_TOOLBARITEM_ONLYICON && !this.ShowArrow )
+	{
+		// <td><div class="TB_Button_On" title="Smiley">{Image}</div></td>
+
+		oMainElement.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+	}
+	else
+	{
+		// <td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td>{Image}</td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+		// <td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td><img class="TB_Button_Padding"></td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+
+		var oTable = oMainElement.appendChild( oDoc.createElement( 'TABLE' ) ) ;
+		oTable.cellPadding = 0 ;
+		oTable.cellSpacing = 0 ;
+
+		var oRow = oTable.insertRow(-1) ;
+
+		// The Image cell (icon or padding).
+		var oCell = oRow.insertCell(-1) ;
+
+		if ( this.Style == FCK_TOOLBARITEM_ONLYICON || this.Style == FCK_TOOLBARITEM_ICONTEXT )
+			oCell.appendChild( this.Icon.CreateIconElement( oDoc ) ) ;
+		else
+			oCell.appendChild( this._CreatePaddingElement( oDoc ) ) ;
+
+		if ( this.Style == FCK_TOOLBARITEM_ONLYTEXT || this.Style == FCK_TOOLBARITEM_ICONTEXT )
+		{
+			// The Text cell.
+			oCell = oRow.insertCell(-1) ;
+			oCell.className = 'TB_Button_Text' ;
+			oCell.noWrap = true ;
+			oCell.appendChild( oDoc.createTextNode( this.Label ) ) ;
+		}
+
+		if ( this.ShowArrow )
+		{
+			if ( this.Style != FCK_TOOLBARITEM_ONLYICON )
+			{
+				// A padding cell.
+				oRow.insertCell(-1).appendChild( this._CreatePaddingElement( oDoc ) ) ;
+			}
+
+			oCell = oRow.insertCell(-1) ;
+			var eImg = oCell.appendChild( oDoc.createElement( 'IMG' ) ) ;
+			eImg.src	= FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ;
+			eImg.width	= 5 ;
+			eImg.height	= 3 ;
+		}
+
+		// The last padding cell.
+		oCell = oRow.insertCell(-1) ;
+		oCell.appendChild( this._CreatePaddingElement( oDoc ) ) ;
+	}
+
+	parentElement.appendChild( oMainElement ) ;
+}
+
+FCKToolbarButtonUI.prototype.ChangeState = function( newState, force )
+{
+	if ( !force && this.State == newState )
+		return ;
+
+	var e = this.MainElement ;
+
+	switch ( parseInt( newState, 10 ) )
+	{
+		case FCK_TRISTATE_OFF :
+			e.className		= 'TB_Button_Off' ;
+			e.onmouseover	= FCKToolbarButton_OnMouseOverOff ;
+			e.onmouseout	= FCKToolbarButton_OnMouseOutOff ;
+			e.onclick		= FCKToolbarButton_OnClick ;
+
+			break ;
+
+		case FCK_TRISTATE_ON :
+			e.className		= 'TB_Button_On' ;
+			e.onmouseover	= FCKToolbarButton_OnMouseOverOn ;
+			e.onmouseout	= FCKToolbarButton_OnMouseOutOn ;
+			e.onclick		= FCKToolbarButton_OnClick ;
+
+			break ;
+
+		case FCK_TRISTATE_DISABLED :
+			e.className		= 'TB_Button_Disabled' ;
+			e.onmouseover	= null ;
+			e.onmouseout	= null ;
+			e.onclick		= null ;
+
+			break ;
+	}
+
+	this.State = newState ;
+}
+
+function FCKToolbarButtonUI_Cleanup()
+{
+	if ( this.MainElement )
+	{
+		this.MainElement._FCKButton = null ;
+		this.MainElement = null ;
+	}
+}
+
+// Event Handlers.
+
+function FCKToolbarButton_OnMouseOverOn()
+{
+	this.className = 'TB_Button_On_Over' ;
+}
+
+function FCKToolbarButton_OnMouseOutOn()
+{
+	this.className = 'TB_Button_On' ;
+}
+
+function FCKToolbarButton_OnMouseOverOff()
+{
+	this.className = 'TB_Button_Off_Over' ;
+}
+
+function FCKToolbarButton_OnMouseOutOff()
+{
+	this.className = 'TB_Button_Off' ;
+}
+
+function FCKToolbarButton_OnClick( e )
+{
+	if ( this._FCKButton.OnClick )
+		this._FCKButton.OnClick( this._FCKButton ) ;
+}
+
+/*
+	Sample outputs:
+
+	This is the base structure. The variation is the image that is marked as {Image}:
+		<td><div class="TB_Button_On" title="Smiley">{Image}</div></td>
+		<td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td>{Image}</td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+		<td><div class="TB_Button_On" title="Smiley"><table cellpadding="0" cellspacing="0"><tr><td><img class="TB_Button_Padding"></td><td nowrap>Toolbar Button</td><td><img class="TB_Button_Padding"></td></tr></table></div></td>
+
+	These are samples of possible {Image} values:
+
+		Strip - IE version:
+			<div class="TB_Button_Image"><img src="strip.gif" style="top:-16px"></div>
+
+		Strip : Firefox, Safari and Opera version
+			<img class="TB_Button_Image" style="background-position: 0px -16px;background-image: url(strip.gif);">
+
+		No-Strip : Browser independent:
+			<img class="TB_Button_Image" src="smiley.gif">
+*/
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,35 +1,42 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarfontformatcombo.js
- * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarPanelButton Class: Handles the Fonts combo selector.
  */
 
 var FCKToolbarFontFormatCombo = function( tooltip, style )
 {
-	this.Command	= FCKCommands.GetCommand( 'FontFormat' ) ;
+	this.CommandName = 'FontFormat' ;
 	this.Label		= this.GetLabel() ;
 	this.Tooltip	= tooltip ? tooltip : this.Label ;
 	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
-	
+
+	this.NormalLabel = 'Normal' ;
+
 	this.PanelWidth = 190 ;
 }
 
 // Inherit from FCKToolbarSpecialCombo.
 FCKToolbarFontFormatCombo.prototype = new FCKToolbarSpecialCombo ;
 
+
 FCKToolbarFontFormatCombo.prototype.GetLabel = function()
 {
 	return FCKLang.FontFormat ;
@@ -37,6 +44,17 @@
 
 FCKToolbarFontFormatCombo.prototype.CreateItems = function( targetSpecialCombo )
 {
+	var oTargetDoc = targetSpecialCombo._Panel.Document ;
+
+	// Add the Editor Area CSS to the panel to create a realistic preview.
+	FCKTools.AppendStyleSheet( oTargetDoc, FCKConfig.ToolbarComboPreviewCSS ) ;
+
+	// Add ID and Class to the body
+	if ( FCKConfig.BodyId && FCKConfig.BodyId.length > 0 )
+		oTargetDoc.body.id = FCKConfig.BodyId ;
+	if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
+		oTargetDoc.body.className += ' ' + FCKConfig.BodyClass ;
+
 	// Get the format names from the language file.
 	var aNames = FCKLang['FontFormats'].split(';') ;
 	var oNames = {
@@ -54,11 +72,43 @@
 
 	// Get the available formats from the configuration file.
 	var aTags = FCKConfig.FontFormats.split(';') ;
-	
+
 	for ( var i = 0 ; i < aTags.length ; i++ )
 	{
-		if ( aTags[i] == 'div' && FCKBrowserInfo.IsGecko )
-			continue ;
-		this._Combo.AddItem( aTags[i], '<' + aTags[i] + '>' + oNames[aTags[i]] + '</' + aTags[i] + '>', oNames[aTags[i]] ) ;
+		// Support for DIV in Firefox has been reintroduced on version 2.2.
+//		if ( aTags[i] == 'div' && FCKBrowserInfo.IsGecko )
+//			continue ;
+
+		var sTag	= aTags[i] ;
+		var sLabel	= oNames[sTag] ;
+
+		if ( sTag == 'p' )
+			this.NormalLabel = sLabel ;
+
+		this._Combo.AddItem( sTag, '<div class="BaseFont"><' + sTag + '>' + sLabel + '</' + sTag + '></div>', sLabel ) ;
 	}
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+	FCKToolbarFontFormatCombo.prototype.RefreshActiveItems = function( combo, value )
+	{
+//		FCKDebug.Output( 'FCKToolbarFontFormatCombo Value: ' + value ) ;
+
+		// IE returns normal for DIV and P, so to avoid confusion, we will not show it if normal.
+		if ( value == this.NormalLabel )
+		{
+			if ( combo.Label != '&nbsp;' )
+				combo.DeselectAll(true) ;
+		}
+		else
+		{
+			if ( this._LastValue == value )
+				return ;
+
+			combo.SelectItemByLabel( value, true ) ;
+		}
+
+		this._LastValue = value ;
+	}
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,25 +1,29 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarfontscombo.js
- * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarPanelButton Class: Handles the Fonts combo selector.
  */
 
 var FCKToolbarFontsCombo = function( tooltip, style )
 {
-	this.Command	= FCKCommands.GetCommand( 'FontName' ) ;
+	this.CommandName	= 'FontName' ;
 	this.Label		= this.GetLabel() ;
 	this.Tooltip	= tooltip ? tooltip : this.Label ;
 	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
@@ -28,6 +32,7 @@
 // Inherit from FCKToolbarSpecialCombo.
 FCKToolbarFontsCombo.prototype = new FCKToolbarSpecialCombo ;
 
+
 FCKToolbarFontsCombo.prototype.GetLabel = function()
 {
 	return FCKLang.Font ;
@@ -36,7 +41,7 @@
 FCKToolbarFontsCombo.prototype.CreateItems = function( targetSpecialCombo )
 {
 	var aFonts = FCKConfig.FontNames.split(';') ;
-	
+
 	for ( var i = 0 ; i < aFonts.length ; i++ )
-		this._Combo.AddItem( aFonts[i], '<span style="font-family: \'' + aFonts[i] + '\'; font-size: 12px;">' + aFonts[i] + '</span>' ) ;
+		this._Combo.AddItem( aFonts[i], '<font face="' + aFonts[i] + '" style="font-size: 12px">' + aFonts[i] + '</font>' ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,25 +1,29 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarfontsizecombo.js
- * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarPanelButton Class: Handles the Fonts combo selector.
  */
 
 var FCKToolbarFontSizeCombo = function( tooltip, style )
 {
-	this.Command	= FCKCommands.GetCommand( 'FontSize' ) ;
+	this.CommandName	= 'FontSize' ;
 	this.Label		= this.GetLabel() ;
 	this.Tooltip	= tooltip ? tooltip : this.Label ;
 	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
@@ -28,6 +32,7 @@
 // Inherit from FCKToolbarSpecialCombo.
 FCKToolbarFontSizeCombo.prototype = new FCKToolbarSpecialCombo ;
 
+
 FCKToolbarFontSizeCombo.prototype.GetLabel = function()
 {
 	return FCKLang.FontSize ;
@@ -36,9 +41,9 @@
 FCKToolbarFontSizeCombo.prototype.CreateItems = function( targetSpecialCombo )
 {
 	targetSpecialCombo.FieldWidth = 70 ;
-	
+
 	var aSizes = FCKConfig.FontSizes.split(';') ;
-	
+
 	for ( var i = 0 ; i < aSizes.length ; i++ )
 	{
 		var aSizeParts = aSizes[i].split('/') ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,83 +1,91 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarpanelbutton.js
- * 	FCKToolbarPanelButton Class: represents a special button in the toolbar
- * 	that shows a panel when pressed.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarPanelButton Class: represents a special button in the toolbar
+ * that shows a panel when pressed.
  */
 
-var FCKToolbarPanelButton = function( commandName, label, tooltip, style )
+var FCKToolbarPanelButton = function( commandName, label, tooltip, style, icon )
 {
-	this.Command	= FCKCommands.GetCommand( commandName ) ;
-	this.Label		= label ? label : commandName ;
-	this.Tooltip	= tooltip ? tooltip : ( label ? label : commandName) ;
-	this.Style		= style ? style : FCK_TOOLBARITEM_ONLYICON ;
-	this.State		= FCK_UNKNOWN ;
+	this.CommandName = commandName ;
+
+	var oIcon ;
+
+	if ( icon == null )
+		oIcon = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
+	else if ( typeof( icon ) == 'number' )
+		oIcon = [ FCKConfig.SkinPath + 'fck_strip.gif', 16, icon ] ;
+
+	var oUIButton = this._UIButton = new FCKToolbarButtonUI( commandName, label, tooltip, oIcon, style ) ;
+	oUIButton._FCKToolbarPanelButton = this ;
+	oUIButton.ShowArrow = true ;
+	oUIButton.OnClick = FCKToolbarPanelButton_OnButtonClick ;
 }
 
-FCKToolbarPanelButton.prototype.Click = function(e)
+FCKToolbarPanelButton.prototype.TypeName = 'FCKToolbarPanelButton' ;
+
+FCKToolbarPanelButton.prototype.Create = function( parentElement )
 {
-	// For Mozilla we must stop the event propagation to avoid it hiding 
-	// the panel because of a click outside of it.
-	if ( e )
-	{
-		e.stopPropagation() ;
-		FCKPanelEventHandlers.OnDocumentClick( e ) ;
-	}
+	parentElement.className += 'Menu' ;
 
-	if ( this.State != FCK_TRISTATE_DISABLED )
-	{
-		this.Command.Execute(0, this.DOMDiv.offsetHeight, this.DOMDiv) ;
-//			this.FCKToolbarButton.HandleOnClick( this, e ) ;
-	}
-		
-	return false ;
+	this._UIButton.Create( parentElement ) ;
+
+	var oPanel = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName )._Panel ;
+	oPanel._FCKToolbarPanelButton = this ;
+
+	var eLineDiv = oPanel.Document.body.appendChild( oPanel.Document.createElement( 'div' ) ) ;
+	eLineDiv.style.position = 'absolute' ;
+	eLineDiv.style.top = '0px' ;
+
+	var eLine = this.LineImg = eLineDiv.appendChild( oPanel.Document.createElement( 'IMG' ) ) ;
+	eLine.className = 'TB_ConnectionLine' ;
+//	eLine.style.backgroundColor = 'Red' ;
+	eLine.src = FCK_SPACER_PATH ;
+
+	oPanel.OnHide = FCKToolbarPanelButton_OnPanelHide ;
 }
 
-FCKToolbarPanelButton.prototype.CreateInstance = function( parentToolbar )
+/*
+	Events
+*/
+
+function FCKToolbarPanelButton_OnButtonClick( toolbarButton )
 {
-	this.DOMDiv = document.createElement( 'div' ) ;
-	this.DOMDiv.className = 'TB_Button_Off' ;
+	var oButton = this._FCKToolbarPanelButton ;
+	var e = oButton._UIButton.MainElement ;
 
-	this.DOMDiv.FCKToolbarButton = this ;
-	
-	var sHtml =
-		'<table title="' + this.Tooltip + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' +
-			'<tr>' ;
-			
-	if ( this.Style != FCK_TOOLBARITEM_ONLYTEXT ) 
-		sHtml += '<td class="TB_Icon" unselectable="on"><img src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="21" unselectable="on"></td>' ;
-				
-	if ( this.Style != FCK_TOOLBARITEM_ONLYICON ) 
-		sHtml += '<td class="TB_Text" unselectable="on" nowrap>' + this.Label + '</td>' ;
-	
-	sHtml +=
-				'<td class="TB_ButtonArrow" unselectable="on"><img src="' + FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif" width="5" height="3"></td>' +
-			'</tr>' +
-		'</table>' ;
-	
-	this.DOMDiv.innerHTML = sHtml ;
+	oButton._UIButton.ChangeState( FCK_TRISTATE_ON ) ;
 
-	var oCell = parentToolbar.DOMRow.insertCell(-1) ;
-	oCell.appendChild( this.DOMDiv ) ;
-	
-	this.RefreshState() ;
+	oButton.LineImg.style.width = ( e.offsetWidth - 2 ) + 'px' ;
+
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( oButton.CommandName ).Execute( 0, e.offsetHeight - 1, e ) ; // -1 to be over the border
 }
 
+function FCKToolbarPanelButton_OnPanelHide()
+{
+	var oMenuButton = this._FCKToolbarPanelButton ;
+	oMenuButton._UIButton.ChangeState( FCK_TRISTATE_OFF ) ;
+}
+
 // The Panel Button works like a normal button so the refresh state functions
 // defined for the normal button can be reused here.
 FCKToolbarPanelButton.prototype.RefreshState	= FCKToolbarButton.prototype.RefreshState ;
 FCKToolbarPanelButton.prototype.Enable			= FCKToolbarButton.prototype.Enable ;
-FCKToolbarPanelButton.prototype.Disable			= FCKToolbarButton.prototype.Disable ;
\ No newline at end of file
+FCKToolbarPanelButton.prototype.Disable			= FCKToolbarButton.prototype.Disable ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,58 +1,67 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarspecialcombo.js
- * 	FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
- * 	by the special combo toolbar elements like font name, font size, paragraph format, etc...
- * 	
- * 	The following properties and methods must be implemented when inheriting from
- * 	this class:
- * 		- Property:	Command								[ The command to be executed ]
- * 		- Method:	GetLabel()							[ Returns the label ]
- * 		-			CreateItems( targetSpecialCombo )	[ Add all items in the special combo ]
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
+ * by the special combo toolbar elements like font name, font size, paragraph format, etc...
+ *
+ * The following properties and methods must be implemented when inheriting from
+ * this class:
+ * 	- Property:	CommandName							[ The command name to be executed ]
+ * 	- Method:	GetLabel()							[ Returns the label ]
+ * 	-			CreateItems( targetSpecialCombo )	[ Add all items in the special combo ]
  */
 
 var FCKToolbarSpecialCombo = function()
 {
 	this.SourceView			= false ;
 	this.ContextSensitive	= true ;
+	this._LastValue			= null ;
 }
 
+
 function FCKToolbarSpecialCombo_OnSelect( itemId, item )
 {
-	this.Command.Execute( itemId, item ) ;
+	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
 }
 
-FCKToolbarSpecialCombo.prototype.CreateInstance = function( parentToolbar )
+FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
 {
-	this._Combo = new FCKSpecialCombo( this.GetLabel() ) ;
+	this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;
+
+	/*
 	this._Combo.FieldWidth		= this.FieldWidth		!= null ? this.FieldWidth		: 100 ;
 	this._Combo.PanelWidth		= this.PanelWidth		!= null ? this.PanelWidth		: 150 ;
 	this._Combo.PanelMaxHeight	= this.PanelMaxHeight	!= null ? this.PanelMaxHeight	: 150 ;
-	
+	*/
+
 	//this._Combo.Command.Name = this.Command.Name;
 //	this._Combo.Label	= this.Label ;
 	this._Combo.Tooltip	= this.Tooltip ;
 	this._Combo.Style	= this.Style ;
-	
+
 	this.CreateItems( this._Combo ) ;
 
-	this._Combo.Create( parentToolbar.DOMRow.insertCell(-1) ) ;
+	this._Combo.Create( targetElement ) ;
 
-	this._Combo.Command = this.Command ;
-	
+	this._Combo.CommandName = this.CommandName ;
+
 	this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
 }
 
@@ -67,29 +76,37 @@
 {
 	// Gets the actual state.
 	var eState ;
-	
+
 //	if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
 //		eState = FCK_TRISTATE_DISABLED ;
 //	else
 //	{
-		var sValue = this.Command.GetState() ;
+		var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
 
+//		FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;
+
 		if ( sValue != FCK_TRISTATE_DISABLED )
 		{
 			eState = FCK_TRISTATE_ON ;
-			
+
 			if ( this.RefreshActiveItems )
 				this.RefreshActiveItems( this._Combo, sValue ) ;
 			else
-				FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
+			{
+				if ( this._LastValue != sValue )
+				{
+					this._LastValue = sValue ;
+					FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
+				}
+			}
 		}
 		else
 			eState = FCK_TRISTATE_DISABLED ;
 //	}
-	
+
 	// If there are no state changes then do nothing and return.
 	if ( eState == this.State ) return ;
-	
+
 	if ( eState == FCK_TRISTATE_DISABLED )
 	{
 		this._Combo.DeselectAll() ;
@@ -114,4 +131,4 @@
 	this._Combo.DeselectAll() ;
 	this._Combo.SetLabel( '' ) ;
 	this._Combo.SetEnabled( false ) ;
-}
\ No newline at end of file
+}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,25 +1,29 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarstylecombo.js
- * 	FCKToolbarPanelButton Class: Handles the Fonts combo selector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKToolbarPanelButton Class: Handles the Fonts combo selector.
  */
 
 var FCKToolbarStyleCombo = function( tooltip, style )
 {
-	this.Command	= FCKCommands.GetCommand( 'Style' ) ;
+	this.CommandName = 'Style' ;
 	this.Label		= this.GetLabel() ;
 	this.Tooltip	= tooltip ? tooltip : this.Label ;
 	this.Style		= style ? style : FCK_TOOLBARITEM_ICONTEXT ;
@@ -28,6 +32,7 @@
 // Inherit from FCKToolbarSpecialCombo.
 FCKToolbarStyleCombo.prototype = new FCKToolbarSpecialCombo ;
 
+
 FCKToolbarStyleCombo.prototype.GetLabel = function()
 {
 	return FCKLang.Style ;
@@ -35,24 +40,36 @@
 
 FCKToolbarStyleCombo.prototype.CreateItems = function( targetSpecialCombo )
 {
-	// Add the Editor Area CSS to the Styles panel so the style classes are previewed correctly.
-	FCKTools.AppendStyleSheet( targetSpecialCombo._Panel.Document, FCKConfig.EditorAreaCSS ) ;
+	var oTargetDoc = targetSpecialCombo._Panel.Document ;
 
+	// Add the Editor Area CSS to the panel so the style classes are previewed correctly.
+	FCKTools.AppendStyleSheet( oTargetDoc, FCKConfig.ToolbarComboPreviewCSS ) ;
+	oTargetDoc.body.className += ' ForceBaseFont' ;
+
+	// Add ID and Class to the body
+	if ( FCKConfig.BodyId && FCKConfig.BodyId.length > 0 )
+		oTargetDoc.body.id = FCKConfig.BodyId ;
+	if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
+		oTargetDoc.body.className += ' ' + FCKConfig.BodyClass ;
+
+
 	// For some reason Gecko is blocking inside the "RefreshVisibleItems" function.
-	if ( ! FCKBrowserInfo.IsGecko )
+	// The problem is present only in old versions
+	if ( !( FCKBrowserInfo.IsGecko && FCKBrowserInfo.IsGecko10 ) )
 		targetSpecialCombo.OnBeforeClick = this.RefreshVisibleItems ;
 
 	// Add the styles to the special combo.
-	for ( var s in this.Command.Styles )
+	var aCommandStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Styles ;
+	for ( var s in aCommandStyles )
 	{
-		var oStyle = this.Command.Styles[s] ;
+		var oStyle = aCommandStyles[s] ;
 		var oItem ;
-		
+
 		if ( oStyle.IsObjectElement )
 			oItem = targetSpecialCombo.AddItem( s, s ) ;
 		else
 			oItem = targetSpecialCombo.AddItem( s, oStyle.GetOpenerTag() + s + oStyle.GetCloserTag() ) ;
-			
+
 		oItem.Style = oStyle ;
 	}
 }
@@ -61,10 +78,10 @@
 {
 	// Clear the actual selection.
 	targetSpecialCombo.DeselectAll() ;
-	
+
 	// Get the active styles.
-	var aStyles = this.Command.GetActiveStyles() ;
-	
+	var aStyles = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetActiveStyles() ;
+
 	if ( aStyles.length > 0 )
 	{
 		// Select the active styles in the combo.

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckw3crange.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckw3crange.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckw3crange.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,448 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 class partially implements the W3C DOM Range for browser that don't
+ * support the standards (like IE):
+ * http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
+ */
+
+var FCKW3CRange = function( parentDocument )
+{
+	this._Document = parentDocument ;
+
+	this.startContainer	= null ;
+	this.startOffset	= null ;
+	this.endContainer	= null ;
+	this.endOffset		= null ;
+	this.collapsed		= true ;
+}
+
+FCKW3CRange.CreateRange = function( parentDocument )
+{
+	// We could opt to use the Range implentation of the browsers. The problem
+	// is that every browser have different bugs on their implementations,
+	// mostly related to different interpretations of the W3C specifications.
+	// So, for now, let's use our implementation and pray for browsers fixings
+	// soon. Otherwise will go crazy on trying to find out workarounds.
+	/*
+	// Get the browser implementation of the range, if available.
+	if ( parentDocument.createRange )
+	{
+		var range = parentDocument.createRange() ;
+		if ( typeof( range.startContainer ) != 'undefined' )
+			return range ;
+	}
+	*/
+	return new FCKW3CRange( parentDocument ) ;
+}
+
+FCKW3CRange.CreateFromRange = function( parentDocument, sourceRange )
+{
+	var range = FCKW3CRange.CreateRange( parentDocument ) ;
+	range.setStart( sourceRange.startContainer, sourceRange.startOffset ) ;
+	range.setEnd( sourceRange.endContainer, sourceRange.endOffset ) ;
+	return range ;
+}
+
+FCKW3CRange.prototype =
+{
+
+	_UpdateCollapsed : function()
+	{
+      this.collapsed = ( this.startContainer == this.endContainer && this.startOffset == this.endOffset ) ;
+	},
+
+	// W3C requires a check for the new position. If it is after the end
+	// boundary, the range should be collapsed to the new start. It seams we
+	// will not need this check for our use of this class so we can ignore it for now.
+	setStart : function( refNode, offset )
+	{
+		this.startContainer	= refNode ;
+		this.startOffset	= offset ;
+
+		if ( !this.endContainer )
+		{
+			this.endContainer	= refNode ;
+			this.endOffset		= offset ;
+		}
+
+		this._UpdateCollapsed() ;
+	},
+
+	// W3C requires a check for the new position. If it is before the start
+	// boundary, the range should be collapsed to the new end. It seams we
+	// will not need this check for our use of this class so we can ignore it for now.
+	setEnd : function( refNode, offset )
+	{
+		this.endContainer	= refNode ;
+		this.endOffset		= offset ;
+
+		if ( !this.startContainer )
+		{
+			this.startContainer	= refNode ;
+			this.startOffset	= offset ;
+		}
+
+		this._UpdateCollapsed() ;
+	},
+
+	setStartAfter : function( refNode )
+	{
+		this.setStart( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) + 1 ) ;
+	},
+
+	setStartBefore : function( refNode )
+	{
+		this.setStart( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) ) ;
+	},
+
+	setEndAfter : function( refNode )
+	{
+		this.setEnd( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) + 1 ) ;
+	},
+
+	setEndBefore : function( refNode )
+	{
+		this.setEnd( refNode.parentNode, FCKDomTools.GetIndexOf( refNode ) ) ;
+	},
+
+	collapse : function( toStart )
+	{
+		if ( toStart )
+		{
+			this.endContainer	= this.startContainer ;
+			this.endOffset		= this.startOffset ;
+		}
+		else
+		{
+			this.startContainer	= this.endContainer ;
+			this.startOffset	= this.endOffset ;
+		}
+
+		this.collapsed = true ;
+	},
+
+	selectNodeContents : function( refNode )
+	{
+		this.setStart( refNode, 0 ) ;
+		this.setEnd( refNode, refNode.nodeType == 3 ? refNode.data.length : refNode.childNodes.length ) ;
+	},
+
+	insertNode : function( newNode )
+	{
+		var startContainer = this.startContainer ;
+		var startOffset = this.startOffset ;
+
+		// If we are in a text node.
+		if ( startContainer.nodeType == 3 )
+		{
+			startContainer.splitText( startOffset ) ;
+
+			// Check if it is necessary to update the end boundary.
+			if ( startContainer == this.endContainer )
+				this.setEnd( startContainer.nextSibling, this.endOffset - this.startOffset ) ;
+
+			// Insert the new node it after the text node.
+			FCKDomTools.InsertAfterNode( startContainer, newNode ) ;
+
+			return ;
+		}
+		else
+		{
+			// Simply insert the new node before the current start node.
+			startContainer.insertBefore( newNode, startContainer.childNodes[ startOffset ] || null ) ;
+
+			// Check if it is necessary to update the end boundary.
+			if ( startContainer == this.endContainer )
+			{
+				this.endOffset++ ;
+				this.collapsed = false ;
+			}
+		}
+	},
+
+	deleteContents : function()
+	{
+		if ( this.collapsed )
+			return ;
+
+		this._ExecContentsAction( 0 ) ;
+	},
+
+	extractContents : function()
+	{
+		var docFrag = new FCKDocumentFragment( this._Document ) ;
+
+		if ( !this.collapsed )
+			this._ExecContentsAction( 1, docFrag ) ;
+
+		return docFrag ;
+	},
+
+	// The selection may be lost when clonning (due to the splitText() call).
+	cloneContents : function()
+	{
+		var docFrag = new FCKDocumentFragment( this._Document ) ;
+
+		if ( !this.collapsed )
+			this._ExecContentsAction( 2, docFrag ) ;
+
+		return docFrag ;
+	},
+
+	_ExecContentsAction : function( action, docFrag )
+	{
+		var startNode	= this.startContainer ;
+		var endNode		= this.endContainer ;
+
+		var startOffset	= this.startOffset ;
+		var endOffset	= this.endOffset ;
+
+		var removeStartNode	= false ;
+		var removeEndNode	= false ;
+
+		// Check the start and end nodes and make the necessary removals or changes.
+
+		// Start from the end, otherwise DOM mutations (splitText) made in the
+		// start boundary may interfere on the results here.
+
+		// For text containers, we must simply split the node and point to the
+		// second part. The removal will be handled by the rest of the code .
+		if ( endNode.nodeType == 3 )
+			endNode = endNode.splitText( endOffset ) ;
+		else
+		{
+			// If the end container has children and the offset is pointing
+			// to a child, then we should start from it.
+			if ( endNode.childNodes.length > 0 )
+			{
+				// If the offset points after the last node.
+				if ( endOffset > endNode.childNodes.length - 1 )
+				{
+					// Let's create a temporary node and mark it for removal.
+					endNode = FCKDomTools.InsertAfterNode( endNode.lastChild, this._Document.createTextNode('') ) ;
+					removeEndNode = true ;
+				}
+				else
+					endNode = endNode.childNodes[ endOffset ] ;
+			}
+		}
+
+		// For text containers, we must simply split the node. The removal will
+		// be handled by the rest of the code .
+		if ( startNode.nodeType == 3 )
+		{
+			startNode.splitText( startOffset ) ;
+
+			// In cases the end node is the same as the start node, the above
+			// splitting will also split the end, so me must move the end to
+			// the second part of the split.
+			if ( startNode == endNode )
+				endNode = startNode.nextSibling ;
+		}
+		else
+		{
+			// If the start container has children and the offset is pointing
+			// to a child, then we should start from its previous sibling.
+			if ( startNode.childNodes.length > 0 &&  startOffset <= startNode.childNodes.length - 1 )
+			{
+				// If the offset points to the first node, we don't have a
+				// sibling, so let's use the first one, but mark it for removal.
+				if ( startOffset == 0 )
+				{
+					// Let's create a temporary node and mark it for removal.
+					startNode = startNode.insertBefore( this._Document.createTextNode(''), startNode.firstChild ) ;
+					removeStartNode = true ;
+				}
+				else
+					startNode = startNode.childNodes[ startOffset ].previousSibling ;
+			}
+		}
+
+		// Get the parent nodes tree for the start and end boundaries.
+		var startParents	= FCKDomTools.GetParents( startNode ) ;
+		var endParents		= FCKDomTools.GetParents( endNode ) ;
+
+		// Compare them, to find the top most siblings.
+		var i, topStart, topEnd ;
+
+		for ( i = 0 ; i < startParents.length ; i++ )
+		{
+			topStart	= startParents[i] ;
+			topEnd		= endParents[i] ;
+
+			// The compared nodes will match until we find the top most
+			// siblings (different nodes that have the same parent).
+			// "i" will hold the index in the parants array for the top
+			// most element.
+			if ( topStart != topEnd )
+				break ;
+		}
+
+		var clone, levelStartNode, levelClone, currentNode, currentSibling ;
+
+		if ( docFrag )
+			clone = docFrag.RootNode ;
+
+		// Remove all successive sibling nodes for every node in the
+		// startParents tree.
+		for ( var j = i ; j < startParents.length ; j++ )
+		{
+			levelStartNode = startParents[j] ;
+
+			// For Extract and Clone, we must clone this level.
+			if ( clone && levelStartNode != startNode )		// action = 0 = Delete
+				levelClone = clone.appendChild( levelStartNode.cloneNode( levelStartNode == startNode ) ) ;
+
+			currentNode = levelStartNode.nextSibling ;
+
+			while( currentNode )
+			{
+				// Stop processing when the current node matches a node in the
+				// endParents tree or if it is the endNode.
+				if ( currentNode == endParents[j] || currentNode == endNode )
+					break ;
+
+				// Cache the next sibling.
+				currentSibling = currentNode.nextSibling ;
+
+				// If clonning, just clone it.
+				if ( action == 2 )	// 2 = Clone
+					clone.appendChild( currentNode.cloneNode( true ) ) ;
+				else
+				{
+					// Both Delete and Extract will remove the node.
+					currentNode.parentNode.removeChild( currentNode ) ;
+
+					// When Extracting, move the removed node to the docFrag.
+					if ( action == 1 )	// 1 = Extract
+						clone.appendChild( currentNode ) ;
+				}
+
+				currentNode = currentSibling ;
+			}
+
+			if ( clone )
+				clone = levelClone ;
+		}
+
+		if ( docFrag )
+			clone = docFrag.RootNode ;
+
+		// Remove all previous sibling nodes for every node in the
+		// endParents tree.
+		for ( var k = i ; k < endParents.length ; k++ )
+		{
+			levelStartNode = endParents[k] ;
+
+			// For Extract and Clone, we must clone this level.
+			if ( action > 0 && levelStartNode != endNode )		// action = 0 = Delete
+				levelClone = clone.appendChild( levelStartNode.cloneNode( levelStartNode == endNode ) ) ;
+
+			// The processing of siblings may have already been done by the parent.
+			if ( !startParents[k] || levelStartNode.parentNode != startParents[k].parentNode )
+			{
+				currentNode = levelStartNode.previousSibling ;
+
+				while( currentNode )
+				{
+					// Stop processing when the current node matches a node in the
+					// startParents tree or if it is the startNode.
+					if ( currentNode == startParents[k] || currentNode == startNode )
+						break ;
+
+					// Cache the next sibling.
+					currentSibling = currentNode.previousSibling ;
+
+					// If clonning, just clone it.
+					if ( action == 2 )	// 2 = Clone
+						clone.insertBefore( currentNode.cloneNode( true ), clone.firstChild ) ;
+					else
+					{
+						// Both Delete and Extract will remove the node.
+						currentNode.parentNode.removeChild( currentNode ) ;
+
+						// When Extracting, mode the removed node to the docFrag.
+						if ( action == 1 )	// 1 = Extract
+							clone.insertBefore( currentNode, clone.firstChild ) ;
+					}
+
+					currentNode = currentSibling ;
+				}
+			}
+
+			if ( clone )
+				clone = levelClone ;
+		}
+
+		if ( action == 2 )		// 2 = Clone.
+		{
+			// No changes in the DOM should be done, so fix the split text (if any).
+
+			var startTextNode = this.startContainer ;
+			if ( startTextNode.nodeType == 3 )
+			{
+				startTextNode.data += startTextNode.nextSibling.data ;
+				startTextNode.parentNode.removeChild( startTextNode.nextSibling ) ;
+			}
+
+			var endTextNode = this.endContainer ;
+			if ( endTextNode.nodeType == 3 && endTextNode.nextSibling )
+			{
+				endTextNode.data += endTextNode.nextSibling.data ;
+				endTextNode.parentNode.removeChild( endTextNode.nextSibling ) ;
+			}
+		}
+		else
+		{
+			// Collapse the range.
+
+			// If a node has been partially selected, collapse the range between
+			// topStart and topEnd. Otherwise, simply collapse it to the start. (W3C specs).
+			if ( topStart && topEnd && ( startNode.parentNode != topStart.parentNode || endNode.parentNode != topEnd.parentNode ) )
+				this.setStart( topEnd.parentNode, FCKDomTools.GetIndexOf( topEnd ) ) ;
+
+			// Collapse it to the start.
+			this.collapse( true ) ;
+		}
+
+		// Cleanup any marked node.
+		if( removeStartNode )
+			startNode.parentNode.removeChild( startNode ) ;
+
+		if( removeEndNode && endNode.parentNode )
+			endNode.parentNode.removeChild( endNode ) ;
+	},
+
+	cloneRange : function()
+	{
+		return FCKW3CRange.CreateFromRange( this._Document, this ) ;
+	},
+
+	toString : function()
+	{
+		var docFrag = this.cloneContents() ;
+
+		var tmpDiv = this._Document.createElement( 'div' ) ;
+		docFrag.AppendTo( tmpDiv ) ;
+
+		return tmpDiv.textContent || tmpDiv.innerText ;
+	}
+} ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,71 +1,87 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxml_gecko.js
- * 	FCKXml Class: class to load and manipulate XML files.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKXml Class: class to load and manipulate XML files.
  */
 
-var FCKXml ;
+var FCKXml = function()
+{}
 
-if ( !( FCKXml = NS.FCKXml ) )
+FCKXml.prototype.LoadUrl = function( urlToCall )
 {
-	FCKXml = NS.FCKXml = function()
-	{}
+	this.Error = false ;
+	var oFCKXml = this ;
 
-	FCKXml.prototype.LoadUrl = function( urlToCall )
+	var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
+	oXmlHttp.open( "GET", urlToCall, false ) ;
+	oXmlHttp.send( null ) ;
+
+	if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+		this.DOMDocument = oXmlHttp.responseXML ;
+	else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
+		this.DOMDocument = oXmlHttp.responseXML ;
+	else
+		this.DOMDocument = null ;
+
+	if ( this.DOMDocument == null || this.DOMDocument.firstChild == null )
 	{
-		var oFCKXml = this ;
+		this.Error = true ;
+		if (window.confirm( 'Error loading "' + urlToCall + '"\r\nDo you want to see more info?' ) )
+			alert( 'URL requested: "' + urlToCall + '"\r\n' +
+						'Server response:\r\nStatus: ' + oXmlHttp.status + '\r\n' +
+						'Response text:\r\n' + oXmlHttp.responseText ) ;
 
-		var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
-		oXmlHttp.open( "GET", urlToCall, false ) ;
-		oXmlHttp.send( null ) ;
-		
-		if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
-			this.DOMDocument = oXmlHttp.responseXML ;
-		else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 )
-			this.DOMDocument = oXmlHttp.responseXML ;
-		else
-			alert( 'Error loading "' + urlToCall + '"' ) ;
 	}
+}
 
-	FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+{
+	if ( this.Error )
+		return new Array() ;
+
+	var aNodeArray = new Array();
+
+	var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
+			this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
+	if ( xPathResult )
 	{
-		var aNodeArray = new Array();
-
-		var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument, 
-				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
-		if ( xPathResult ) 
+		var oNode = xPathResult.iterateNext() ;
+		while( oNode )
 		{
-			var oNode = xPathResult.iterateNext() ;
- 			while( oNode )
- 			{
- 				aNodeArray[aNodeArray.length] = oNode ;
- 				oNode = xPathResult.iterateNext();
- 			}
-		} 
-		return aNodeArray ;
+			aNodeArray[aNodeArray.length] = oNode ;
+			oNode = xPathResult.iterateNext();
+		}
 	}
+	return aNodeArray ;
+}
 
-	FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
-	{
-		var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
-				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
+FCKXml.prototype.SelectSingleNode = function( xpath, contextNode )
+{
+	if ( this.Error )
+		return null ;
 
-		if ( xPathResult && xPathResult.singleNodeValue )
-			return xPathResult.singleNodeValue ;
-		else	
-			return null ;
-	}
+	var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
+			this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
+
+	if ( xPathResult && xPathResult.singleNodeValue )
+		return xPathResult.singleNodeValue ;
+	else
+		return null ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/classes/fckxml_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,83 +1,90 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxml_ie.js
- * 	FCKXml Class: class to load and manipulate XML files.
- * 	(IE specific implementation)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKXml Class: class to load and manipulate XML files.
+ * (IE specific implementation)
  */
 
-var FCKXml ;
+var FCKXml = function()
+{
+	this.Error = false ;
+}
 
-if ( !( FCKXml = NS.FCKXml ) )
+FCKXml.prototype.LoadUrl = function( urlToCall )
 {
-	FCKXml = NS.FCKXml = function()
+	this.Error = false ;
+
+	var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
+
+	if ( !oXmlHttp )
 	{
-		this.Error = false ;
+		this.Error = true ;
+		return ;
 	}
 
-	FCKXml.prototype.LoadUrl = function( urlToCall )
-	{
-		this.Error = false ;
+	oXmlHttp.open( "GET", urlToCall, false ) ;
 
-		var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ;
+	oXmlHttp.send( null ) ;
 
-		if ( !oXmlHttp )
-		{
-			this.Error = true ;
-			return ;
-		}
-
-		oXmlHttp.open( "GET", urlToCall, false ) ;
-		
-		oXmlHttp.send( null ) ;
-		
-		if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
-			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 ) ;
-		}
-		else
-		{
-			this.Error = true ;
-			alert( 'Error loading "' + urlToCall + '"' ) ;
-		}
+	if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
+		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 ) ;
 	}
-
-	FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+	else
 	{
-		if ( this.Error )
-			return new Array() ;
-
-		if ( contextNode )
-			return contextNode.selectNodes( xpath ) ;
-		else
-			return this.DOMDocument.selectNodes( xpath ) ;
+		this.DOMDocument = null ;
 	}
 
-	FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
+	if ( this.DOMDocument == null || this.DOMDocument.firstChild == null )
 	{
-		if ( this.Error )
-			return ;
-			
-		if ( contextNode )
-			return contextNode.selectSingleNode( xpath ) ;
-		else
-			return this.DOMDocument.selectSingleNode( xpath ) ;
+		this.Error = true ;
+		if (window.confirm( 'Error loading "' + urlToCall + '"\r\nDo you want to see more info?' ) )
+			alert( 'URL requested: "' + urlToCall + '"\r\n' +
+						'Server response:\r\nStatus: ' + oXmlHttp.status + '\r\n' +
+						'Response text:\r\n' + oXmlHttp.responseText ) ;
 	}
+}
+
+FCKXml.prototype.SelectNodes = function( xpath, contextNode )
+{
+	if ( this.Error )
+		return new Array() ;
+
+	if ( contextNode )
+		return contextNode.selectNodes( xpath ) ;
+	else
+		return this.DOMDocument.selectNodes( xpath ) ;
+}
+
+FCKXml.prototype.SelectSingleNode = function( xpath, contextNode )
+{
+	if ( this.Error )
+		return null ;
+
+	if ( contextNode )
+		return contextNode.selectSingleNode( xpath ) ;
+	else
+		return this.DOMDocument.selectSingleNode( xpath ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fck_othercommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fck_othercommands.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fck_othercommands.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_othercommands.js
- * 	Definition of other commands that are not available internaly in the
- * 	browser (see FCKNamedCommand).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Definition of other commands that are not available internaly in the
+ * browser (see FCKNamedCommand).
  */
 
 // ### General Dialog Box Commands.
@@ -29,11 +33,13 @@
 
 	this.GetStateFunction	= getStateFunction ;
 	this.GetStateParam		= getStateParam ;
+
+	this.Resizable = false ;
 }
 
 FCKDialogCommand.prototype.Execute = function()
 {
-	FCKDialog.OpenDialog( 'FCKDialog_' + this.Name , this.Title, this.Url, this.Width, this.Height ) ;
+	FCKDialog.OpenDialog( 'FCKDialog_' + this.Name , this.Title, this.Url, this.Width, this.Height, null, null, this.Resizable ) ;
 }
 
 FCKDialogCommand.prototype.GetState = function()
@@ -89,7 +95,7 @@
 
 FCKFontSizeCommand.prototype.Execute = function( fontSize )
 {
-	if ( typeof( fontSize ) == 'string' ) fontSize = parseInt(fontSize) ;
+	if ( typeof( fontSize ) == 'string' ) fontSize = parseInt(fontSize, 10) ;
 
 	if ( fontSize == null || fontSize == '' )
 	{
@@ -115,6 +121,8 @@
 {
 	if ( formatName == null || formatName == '' )
 		FCK.ExecuteNamedCommand( 'FormatBlock', '<P>' ) ;
+	else if ( formatName == 'div' && FCKBrowserInfo.IsGecko )
+		FCK.ExecuteNamedCommand( 'FormatBlock', 'div' ) ;
 	else
 		FCK.ExecuteNamedCommand( 'FormatBlock', '<' + formatName + '>' ) ;
 }
@@ -149,7 +157,7 @@
 FCKSaveCommand.prototype.Execute = function()
 {
 	// Get the linked field form.
-	var oForm = FCK.LinkedField.form ;
+	var oForm = FCK.GetParentForm() ;
 
 	if ( typeof( oForm.onsubmit ) == 'function' )
 	{
@@ -178,8 +186,6 @@
 	FCKUndo.SaveUndoStep() ;
 	FCK.SetHTML( '' ) ;
 	FCKUndo.Typing = true ;
-//	FCK.SetHTML( FCKBrowserInfo.IsGecko ? '&nbsp;' : '' ) ;
-//	FCK.SetHTML( FCKBrowserInfo.IsGecko ? GECKO_BOGUS : '' ) ;
 }
 
 FCKNewPageCommand.prototype.GetState = function()
@@ -195,7 +201,7 @@
 
 FCKSourceCommand.prototype.Execute = function()
 {
-	if ( FCKBrowserInfo.IsGecko )
+	if ( FCKConfig.SourcePopup )	// Until v2.2, it was mandatory for FCKBrowserInfo.IsGecko.
 	{
 		var iWidth	= FCKConfig.ScreenWidth * 0.65 ;
 		var iHeight	= FCKConfig.ScreenHeight * 0.65 ;
@@ -262,14 +268,113 @@
 
 FCKPageBreakCommand.prototype.Execute = function()
 {
-	var oCenter = FCK.EditorDocument.createElement( 'CENTER' ) ;
-	oCenter.style.pageBreakAfter = 'always' ;
-	
-	var oFakeImage = FCKDocumentProcessors_CreateFakeImage( 'FCK__PageBreak', oCenter ) ;
+//	var e = FCK.EditorDocument.createElement( 'CENTER' ) ;
+//	e.style.pageBreakAfter = 'always' ;
+
+	// Tidy was removing the empty CENTER tags, so the following solution has
+	// been found. It also validates correctly as XHTML 1.0 Strict.
+	var e = FCK.EditorDocument.createElement( 'DIV' ) ;
+	e.style.pageBreakAfter = 'always' ;
+	e.innerHTML = '<span style="DISPLAY:none">&nbsp;</span>' ;
+
+	var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', e ) ;
 	oFakeImage	= FCK.InsertElement( oFakeImage ) ;
 }
 
 FCKPageBreakCommand.prototype.GetState = function()
 {
 	return 0 ; // FCK_TRISTATE_OFF
-}
\ No newline at end of file
+}
+
+// FCKUnlinkCommand - by Johnny Egeland (johnny at coretrek.com)
+var FCKUnlinkCommand = function()
+{
+	this.Name = 'Unlink' ;
+}
+
+FCKUnlinkCommand.prototype.Execute = function()
+{
+	if ( FCKBrowserInfo.IsGecko )
+	{
+		var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+		if ( oLink )
+			FCK.Selection.SelectNode( oLink ) ;
+	}
+
+	FCK.ExecuteNamedCommand( this.Name ) ;
+
+	if ( FCKBrowserInfo.IsGecko )
+		FCK.Selection.Collapse( true ) ;
+}
+
+FCKUnlinkCommand.prototype.GetState = function()
+{
+	var state = FCK.GetNamedCommandState( this.Name ) ;
+
+	// Check that it isn't an anchor
+	if ( state == FCK_TRISTATE_OFF && FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		var oLink = FCKSelection.MoveToAncestorNode( 'A' ) ;
+		var bIsAnchor = ( oLink && oLink.name.length > 0 && oLink.href.length == 0 ) ;
+		if ( bIsAnchor )
+			state = FCK_TRISTATE_DISABLED ;
+	}
+
+	return state ;
+}
+
+// FCKSelectAllCommand
+var FCKSelectAllCommand = function()
+{
+	this.Name = 'SelectAll' ;
+}
+
+FCKSelectAllCommand.prototype.Execute = function()
+{
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		FCK.ExecuteNamedCommand( 'SelectAll' ) ;
+	}
+	else
+	{
+		// Select the contents of the textarea
+		var textarea = FCK.EditingArea.Textarea ;
+		if ( FCKBrowserInfo.IsIE )
+		{
+			textarea.createTextRange().execCommand( 'SelectAll' ) ;
+		}
+		else
+		{
+			textarea.selectionStart = 0;
+			textarea.selectionEnd = textarea.value.length ;
+		}
+		textarea.focus() ;
+	}
+}
+
+FCKSelectAllCommand.prototype.GetState = function()
+{
+	return FCK_TRISTATE_OFF ;
+}
+
+// FCKPasteCommand
+var FCKPasteCommand = function()
+{
+	this.Name = 'Paste' ;
+}
+
+FCKPasteCommand.prototype =
+{
+	Execute : function()
+	{
+		if ( FCKBrowserInfo.IsIE )
+			FCK.Paste() ;
+		else
+			FCK.ExecuteNamedCommand( 'Paste' ) ;
+	},
+
+	GetState : function()
+	{
+		return FCK.GetNamedCommandState( 'Paste' ) ;
+	}
+} ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckfitwindow.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckfitwindow.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckfitwindow.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,169 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Stretch the editor to full window size and back.
+ */
+
+var FCKFitWindow = function()
+{
+	this.Name = 'FitWindow' ;
+}
+
+FCKFitWindow.prototype.Execute = function()
+{
+	var eEditorFrame		= window.frameElement ;
+	var eEditorFrameStyle	= eEditorFrame.style ;
+
+	var eMainWindow			= parent ;
+	var eDocEl				= eMainWindow.document.documentElement ;
+	var eBody				= eMainWindow.document.body ;
+	var eBodyStyle			= eBody.style ;
+	var eParent ;
+
+	// No original style properties known? Go fullscreen.
+	if ( !this.IsMaximized )
+	{
+		// Registering an event handler when the window gets resized.
+		if( FCKBrowserInfo.IsIE )
+			eMainWindow.attachEvent( 'onresize', FCKFitWindow_Resize ) ;
+		else
+			eMainWindow.addEventListener( 'resize', FCKFitWindow_Resize, true ) ;
+
+		// Save the scrollbars position.
+		this._ScrollPos = FCKTools.GetScrollPosition( eMainWindow ) ;
+
+		// Save and reset the styles for the entire node tree. They could interfere in the result.
+		eParent = eEditorFrame ;
+		// The extra () is to avoid a warning with strict error checking. This is ok.
+		while( (eParent = eParent.parentNode) )
+		{
+			if ( eParent.nodeType == 1 )
+				eParent._fckSavedStyles = FCKTools.SaveStyles( eParent ) ;
+		}
+
+		// Hide IE scrollbars (in strict mode).
+		if ( FCKBrowserInfo.IsIE )
+		{
+			this.documentElementOverflow = eDocEl.style.overflow ;
+			eDocEl.style.overflow	= 'hidden' ;
+			eBodyStyle.overflow		= 'hidden' ;
+		}
+		else
+		{
+			// Hide the scroolbars in Firefox.
+			eBodyStyle.overflow = 'hidden' ;
+			eBodyStyle.width = '0px' ;
+			eBodyStyle.height = '0px' ;
+		}
+
+		// Save the IFRAME styles.
+		this._EditorFrameStyles = FCKTools.SaveStyles( eEditorFrame ) ;
+
+		// Resize.
+		var oViewPaneSize = FCKTools.GetViewPaneSize( eMainWindow ) ;
+
+		eEditorFrameStyle.position	= "absolute";
+		eEditorFrameStyle.zIndex	= FCKConfig.FloatingPanelsZIndex - 1;
+		eEditorFrameStyle.left		= "0px";
+		eEditorFrameStyle.top		= "0px";
+		eEditorFrameStyle.width		= oViewPaneSize.Width + "px";
+		eEditorFrameStyle.height	= oViewPaneSize.Height + "px";
+
+		// Giving the frame some (huge) borders on his right and bottom
+		// side to hide the background that would otherwise show when the
+		// editor is in fullsize mode and the window is increased in size
+		// not for IE, because IE immediately adapts the editor on resize,
+		// without showing any of the background oddly in firefox, the
+		// editor seems not to fill the whole frame, so just setting the
+		// background of it to white to cover the page laying behind it anyway.
+		if ( !FCKBrowserInfo.IsIE )
+		{
+			eEditorFrameStyle.borderRight = eEditorFrameStyle.borderBottom = "9999px solid white" ;
+			eEditorFrameStyle.backgroundColor		= "white";
+		}
+
+		// Scroll to top left.
+		eMainWindow.scrollTo(0, 0);
+
+		this.IsMaximized = true ;
+	}
+	else	// Resize to original size.
+	{
+		// Remove the event handler of window resizing.
+		if( FCKBrowserInfo.IsIE )
+			eMainWindow.detachEvent( "onresize", FCKFitWindow_Resize ) ;
+		else
+			eMainWindow.removeEventListener( "resize", FCKFitWindow_Resize, true ) ;
+
+		// Restore the CSS position for the entire node tree.
+		eParent = eEditorFrame ;
+		// The extra () is to avoid a warning with strict error checking. This is ok.
+		while( (eParent = eParent.parentNode) )
+		{
+			if ( eParent._fckSavedStyles )
+			{
+				FCKTools.RestoreStyles( eParent, eParent._fckSavedStyles ) ;
+				eParent._fckSavedStyles = null ;
+			}
+		}
+
+		// Restore IE scrollbars
+		if ( FCKBrowserInfo.IsIE )
+			eDocEl.style.overflow = this.documentElementOverflow ;
+
+		// Restore original size
+		FCKTools.RestoreStyles( eEditorFrame, this._EditorFrameStyles ) ;
+
+		// Restore the window scroll position.
+		eMainWindow.scrollTo( this._ScrollPos.X, this._ScrollPos.Y ) ;
+
+		this.IsMaximized = false ;
+	}
+
+	FCKToolbarItems.GetItem('FitWindow').RefreshState() ;
+
+	// It seams that Firefox restarts the editing area when making this changes.
+	// On FF 1.0.x, the area is not anymore editable. On FF 1.5+, the special
+	//configuration, like DisableFFTableHandles and DisableObjectResizing get
+	//lost, so we must reset it. Also, the cursor position and selection are
+	//also lost, even if you comment the following line (MakeEditable).
+	// if ( FCKBrowserInfo.IsGecko10 )	// Initially I thought it was a FF 1.0 only problem.
+	FCK.EditingArea.MakeEditable() ;
+
+	FCK.Focus() ;
+}
+
+FCKFitWindow.prototype.GetState = function()
+{
+	if ( FCKConfig.ToolbarLocation != 'In' )
+		return FCK_TRISTATE_DISABLED ;
+	else
+		return ( this.IsMaximized ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF );
+}
+
+function FCKFitWindow_Resize()
+{
+	var oViewPaneSize = FCKTools.GetViewPaneSize( parent ) ;
+
+	var eEditorFrameStyle = window.frameElement.style ;
+
+	eEditorFrameStyle.width		= oViewPaneSize.Width + 'px' ;
+	eEditorFrameStyle.height	= oViewPaneSize.Height + 'px' ;
+}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcknamedcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcknamedcommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcknamedcommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcknamedcommand.js
- * 	FCKNamedCommand Class: represents an internal browser command.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKNamedCommand Class: represents an internal browser command.
  */
 
 var FCKNamedCommand = function( commandName )

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,28 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckpasteplaintextcommand.js
- * 	FCKPastePlainTextCommand Class: represents the 
- * 	"Paste as Plain Text" command.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKPastePlainTextCommand Class: represents the
+ * "Paste as Plain Text" command.
  */
 
-var FCKPastePlainTextCommand = function() 
+var FCKPastePlainTextCommand = function()
 {
 	this.Name = 'PasteText' ;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,27 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckpastewordcommand.js
- * 	FCKPasteWordCommand Class: represents the "Paste from Word" command.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKPasteWordCommand Class: represents the "Paste from Word" command.
  */
 
-var FCKPasteWordCommand = function() 
+var FCKPasteWordCommand = function()
 {
 	this.Name = 'PasteWord' ;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +1,28 @@
-var FCKSpellCheckCommand = function()
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleCommand Class: represents the "Spell Check" command.
+ * (Gecko specific implementation)
+ */
+
+var FCKSpellCheckCommand = function()
 {
 	this.Name = 'SpellCheck' ;
 	this.IsEnabled = ( FCKConfig.SpellChecker == 'SpellerPages' ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +1,28 @@
-var FCKSpellCheckCommand = function()
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleCommand Class: represents the "Spell Check" command.
+ * (IE specific implementation)
+ */
+
+var FCKSpellCheckCommand = function()
 {
 	this.Name = 'SpellCheck' ;
 	this.IsEnabled = ( FCKConfig.SpellChecker == 'ieSpell' || FCKConfig.SpellChecker == 'SpellerPages' ) ;
@@ -11,7 +35,7 @@
 		case 'ieSpell' :
 			this._RunIeSpell() ;
 			break ;
-		
+
 		case 'SpellerPages' :
 			FCKDialog.OpenDialog( 'FCKDialog_SpellCheck', 'Spell Check', 'dialog/fck_spellerpages.html', 440, 480 ) ;
 			break ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckstylecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckstylecommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fckstylecommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstylecommand.js
- * 	FCKStyleCommand Class: represents the "Style" command.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKStyleCommand Class: represents the "Style" command.
  */
 
 var FCKStyleCommand = function()
@@ -39,14 +43,17 @@
 	FCKUndo.SaveUndoStep() ;
 
 	FCK.Focus() ;
-	
+
 	FCK.Events.FireEvent( "OnSelectionChange" ) ;
 }
 
 FCKStyleCommand.prototype.GetState = function()
 {
+	if ( !FCK.EditorDocument )
+		return FCK_TRISTATE_DISABLED ;
+
 	var oSelection = FCK.EditorDocument.selection ;
-	
+
 	if ( FCKSelection.GetType() == 'Control' )
 	{
 		var e = FCKSelection.GetSelectedElement() ;
@@ -60,12 +67,12 @@
 FCKStyleCommand.prototype.GetActiveStyles = function()
 {
 	var aActiveStyles = new Array() ;
-	
+
 	if ( FCKSelection.GetType() == 'Control' )
 		this._CheckStyle( FCKSelection.GetSelectedElement(), aActiveStyles, false ) ;
 	else
 		this._CheckStyle( FCKSelection.GetParentElement(), aActiveStyles, true ) ;
-		
+
 	return aActiveStyles ;
 }
 
@@ -83,10 +90,10 @@
 			{
 				if ( aStyleGroup[i].IsEqual( element ) )
 					targetArray[ targetArray.length ] = aStyleGroup[i] ;
-			}		
+			}
 		}
 	}
-	
+
 	if ( checkParent )
 		this._CheckStyle( element.parentNode, targetArray, checkParent ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktablecommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktablecommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktablecommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktablecommand.js
- * 	FCKPastePlainTextCommand Class: represents the 
- * 	"Paste as Plain Text" command.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKPastePlainTextCommand Class: represents the
+ * "Paste as Plain Text" command.
  */
 
 var FCKTableCommand = function( command )
@@ -26,7 +30,7 @@
 FCKTableCommand.prototype.Execute = function()
 {
 	FCKUndo.SaveUndoStep() ;
-	
+
 	switch ( this.Name )
 	{
 		case 'TableInsertRow' :
@@ -53,6 +57,9 @@
 		case 'TableSplitCell' :
 			FCKTableHandler.SplitCell() ;
 			break ;
+		case 'TableDelete' :
+			FCKTableHandler.DeleteTable() ;
+			break ;
 		default :
 			alert( FCKLang.UnknownCommand.replace( /%1/g, this.Name ) ) ;
 	}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktextcolorcommand.js
- * 	FCKTextColorCommand Class: represents the text color comand. It shows the
- * 	color selection panel.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * FCKTextColorCommand Class: represents the text color comand. It shows the
+ * color selection panel.
  */
 
 // FCKTextColorCommand Contructor
@@ -25,40 +29,25 @@
 	this.Name = type == 'ForeColor' ? 'TextColor' : 'BGColor' ;
 	this.Type = type ;
 
-	/*	BEGIN ###
-		The panel should be created in the "Execute" method for best
-		memory use, but it not works in Gecko in that way.
-	*/
+	var oWindow ;
 
-	this._Panel = new FCKPanel() ;
-	this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ;
-	this._Panel.Create() ;
+	if ( FCKBrowserInfo.IsIE )
+		oWindow = window ;
+	else if ( FCK.ToolbarSet._IFrame )
+		oWindow = FCKTools.GetElementWindow( FCK.ToolbarSet._IFrame ) ;
+	else
+		oWindow = window.parent ;
 
-	this._CreatePanelBody( this._Panel.Document, this._Panel.PanelDiv ) ;
-	
-	//	END ###
+	this._Panel = new FCKPanel( oWindow, true ) ;
+	this._Panel.AppendStyleSheet( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+	this._Panel.MainNode.className = 'FCK_Panel' ;
+	this._CreatePanelBody( this._Panel.Document, this._Panel.MainNode ) ;
+
+	FCKTools.DisableSelection( this._Panel.Document.body ) ;
 }
 
 FCKTextColorCommand.prototype.Execute = function( panelX, panelY, relElement )
 {
-	/*
-		BEGIN ###
-		This is the right code to create the panel, but it is not
-		working well with Gecko, so it has been moved to the 
-		class contructor.
-	
-	// Create the Color Panel if needed.
-	if ( ! this._Panel )
-	{
-		this._Panel = new FCKPanel() ;
-		this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ;
-		this._Panel.Create() ;
-
-		this._CreatePanelBody( this._Panel.Document, this._Panel.PanelDiv ) ;
-	}
-		END ###
-	*/
-
 	// We must "cache" the actual panel type to be used in the SetColor method.
 	FCK._ActiveColorPanelType = this.Type ;
 
@@ -70,11 +59,19 @@
 {
 	if ( FCK._ActiveColorPanelType == 'ForeColor' )
 		FCK.ExecuteNamedCommand( 'ForeColor', color ) ;
-	else if ( FCKBrowserInfo.IsGecko )
+	else if ( FCKBrowserInfo.IsGeckoLike )
+	{
+		if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN )
+			FCK.EditorDocument.execCommand( 'useCSS', false, false ) ;
+
 		FCK.ExecuteNamedCommand( 'hilitecolor', color ) ;
+
+		if ( FCKBrowserInfo.IsGecko && !FCKConfig.GeckoUseSPAN )
+			FCK.EditorDocument.execCommand( 'useCSS', false, true ) ;
+	}
 	else
 		FCK.ExecuteNamedCommand( 'BackColor', color ) ;
-	
+
 	// Delete the "cached" active panel type.
 	delete FCK._ActiveColorPanelType ;
 }
@@ -117,12 +114,13 @@
 		oDiv.className		= 'ColorDeselected' ;
 		oDiv.onmouseover	= FCKTextColorCommand_OnMouseOver ;
 		oDiv.onmouseout		= FCKTextColorCommand_OnMouseOut ;
-		
+
 		return oDiv ;
 	}
 
 	// Create the Table that will hold all colors.
 	var oTable = targetDiv.appendChild( targetDocument.createElement( "TABLE" ) ) ;
+	oTable.className = 'ForceBaseFont' ;		// Firefox 1.5 Bug.
 	oTable.style.tableLayout = 'fixed' ;
 	oTable.cellPadding = 0 ;
 	oTable.cellSpacing = 0 ;
@@ -134,11 +132,11 @@
 
 	// Create the Button for the "Automatic" color selection.
 	var oDiv = oCell.appendChild( CreateSelectionDiv() ) ;
-	oDiv.innerHTML = 
+	oDiv.innerHTML =
 		'<table cellspacing="0" cellpadding="0" width="100%" border="0">\
 			<tr>\
 				<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\
-				<td nowrap width="100%" align="center" unselectable="on">' + FCKLang.ColorAutomatic + '</td>\
+				<td nowrap width="100%" align="center">' + FCKLang.ColorAutomatic + '</td>\
 			</tr>\
 		</table>' ;
 
@@ -153,7 +151,7 @@
 	while ( iCounter < aColors.length )
 	{
 		var oRow = oTable.insertRow(-1) ;
-		
+
 		for ( var i = 0 ; i < 8 && iCounter < aColors.length ; i++, iCounter++ )
 		{
 			oDiv = oRow.insertCell(-1).appendChild( CreateSelectionDiv() ) ;

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckconstants.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckconstants.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckconstants.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,52 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines some constants used by the editor. These constants are also
+ * globally available in the page where the editor is placed.
+ */
+
+// Editor Instance Status.
+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 ;
+
+// Tristate Operations.
+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 ;
+
+// For unknown values.
+var FCK_UNKNOWN				= window.parent.FCK_UNKNOWN				= -9 ;
+
+// Toolbar Items Style.
+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 ;
+
+// Edit Mode
+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/' ;		// Check usage.
+var FCK_SPACER_PATH = 'images/spacer.gif' ;
+
+var CTRL	= 1000 ;
+var SHIFT	= 2000 ;
+var ALT		= 4000 ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckeditorapi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckeditorapi.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckeditorapi.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,161 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Create the FCKeditorAPI object that is available as a global object in
+ * the page where the editor is placed in.
+ */
+
+var FCKeditorAPI ;
+
+function InitializeAPI()
+{
+	var oParentWindow = window.parent ;
+
+	if ( !( FCKeditorAPI = oParentWindow.FCKeditorAPI ) )
+	{
+		// Make the FCKeditorAPI object available in the parent window. Use
+		// eval so this core runs in the parent's scope and so it will still be
+		// available if the editor instance is removed ("Can't execute code
+		// from a freed script" error).
+
+		// Note: we check the existence of oEditor.GetParentForm because some external 
+		// code (like JSON) can extend the Object protype and we get then extra oEditor 
+		// objects that aren't really FCKeditor instances.
+		var sScript =
+			'var FCKeditorAPI = {' +
+				'Version : "2.4.2",' +
+				'VersionBuild : "14978",' +
+				'__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();' +
+					'}' +
+				'}' +
+			'}' ;
+
+		// In IE, the "eval" function is not always available (it works with
+		// the JavaScript samples, but not with the ASP ones, for example).
+		// So, let's use the execScript instead.
+		if ( oParentWindow.execScript )
+			oParentWindow.execScript( sScript, 'JavaScript' ) ;
+		else
+		{
+			if ( FCKBrowserInfo.IsGecko10 )
+			{
+				// FF 1.0.4 gives an error with the request bellow. The
+				// following seams to work well.
+				eval.call( oParentWindow, sScript ) ;
+			}
+			else if ( FCKBrowserInfo.IsSafari )
+			{
+				// 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 ) ) ;
+				oParentDocument.documentElement.appendChild( eScript ) ;
+			}
+			else
+				oParentWindow.eval( sScript ) ;
+		}
+
+		FCKeditorAPI = oParentWindow.FCKeditorAPI ;
+	}
+
+	// Add the current instance to the FCKeditorAPI's instances collection.
+	FCKeditorAPI.__Instances[ FCK.Name ] = FCK ;
+}
+
+// Attach to the form onsubmit event and to the form.submit().
+function _AttachFormSubmitToAPI()
+{
+	// Get the linked field form.
+	var oForm = FCK.GetParentForm() ;
+
+	if ( oForm )
+	{
+		// Attach to the onsubmit event.
+		FCKTools.AddEventListener( oForm, 'submit', FCK.UpdateLinkedField ) ;
+
+		// IE sees oForm.submit function as an 'object'.
+		if ( !oForm._FCKOriginalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
+		{
+			// Save the original submit.
+			oForm._FCKOriginalSubmit = oForm.submit ;
+
+			// Create our replacement for the submit.
+			oForm.submit = FCKeditorAPI._FormSubmit ;
+		}
+	}
+}
+
+function FCKeditorAPI_Cleanup()
+{
+	delete FCKeditorAPI.__Instances[ FCK.Name ] ;
+}
+FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ;	
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckjscoreextensions.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckjscoreextensions.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckjscoreextensions.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,152 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Extensions to the JavaScript Core.
+ *
+ * All custom extentions functions are PascalCased to differ from the standard
+ * camelCased ones.
+ */
+
+String.prototype.Contains = function( textToCheck )
+{
+	return ( this.indexOf( textToCheck ) > -1 ) ;
+}
+
+String.prototype.Equals = function()
+{
+	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 ( this == aArgs[i] )
+			return true ;
+	}
+	return false ;
+}
+
+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 ;
+}
+
+String.prototype.ReplaceAll = function( searchArray, replaceArray )
+{
+	var replaced = this ;
+
+	for ( var i = 0 ; i < searchArray.length ; i++ )
+	{
+		replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
+	}
+
+	return replaced ;
+}
+
+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++ )
+	{
+		if ( this[i] == value )
+			return i ;
+	}
+	return -1 ;
+}
+
+String.prototype.StartsWith = function( value )
+{
+	return ( this.substr( 0, value.length ) == value ) ;
+}
+
+// Extends the String object, creating a "EndsWith" method on it.
+String.prototype.EndsWith = function( value, ignoreCase )
+{
+	var L1 = this.length ;
+	var L2 = value.length ;
+
+	if ( L2 > L1 )
+		return false ;
+
+	if ( ignoreCase )
+	{
+		var oRegex = new RegExp( value + '$' , 'i' ) ;
+		return oRegex.test( this ) ;
+	}
+	else
+		return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;
+}
+
+String.prototype.Remove = function( start, length )
+{
+	var s = '' ;
+
+	if ( start > 0 )
+		s = this.substring( 0, start ) ;
+
+	if ( start + length < this.length )
+		s += this.substring( start + length , this.length ) ;
+
+	return s ;
+}
+
+String.prototype.Trim = function()
+{
+	// We are not using \s because we don't want "non-breaking spaces to be caught".
+	return this.replace( /(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '' ) ;
+}
+
+String.prototype.LTrim = function()
+{
+	// We are not using \s because we don't want "non-breaking spaces to be caught".
+	return this.replace( /^[ \t\n\r]*/g, '' ) ;
+}
+
+String.prototype.RTrim = function()
+{
+	// We are not using \s because we don't want "non-breaking spaces to be caught".
+	return this.replace( /[ \t\n\r]*$/g, '' ) ;
+}
+
+String.prototype.ReplaceNewLineChars = function( replacement )
+{
+	return this.replace( /\n/g, replacement ) ;
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckscriptloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckscriptloader.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/fckscriptloader.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,108 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is a utility object which can be used to load specific components of
+ * FCKeditor, including all dependencies.
+ */
+
+var FCK_GENERIC = 1 ;
+var FCK_GENERIC_SPECIFIC = 2 ;
+var FCK_SPECIFIC = 3 ;
+
+var FCKScriptLoader = new Object() ;
+FCKScriptLoader.FCKeditorPath = '/fckeditor/' ;
+
+FCKScriptLoader._Scripts = new Object() ;
+FCKScriptLoader._LoadedScripts = new Object() ;
+
+FCKScriptLoader._IsIE = (/msie/).test( navigator.userAgent.toLowerCase() ) ;
+
+FCKScriptLoader.Load = function( scriptName )
+{
+	// Check if the script has already been loaded.
+	if ( scriptName in FCKScriptLoader._LoadedScripts )
+		return ;
+
+	var oScriptInfo = this._Scripts[ scriptName ] ;
+
+	if ( !oScriptInfo )
+	{
+		alert( 'FCKScriptLoader: The script "' + scriptName + '" could not be loaded' ) ;
+		return ;
+	}
+
+	for ( var i = 0 ; i < oScriptInfo.Dependency.length ; i++ )
+	{
+		this.Load( oScriptInfo.Dependency[i] ) ;
+	}
+
+	var sBaseScriptName = oScriptInfo.BasePath + scriptName.toLowerCase() ;
+
+	if ( oScriptInfo.Compatibility == FCK_GENERIC || oScriptInfo.Compatibility == FCK_GENERIC_SPECIFIC )
+		this._LoadScript( sBaseScriptName + '.js' ) ;
+
+	if ( oScriptInfo.Compatibility == FCK_SPECIFIC || oScriptInfo.Compatibility == FCK_GENERIC_SPECIFIC )
+	{
+		if ( this._IsIE )
+			this._LoadScript( sBaseScriptName + '_ie.js' ) ;
+		else
+			this._LoadScript( sBaseScriptName + '_gecko.js' ) ;
+	}
+
+	FCKScriptLoader._LoadedScripts[ scriptName ] = true ;
+}
+
+FCKScriptLoader._LoadScript = function( scriptPathFromSource )
+{
+	document.write( '<script type="text/javascript" src="' + this.FCKeditorPath + 'editor/_source/' + scriptPathFromSource + '" onerror="alert(\'Error loading \' + scriptPathFromSource);"><\/script>' ) ;
+}
+
+FCKScriptLoader.AddScript = function( scriptName, scriptBasePath, dependency, compatibility )
+{
+	this._Scripts[ scriptName ] =
+	{
+		BasePath : scriptBasePath || '',
+		Dependency : dependency || [],
+		Compatibility : compatibility || FCK_GENERIC
+	} ;
+}
+
+/*
+ * ####################################
+ * ### Scripts Definition List
+ */
+
+FCKScriptLoader.AddScript( 'FCKConstants' ) ;
+FCKScriptLoader.AddScript( 'FCKJSCoreExtensions' ) ;
+FCKScriptLoader.AddScript( 'FCKImagePreloader'	, 'classes/' ) ;
+FCKScriptLoader.AddScript( 'FCKBrowserInfo'		, 'internals/'	, ['FCKJSCoreExtensions'] ) ;
+FCKScriptLoader.AddScript( 'FCKConfig'			, 'internals/' ) ;
+FCKScriptLoader.AddScript( 'FCKListsLib'		, 'internals/' ) ;
+FCKScriptLoader.AddScript( 'FCKDebug'			, 'internals/'	, ['FCKConfig'] ) ;
+FCKScriptLoader.AddScript( 'FCKDomTools'		, 'internals/'	, ['FCKJSCoreExtensions'], FCK_GENERIC ) ;
+FCKScriptLoader.AddScript( 'FCKTools'			, 'internals/'	, ['FCKJSCoreExtensions','FCKBrowserInfo'], FCK_GENERIC_SPECIFIC ) ;
+FCKScriptLoader.AddScript( 'FCKElementPath'		, 'classes/'	, ['FCKListsLib'], FCK_GENERIC ) ;
+FCKScriptLoader.AddScript( 'FCKDocumentFragment', 'classes/'	, ['FCKDomTools'], FCK_SPECIFIC ) ;
+FCKScriptLoader.AddScript( 'FCKDomRange'		, 'classes/'	, ['FCKBrowserInfo','FCKJSCoreExtensions','FCKW3CRange','FCKElementPath','FCKDomTools','FCKTools','FCKDocumentFragment'], FCK_GENERIC_SPECIFIC ) ;
+FCKScriptLoader.AddScript( 'FCKEnterKey'		, 'classes/'	, ['FCKDomRange','FCKDomTools','FCKTools','FCKKeystrokeHandler','FCKListHandler'], FCK_GENERIC ) ;
+FCKScriptLoader.AddScript( 'FCKKeystrokeHandler', 'classes/'	, ['FCKConstants','FCKBrowserInfo','FCKTools'], FCK_GENERIC ) ;
+FCKScriptLoader.AddScript( 'FCKListHandler'		, 'internals/'	, ['FCKJSCoreExtensions','FCKDomTools','FCKTools'], FCK_GENERIC ) ;
+FCKScriptLoader.AddScript( 'FCKW3CRange'		, 'classes/'	, ['FCKDomTools','FCKTools','FCKDocumentFragment'], FCK_GENERIC ) ;
+// ####################################
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fck_constants.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fck_constants.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fck_constants.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,41 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_constants.js
- * 	Defines some constants used by the editor. These constants are also 
- * 	globally available in the page where the editor is placed.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// Editor Instance Status.
-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 ;
-
-// Tristate Operations.
-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 ;
-
-// For unknown values.
-var FCK_UNKNOWN				= window.parent.FCK_UNKNOWN				= -1000 ;
-
-// Toolbar Items Style.
-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 ;
-
-// Edit Mode
-var FCK_EDITMODE_WYSIWYG	= window.parent.FCK_EDITMODE_WYSIWYG	= 0 ;
-var FCK_EDITMODE_SOURCE		= window.parent.FCK_EDITMODE_SOURCE		= 1 ;
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fckeditorapi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fckeditorapi.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/globals/fckeditorapi.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,45 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditorapi.js
- * 	Create the FCKeditorAPI object that is available as a global object in
- * 	the page where the editor is placed in.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKeditorAPI ;
-
-function FCKeditorAPI_GetInstance( instanceName )
-{
-	return this.__Instances[ instanceName ] ;
-}
-
-if ( !window.parent.FCKeditorAPI )
-{
-	// Make the FCKeditorAPI object available in the parent window.
-	FCKeditorAPI = window.parent.FCKeditorAPI = new Object() ;
-	FCKeditorAPI.__Instances = new Object() ;
-
-	// Set the current version.
-	FCKeditorAPI.Version = '2.1.1' ;
-
-	// Function used to get a instance of an existing editor present in the 
-	// page.
-	FCKeditorAPI.GetInstance = FCKeditorAPI_GetInstance ;
-}
-else
-	FCKeditorAPI = window.parent.FCKeditorAPI ;
-
-// Add the current instance to the FCKeditorAPI's instances collection.
-FCKeditorAPI.__Instances[ FCK.Name ] = FCK ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,66 +1,859 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck.js
- * 	Creation and initialization of the "FCK" object. This is the main object
- * 	that represents an editor instance.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Creation and initialization of the "FCK" object. This is the main object
+ * that represents an editor instance.
  */
 
-// FCK represents the active editor instance
-var FCK = new Object() ;
-FCK.Name			= FCKURLParams[ 'InstanceName' ] ;
+// FCK represents the active editor instance.
+var FCK =
+{
+	Name		: FCKURLParams[ 'InstanceName' ],
+	Status		: FCK_STATUS_NOTLOADED,
+	EditMode	: FCK_EDITMODE_WYSIWYG,
+	Toolbar		: null,
+	HasFocus	: false,
 
-FCK.Status			= FCK_STATUS_NOTLOADED ;
-FCK.EditMode		= FCK_EDITMODE_WYSIWYG ;
+	GetLinkedFieldValue : function()
+	{
+		return this.LinkedField.value ;
+	},
 
-// There is a bug on IE... getElementById returns any META tag that has the
-// name set to the ID you are looking for. So the best way in to get the array
-// by names and look for the correct one.
-// As ASP.Net generates a ID that is different from the Name, we must also
-// look for the field based on the ID.
+	GetParentForm : function()
+	{
+		return this.LinkedField.form ;
+	} ,
 
-var aElements = window.parent.document.getElementsByName( FCK.Name ) ;
-aElements[ aElements.length ] = window.parent.document.getElementById( FCK.Name ) ;
-var i = 0;
-while ( ( FCK.LinkedField = aElements[i++] ) )
+	// # START : IsDirty implementation
+
+	StartupValue : '',
+
+	IsDirty : function()
+	{
+		if ( this.EditMode == FCK_EDITMODE_SOURCE )
+			return ( this.StartupValue != this.EditingArea.Textarea.value ) ;
+		else
+			return ( this.StartupValue != this.EditorDocument.body.innerHTML ) ;
+	},
+
+	ResetIsDirty : function()
+	{
+		if ( this.EditMode == FCK_EDITMODE_SOURCE )
+			this.StartupValue = this.EditingArea.Textarea.value ;
+		else if ( this.EditorDocument.body )
+			this.StartupValue = this.EditorDocument.body.innerHTML ;
+	},
+
+	// # END : IsDirty implementation
+
+	StartEditor : function()
+	{
+		this.TempBaseTag = FCKConfig.BaseHref.length > 0 ? '<base href="' + FCKConfig.BaseHref + '" _fcktemp="true"></base>' : '' ;
+
+		// Setup the keystroke handler.
+		var oKeystrokeHandler = FCK.KeystrokeHandler = new FCKKeystrokeHandler() ;
+		oKeystrokeHandler.OnKeystroke = _FCK_KeystrokeHandler_OnKeystroke ;
+
+		oKeystrokeHandler.SetKeystrokes( FCKConfig.Keystrokes ) ;
+
+		// In IE7, if the editor tries to access the clipboard by code, a dialog is
+		// shown to the user asking if the application is allowed to access or not.
+		// Due to the IE implementation of it, the KeystrokeHandler will not work
+		//well in this case, so we must leave the pasting keys to have their default behavior.
+		if ( FCKBrowserInfo.IsIE7 )
+		{
+			if ( ( CTRL + 86 /*V*/ ) in oKeystrokeHandler.Keystrokes )
+				oKeystrokeHandler.SetKeystrokes( [ CTRL + 86, true ] ) ;
+
+			if ( ( SHIFT + 45 /*INS*/ ) in oKeystrokeHandler.Keystrokes )
+				oKeystrokeHandler.SetKeystrokes( [ SHIFT + 45, true ] ) ;
+		}
+
+		this.EditingArea = new FCKEditingArea( document.getElementById( 'xEditingArea' ) ) ;
+		this.EditingArea.FFSpellChecker = false ;
+
+		// Final setup of the lists lib.
+		FCKListsLib.Setup() ;
+
+		// Set the editor's startup contents
+		this.SetHTML( this.GetLinkedFieldValue(), true ) ;
+	},
+
+	Focus : function()
+	{
+		FCK.EditingArea.Focus() ;
+	},
+
+	SetStatus : function( newStatus )
+	{
+		this.Status = newStatus ;
+
+		if ( newStatus == FCK_STATUS_ACTIVE )
+		{
+			FCKFocusManager.AddWindow( window, true ) ;
+
+			if ( FCKBrowserInfo.IsIE )
+				FCKFocusManager.AddWindow( window.frameElement, true ) ;
+
+			// Force the focus in the editor.
+			if ( FCKConfig.StartupFocus )
+				FCK.Focus() ;
+		}
+
+		this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
+	},
+
+	// Fixes the body by moving all inline and text nodes to appropriate block
+	// elements.
+	FixBody : function()
+	{
+		var sBlockTag = FCKConfig.EnterMode ;
+
+		// In 'br' mode, no fix must be done.
+		if ( sBlockTag != 'p' && sBlockTag != 'div' )
+			return ;
+
+		var oDocument = this.EditorDocument ;
+
+		if ( !oDocument )
+			return ;
+
+		var oBody = oDocument.body ;
+
+		if ( !oBody )
+			return ;
+
+		FCKDomTools.TrimNode( oBody ) ;
+
+		var oNode = oBody.firstChild ;
+		var oNewBlock ;
+
+		while ( oNode )
+		{
+			var bMoveNode = false ;
+
+			switch ( oNode.nodeType )
+			{
+				// Element Node.
+				case 1 :
+					if ( !FCKListsLib.BlockElements[ oNode.nodeName.toLowerCase() ] )
+						bMoveNode = true ;
+					break ;
+
+				// Text Node.
+				case 3 :
+					// Ignore space only or empty text.
+					if ( oNewBlock || oNode.nodeValue.Trim().length > 0 )
+						bMoveNode = true ;
+			}
+
+			if ( bMoveNode )
+			{
+				var oParent = oNode.parentNode ;
+
+				if ( !oNewBlock )
+					oNewBlock = oParent.insertBefore( oDocument.createElement( sBlockTag ), oNode ) ;
+
+				oNewBlock.appendChild( oParent.removeChild( oNode ) ) ;
+
+				oNode = oNewBlock.nextSibling ;
+			}
+			else
+			{
+				if ( oNewBlock )
+				{
+					FCKDomTools.TrimNode( oNewBlock ) ;
+					oNewBlock = null ;
+				}
+				oNode = oNode.nextSibling ;
+			}
+		}
+
+		if ( oNewBlock )
+			FCKDomTools.TrimNode( oNewBlock ) ;
+	},
+
+	GetXHTML : function( format )
+	{
+		// We assume that if the user is in source editing, the editor value must
+		// represent the exact contents of the source, as the user wanted it to be.
+		if ( FCK.EditMode == FCK_EDITMODE_SOURCE )
+				return FCK.EditingArea.Textarea.value ;
+
+		this.FixBody() ;
+
+		var sXHTML ;
+		var oDoc = FCK.EditorDocument ;
+
+		if ( !oDoc )
+			return null ;
+
+		if ( FCKConfig.FullPage )
+		{
+			sXHTML = FCKXHtml.GetXHTML( oDoc.getElementsByTagName( 'html' )[0], true, format ) ;
+
+			if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
+				sXHTML = FCK.DocTypeDeclaration + '\n' + sXHTML ;
+
+			if ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 )
+				sXHTML = FCK.XmlDeclaration + '\n' + sXHTML ;
+		}
+		else
+		{
+			sXHTML = FCKXHtml.GetXHTML( oDoc.body, false, format ) ;
+
+			if ( FCKConfig.IgnoreEmptyParagraphValue && FCKRegexLib.EmptyOutParagraph.test( sXHTML ) )
+				sXHTML = '' ;
+		}
+
+		// Restore protected attributes.
+		sXHTML = FCK.ProtectEventsRestore( sXHTML ) ;
+
+		if ( FCKBrowserInfo.IsIE )
+			sXHTML = sXHTML.replace( FCKRegexLib.ToReplace, '$1' ) ;
+
+		return FCKConfig.ProtectedSource.Revert( sXHTML ) ;
+	},
+
+	UpdateLinkedField : function()
+	{
+		FCK.LinkedField.value = FCK.GetXHTML( FCKConfig.FormatOutput ) ;
+		FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ;
+	},
+
+	RegisteredDoubleClickHandlers : new Object(),
+
+	OnDoubleClick : function( element )
+	{
+		var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ;
+		if ( oHandler )
+			oHandler( element ) ;
+	},
+
+	// Register objects that can handle double click operations.
+	RegisterDoubleClickHandler : function( handlerFunction, tag )
+	{
+		FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = handlerFunction ;
+	},
+
+	OnAfterSetHTML : function()
+	{
+		FCKDocumentProcessor.Process( FCK.EditorDocument ) ;
+		FCKUndo.SaveUndoStep() ;
+
+		FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+		FCK.Events.FireEvent( 'OnAfterSetHTML' ) ;
+	},
+
+	// Saves URLs on links and images on special attributes, so they don't change when
+	// moving around.
+	ProtectUrls : function( html )
+	{
+		// <A> href
+		html = html.replace( FCKRegexLib.ProtectUrlsA	, '$& _fcksavedurl=$1' ) ;
+
+		// <IMG> src
+		html = html.replace( FCKRegexLib.ProtectUrlsImg	, '$& _fcksavedurl=$1' ) ;
+
+		return html ;
+	},
+
+	// Saves event attributes (like onclick) so they don't get executed while
+	// editing.
+	ProtectEvents : function( html )
+	{
+		return html.replace( FCKRegexLib.TagsWithEvent, _FCK_ProtectEvents_ReplaceTags ) ;
+	},
+
+	ProtectEventsRestore : function( html )
+	{
+		return html.replace( FCKRegexLib.ProtectedEvents, _FCK_ProtectEvents_RestoreEvents ) ;
+	},
+
+	ProtectTags : function( html )
+	{
+		var sTags = FCKConfig.ProtectedTags ;
+
+		// IE doesn't support <abbr> and it breaks it. Let's protect it.
+		if ( FCKBrowserInfo.IsIE )
+			sTags += sTags.length > 0 ? '|ABBR' : 'ABBR' ;
+		
+		var oRegex ;
+		if ( sTags.length > 0 )
+		{
+			oRegex = new RegExp( '<(' + sTags + ')(?!\w|:)', 'gi' ) ;
+			html = html.replace( oRegex, '<FCK:$1' ) ;
+
+			oRegex = new RegExp( '<\/(' + sTags + ')>', 'gi' ) ;
+			html = html.replace( oRegex, '<\/FCK:$1>' ) ;
+		}
+		
+		// Protect some empty elements. We must do it separately becase the
+		// original tag may not contain the closing slash, like <hr>:
+		//		- <meta> tags get executed, so if you have a redirect meta, the
+		//		  content will move to the target page.
+		//		- <hr> may destroy the document structure if not well
+		//		  positioned. The trick is protect it here and restore them in
+		//		  the FCKDocumentProcessor.
+		sTags = 'META' ;
+		if ( FCKBrowserInfo.IsIE )
+			sTags += '|HR' ;
+
+		oRegex = new RegExp( '<((' + sTags + ')(?=\s|>)[\s\S]*?)/?>', 'gi' ) ;
+		html = html.replace( oRegex, '<FCK:$1 />' ) ;
+
+		return html ;
+	},
+
+	SetHTML : function( html, resetIsDirty )
+	{
+		this.EditingArea.Mode = FCK.EditMode ;
+
+		if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+		{
+			html = FCKConfig.ProtectedSource.Protect( html ) ;
+
+			// Fix for invalid self-closing tags (see #152).
+			html = html.replace( FCKRegexLib.InvalidSelfCloseTags, '$1></$2>' ) ;
+
+			html = FCK.ProtectEvents( html ) ;
+			html = FCK.ProtectUrls( html ) ;
+			html = FCK.ProtectTags( html ) ;
+
+			// Firefox can't handle correctly the editing of the STRONG and EM tags.
+			// We must replace them with B and I.
+			if ( FCKBrowserInfo.IsGecko )
+			{
+				html = html.replace( FCKRegexLib.StrongOpener, '<b$1' ) ;
+				html = html.replace( FCKRegexLib.StrongCloser, '<\/b>' ) ;
+				html = html.replace( FCKRegexLib.EmOpener, '<i$1' ) ;
+				html = html.replace( FCKRegexLib.EmCloser, '<\/i>' ) ;
+			}
+
+			this._ForceResetIsDirty = ( resetIsDirty === true ) ;
+
+			var sHtml = '' ;
+
+			if ( FCKConfig.FullPage )
+			{
+				// The HTML must be fixed if the <head> is not available.
+				if ( !FCKRegexLib.HeadOpener.test( html ) )
+				{
+					// Check if the <html> is available.
+					if ( !FCKRegexLib.HtmlOpener.test( html ) )
+						html = '<html dir="' + FCKConfig.ContentLangDirection + '">' + html + '</html>' ;
+
+					// Add the <head>.
+					html = html.replace( FCKRegexLib.HtmlOpener, '$&<head></head>' ) ;
+				}
+
+				// Save the DOCTYPE.
+				FCK.DocTypeDeclaration = html.match( FCKRegexLib.DocTypeTag ) ;
+
+				if ( FCKBrowserInfo.IsIE )
+					sHtml = FCK._GetBehaviorsStyle() ;
+				else if ( FCKConfig.ShowBorders )
+					sHtml = '<link href="' + FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+				sHtml += '<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+				// Attention: do not change it before testing it well (sample07)!
+				// This is tricky... if the head ends with <meta ... content type>,
+				// Firefox will break. But, it works if we include the temporary
+				// links as the last elements in the HEAD.
+				sHtml = html.replace( FCKRegexLib.HeadCloser, sHtml + '$&' ) ;
+
+				// Insert the base tag (FCKConfig.BaseHref), if not exists in the source.
+				// The base must be the first tag in the HEAD, to get relative
+				// links on styles, for example.
+				if ( FCK.TempBaseTag.length > 0 && !FCKRegexLib.HasBaseTag.test( html ) )
+					sHtml = sHtml.replace( FCKRegexLib.HeadOpener, '$&' + FCK.TempBaseTag ) ;
+			}
+			else
+			{
+				sHtml =
+					FCKConfig.DocType +
+					'<html dir="' + FCKConfig.ContentLangDirection + '"' ;
+
+				// On IE, if you are use a DOCTYPE differenft of HTML 4 (like
+				// XHTML), you must force the vertical scroll to show, otherwise
+				// the horizontal one may appear when the page needs vertical scrolling.
+				if ( FCKBrowserInfo.IsIE && !FCKRegexLib.Html4DocType.test( FCKConfig.DocType ) )
+					sHtml += ' style="overflow-y: scroll"' ;
+
+				sHtml +=
+					'><head><title></title>' +
+					_FCK_GetEditorAreaStyleTags() +
+					'<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+				if ( FCKBrowserInfo.IsIE )
+					sHtml += FCK._GetBehaviorsStyle() ;
+				else if ( FCKConfig.ShowBorders )
+					sHtml += '<link href="' + FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
+
+				sHtml += FCK.TempBaseTag ;
+
+				// Add ID and Class to the body
+				var sBodyTag = '<body' ;
+				if ( FCKConfig.BodyId && FCKConfig.BodyId.length > 0 )
+					sBodyTag += ' id="' + FCKConfig.BodyId + '"' ;
+				if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
+					sBodyTag += ' class="' + FCKConfig.BodyClass + '"' ;
+				sHtml += '</head>' + sBodyTag + '>' ;
+
+				if ( FCKBrowserInfo.IsGecko && ( html.length == 0 || FCKRegexLib.EmptyParagraph.test( html ) ) )
+					sHtml += GECKO_BOGUS ;
+				else
+					sHtml += html ;
+
+				sHtml += '</body></html>' ;
+			}
+
+			this.EditingArea.OnLoad = _FCK_EditingArea_OnLoad ;
+			this.EditingArea.Start( sHtml ) ;
+		}
+		else
+		{
+			// Remove the references to the following elements, as the editing area
+			// IFRAME will be removed.
+			FCK.EditorWindow	= null ;
+			FCK.EditorDocument	= null ;
+
+			this.EditingArea.OnLoad = null ;
+			this.EditingArea.Start( html ) ;
+
+			// Enables the context menu in the textarea.
+			this.EditingArea.Textarea._FCKShowContextMenu = true ;
+
+			// Removes the enter key handler.
+			FCK.EnterKeyHandler = null ;
+
+			if ( resetIsDirty )
+				this.ResetIsDirty() ;
+
+			// Listen for keystroke events.
+			FCK.KeystrokeHandler.AttachToElement( this.EditingArea.Textarea ) ;
+
+			this.EditingArea.Textarea.focus() ;
+
+			FCK.Events.FireEvent( 'OnAfterSetHTML' ) ;
+		}
+
+		if ( FCKBrowserInfo.IsGecko )
+			window.onresize() ;
+	},
+
+	// For the FocusManager
+	HasFocus : false,
+
+
+	// This collection is used by the browser specific implementations to tell
+	// wich named commands must be handled separately.
+	RedirectNamedCommands : new Object(),
+
+	ExecuteNamedCommand : function( commandName, commandParameter, noRedirect )
+	{
+		FCKUndo.SaveUndoStep() ;
+
+		if ( !noRedirect && FCK.RedirectNamedCommands[ commandName ] != null )
+			FCK.ExecuteRedirectedNamedCommand( commandName, commandParameter ) ;
+		else
+		{
+			FCK.Focus() ;
+			FCK.EditorDocument.execCommand( commandName, false, commandParameter ) ;
+			FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+		}
+
+		FCKUndo.SaveUndoStep() ;
+	},
+
+	GetNamedCommandState : function( commandName )
+	{
+		try
+		{
+
+			if ( !FCK.EditorDocument.queryCommandEnabled( commandName ) )
+				return FCK_TRISTATE_DISABLED ;
+			else
+				return FCK.EditorDocument.queryCommandState( commandName ) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ;
+		}
+		catch ( e )
+		{
+			return FCK_TRISTATE_OFF ;
+		}
+	},
+
+	GetNamedCommandValue : function( commandName )
+	{
+		var sValue = '' ;
+		var eState = FCK.GetNamedCommandState( commandName ) ;
+
+		if ( eState == FCK_TRISTATE_DISABLED )
+			return null ;
+
+		try
+		{
+			sValue = this.EditorDocument.queryCommandValue( commandName ) ;
+		}
+		catch(e) {}
+
+		return sValue ? sValue : '' ;
+	},
+
+	PasteFromWord : function()
+	{
+		FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
+	},
+
+	Preview : function()
+	{
+		var iWidth	= FCKConfig.ScreenWidth * 0.8 ;
+		var iHeight	= FCKConfig.ScreenHeight * 0.7 ;
+		var iLeft	= ( FCKConfig.ScreenWidth - iWidth ) / 2 ;
+		var oWindow = window.open( '', null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ;
+
+		var sHTML ;
+
+		if ( FCKConfig.FullPage )
+		{
+			if ( FCK.TempBaseTag.length > 0 )
+				sHTML = FCK.TempBaseTag + FCK.GetXHTML() ;
+			else
+				sHTML = FCK.GetXHTML() ;
+		}
+		else
+		{
+			sHTML =
+				FCKConfig.DocType +
+				'<html dir="' + FCKConfig.ContentLangDirection + '">' +
+				'<head>' +
+				FCK.TempBaseTag +
+				'<title>' + FCKLang.Preview + '</title>' +
+				_FCK_GetEditorAreaStyleTags() +
+				'</head><body>' +
+				FCK.GetXHTML() +
+				'</body></html>' ;
+		}
+
+		oWindow.document.write( sHTML );
+		oWindow.document.close();
+	},
+
+	SwitchEditMode : function( noUndo )
+	{
+		var bIsWysiwyg = ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ) ;
+
+		// Save the current IsDirty state, so we may restore it after the switch.
+		var bIsDirty = FCK.IsDirty() ;
+
+		var sHtml ;
+
+		// Update the HTML in the view output to show.
+		if ( bIsWysiwyg )
+		{
+			if ( !noUndo && FCKBrowserInfo.IsIE )
+				FCKUndo.SaveUndoStep() ;
+
+			sHtml = FCK.GetXHTML( FCKConfig.FormatSource ) ;
+
+			if ( sHtml == null )
+				return false ;
+		}
+		else
+			sHtml = this.EditingArea.Textarea.value ;
+
+		FCK.EditMode = bIsWysiwyg ? FCK_EDITMODE_SOURCE : FCK_EDITMODE_WYSIWYG ;
+
+		FCK.SetHTML( sHtml, !bIsDirty ) ;
+
+		// Set the Focus.
+		FCK.Focus() ;
+
+		// Update the toolbar (Running it directly causes IE to fail).
+		FCKTools.RunFunction( FCK.ToolbarSet.RefreshModeState, FCK.ToolbarSet ) ;
+
+		return true ;
+	},
+
+	CreateElement : function( tag )
+	{
+		var e = FCK.EditorDocument.createElement( tag ) ;
+		return FCK.InsertElementAndGetIt( e ) ;
+	},
+
+	InsertElementAndGetIt : function( e )
+	{
+		e.setAttribute( 'FCKTempLabel', 'true' ) ;
+
+		this.InsertElement( e ) ;
+
+		var aEls = FCK.EditorDocument.getElementsByTagName( e.tagName ) ;
+
+		for ( var i = 0 ; i < aEls.length ; i++ )
+		{
+			if ( aEls[i].getAttribute( 'FCKTempLabel' ) )
+			{
+				aEls[i].removeAttribute( 'FCKTempLabel' ) ;
+				return aEls[i] ;
+			}
+		}
+		return null ;
+	}
+
+} ;
+
+FCK.Events	= new FCKEvents( FCK ) ;
+// GetHTML is Deprecated : returns the same value as GetXHTML.
+FCK.GetHTML	= FCK.GetXHTML ;
+
+// Replace all events attributes (like onclick).
+function _FCK_ProtectEvents_ReplaceTags( tagMatch )
 {
-	if ( FCK.LinkedField.tagName == 'INPUT' || FCK.LinkedField.tagName == 'TEXTAREA' )
-		break ;
+	return tagMatch.replace( FCKRegexLib.EventAttributes, _FCK_ProtectEvents_ReplaceEvents ) ;
 }
 
-var FCKTempBin = new Object() ;
-FCKTempBin.Elements = new Array() ;
+// Replace an event attribute with its respective __fckprotectedatt attribute.
+// The original event markup will be encoded and saved as the value of the new
+// attribute.
+function _FCK_ProtectEvents_ReplaceEvents( eventMatch, attName )
+{
+	return ' ' + attName + '_fckprotectedatt="' + eventMatch.ReplaceAll( [/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g], ['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'] ) + '"' ;
+}
 
-FCKTempBin.AddElement = function( element )
+function _FCK_ProtectEvents_RestoreEvents( match, encodedOriginal )
 {
-	var iIndex = FCKTempBin.Elements.length ;
-	FCKTempBin.Elements[ iIndex ] = element ;
-	return iIndex ;
+	return encodedOriginal.ReplaceAll( [/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g], ["'",'"','=','<','>','\r','\n','&'] ) ;
 }
 
-FCKTempBin.RemoveElement = function( index )
+function _FCK_EditingArea_OnLoad()
 {
-	var e = FCKTempBin.Elements[ index ] ;
-	FCKTempBin.Elements[ index ] = null ;
-	return e ;
+	// Get the editor's window and document (DOM)
+	FCK.EditorWindow	= FCK.EditingArea.Window ;
+	FCK.EditorDocument	= FCK.EditingArea.Document ;
+
+	FCK.InitializeBehaviors() ;
+
+	// Create the enter key handler
+	if ( !FCKConfig.DisableEnterKeyHandler )
+		FCK.EnterKeyHandler = new FCKEnterKey( FCK.EditorWindow, FCKConfig.EnterMode, FCKConfig.ShiftEnterMode ) ;
+
+	// Listen for keystroke events.
+	FCK.KeystrokeHandler.AttachToElement( FCK.EditorDocument ) ;
+
+	if ( FCK._ForceResetIsDirty )
+		FCK.ResetIsDirty() ;
+
+	// This is a tricky thing for IE. In some cases, even if the cursor is
+	// blinking in the editing, the keystroke handler doesn't catch keyboard
+	// events. We must activate the editing area to make it work. (#142).
+	if ( FCKBrowserInfo.IsIE && FCK.HasFocus )
+		FCK.EditorDocument.body.setActive() ;
+
+	FCK.OnAfterSetHTML() ;
+
+	// Check if it is not a startup call, otherwise complete the startup.
+	if ( FCK.Status != FCK_STATUS_NOTLOADED )
+		return ;
+
+	FCK.SetStatus( FCK_STATUS_ACTIVE ) ;
 }
 
-FCKTempBin.Reset = function()
+function _FCK_GetEditorAreaStyleTags()
 {
-	var i = 0 ;
-	while ( i < FCKTempBin.Elements.length )
-		FCKTempBin.Elements[ i++ ] == null ;
-	FCKTempBin.Elements.length = 0 ;
-}
\ No newline at end of file
+	var sTags = '' ;
+	var aCSSs = FCKConfig.EditorAreaCSS ;
+
+	for ( var i = 0 ; i < aCSSs.length ; i++ )
+		sTags += '<link href="' + aCSSs[i] + '" rel="stylesheet" type="text/css" />' ;
+
+	return sTags ;
+}
+
+function _FCK_KeystrokeHandler_OnKeystroke( keystroke, keystrokeValue )
+{
+	if ( FCK.Status != FCK_STATUS_COMPLETE )
+		return false ;
+
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		if ( keystrokeValue == 'Paste' )
+			return !FCK.Events.FireEvent( 'OnPaste' ) ;
+	}
+	else
+	{
+		// In source mode, some actions must have their default behavior.
+		if ( keystrokeValue.Equals( 'Paste', 'Undo', 'Redo', 'SelectAll' ) )
+			return false ;
+	}
+
+	// The return value indicates if the default behavior of the keystroke must
+	// be cancelled. Let's do that only if the Execute() call explicitelly returns "false".
+	var oCommand = FCK.Commands.GetCommand( keystrokeValue ) ;
+	return ( oCommand.Execute.apply( oCommand, FCKTools.ArgumentsToArray( arguments, 2 ) ) !== false ) ;
+}
+
+// Set the FCK.LinkedField reference to the field that will be used to post the
+// editor data.
+(function()
+{
+	// There is a bug on IE... getElementById returns any META tag that has the
+	// name set to the ID you are looking for. So the best way in to get the array
+	// by names and look for the correct one.
+	// As ASP.Net generates a ID that is different from the Name, we must also
+	// look for the field based on the ID (the first one is the ID).
+
+	var oDocument = window.parent.document ;
+
+	// Try to get the field using the ID.
+	var eLinkedField = oDocument.getElementById( FCK.Name ) ;
+
+	var i = 0;
+	while ( eLinkedField || i == 0 )
+	{
+		if ( eLinkedField && eLinkedField.tagName.toLowerCase().Equals( 'input', 'textarea' ) )
+		{
+			FCK.LinkedField = eLinkedField ;
+			break ;
+		}
+
+		eLinkedField = oDocument.getElementsByName( FCK.Name )[i++] ;
+	}
+})() ;
+
+var FCKTempBin =
+{
+	Elements : new Array(),
+
+	AddElement : function( element )
+	{
+		var iIndex = this.Elements.length ;
+		this.Elements[ iIndex ] = element ;
+		return iIndex ;
+	},
+
+	RemoveElement : function( index )
+	{
+		var e = this.Elements[ index ] ;
+		this.Elements[ index ] = null ;
+		return e ;
+	},
+
+	Reset : function()
+	{
+		var i = 0 ;
+		while ( i < this.Elements.length )
+			this.Elements[ i++ ] == null ;
+		this.Elements.length = 0 ;
+	}
+} ;
+
+
+
+// # Focus Manager: Manages the focus in the editor.
+var FCKFocusManager = FCK.FocusManager =
+{
+	IsLocked : false,
+
+	AddWindow : function( win, sendToEditingArea )
+	{
+		var oTarget ;
+
+		if ( FCKBrowserInfo.IsIE )
+			oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
+		else
+			oTarget = win.document ;
+
+		FCKTools.AddEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
+		FCKTools.AddEventListener( oTarget, 'focus', sendToEditingArea ? FCKFocusManager_Win_OnFocus_Area : FCKFocusManager_Win_OnFocus ) ;
+	},
+
+	RemoveWindow : function( win )
+	{
+		if ( FCKBrowserInfo.IsIE )
+			oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
+		else
+			oTarget = win.document ;
+
+		FCKTools.RemoveEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
+		FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus_Area ) ;
+		FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus ) ;
+	},
+
+	Lock : function()
+	{
+		this.IsLocked = true ;
+	},
+
+	Unlock : function()
+	{
+		if ( this._HasPendingBlur )
+			FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
+
+		this.IsLocked = false ;
+	},
+
+	_ResetTimer : function()
+	{
+		this._HasPendingBlur = false ;
+
+		if ( this._Timer )
+		{
+			window.clearTimeout( this._Timer ) ;
+			delete this._Timer ;
+		}
+	}
+} ;
+
+function FCKFocusManager_Win_OnBlur()
+{
+	if ( typeof(FCK) != 'undefined' && FCK.HasFocus )
+	{
+		FCKFocusManager._ResetTimer() ;
+		FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
+	}
+}
+
+function FCKFocusManager_FireOnBlur()
+{
+	if ( FCKFocusManager.IsLocked )
+		FCKFocusManager._HasPendingBlur = true ;
+	else
+	{
+		FCK.HasFocus = false ;
+		FCK.Events.FireEvent( "OnBlur" ) ;
+	}
+}
+
+function FCKFocusManager_Win_OnFocus_Area()
+{
+	FCK.Focus() ;
+	FCKFocusManager_Win_OnFocus() ;
+}
+
+function FCKFocusManager_Win_OnFocus()
+{
+	FCKFocusManager._ResetTimer() ;
+
+	if ( !FCK.HasFocus && !FCKFocusManager.IsLocked )
+	{
+		FCK.HasFocus = true ;
+		FCK.Events.FireEvent( "OnFocus" ) ;
+	}
+}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,409 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_1.js
- * 	This is the first part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-FCK.Events	= new FCKEvents( FCK ) ;
-FCK.Toolbar	= null ;
-
-FCK.TempBaseTag = FCKConfig.BaseHref.length > 0 ? '<base href="' + FCKConfig.BaseHref + '" _fcktemp="true"></base>' : '' ;
-
-FCK.StartEditor = function()
-{
-	// Get the editor's window and document (DOM)
-	this.EditorWindow	= window.frames[ 'eEditorArea' ] ;
-	this.EditorDocument	= this.EditorWindow.document ;
-
-	// TODO: Wait stable version and remove the following commented lines.
-	// The Base Path of the editor is saved to rebuild relative URL (IE issue).
-//	this.BaseUrl = this.EditorDocument.location.protocol + '//' + this.EditorDocument.location.host ;
-
-//	if ( FCKBrowserInfo.IsGecko )
-//		this.MakeEditable() ;
-
-	// Set the editor's startup contents
-	this.SetHTML( FCKTools.GetLinkedFieldValue() ) ;
-
-	// Attach the editor to the form onsubmit event
-	FCKTools.AttachToLinkedFieldFormSubmit( this.UpdateLinkedField ) ;
-
-	FCKUndo.SaveUndoStep() ;
-
-	this.SetStatus( FCK_STATUS_ACTIVE ) ;
-}
-
-function Window_OnFocus()
-{
-	FCK.Focus() ;
-}
-
-FCK.SetStatus = function( newStatus )
-{
-	this.Status = newStatus ;
-
-	if ( newStatus == FCK_STATUS_ACTIVE )
-	{
-		// Force the focus in the window to go to the editor.
-		window.onfocus = window.document.body.onfocus = Window_OnFocus ;
-
-		// Force the focus in the editor.
-		if ( FCKConfig.StartupFocus )
-			FCK.Focus() ;
-
-		// @Packager.Compactor.Remove.Start
-		var sBrowserSuffix = FCKBrowserInfo.IsIE ? "ie" : "gecko" ;
-
-		FCKScriptLoader.AddScript( '_source/internals/fck_2.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fck_2_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckselection.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckselection_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckpanel_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fcktablehandler.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fcktablehandler_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckxml_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckstyledef.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckstyledef_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckstylesloader.js' ) ;
-
-		FCKScriptLoader.AddScript( '_source/commandclasses/fcknamedcommand.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fck_othercommands.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fckspellcheckcommand_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fckpastewordcommand.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fcktablecommand.js' ) ;
-		FCKScriptLoader.AddScript( '_source/commandclasses/fckstylecommand.js' ) ;
-
-		FCKScriptLoader.AddScript( '_source/internals/fckcommands.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarbutton.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckspecialcombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontscombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fcktoolbaritems.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbar.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fcktoolbarbreak_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fcktoolbarset.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckdialog.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckdialog_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuitem.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuseparator.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckcontextmenugroup.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu_' + sBrowserSuffix + '.js' ) ;
-		FCKScriptLoader.AddScript( '_source/classes/fckplugin.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fckplugins.js' ) ;
-		FCKScriptLoader.AddScript( '_source/internals/fck_last.js' ) ;
-		// @Packager.Compactor.Remove.End
-
-		/* @Packager.Compactor.RemoveLine
-
-		if ( FCKBrowserInfo.IsIE )
-			FCKScriptLoader.AddScript( 'js/fckeditorcode_ie_2.js' ) ;
-		else
-			FCKScriptLoader.AddScript( 'js/fckeditorcode_gecko_2.js' ) ;
-
-		@Packager.Compactor.RemoveLine */
-	}
-
-	this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
-}
-
-FCK.GetHTML = function( format )
-{
-	var sHTML ;
-
-	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
-	{
-		// TODO: Wait stable version and remove the following commented lines.
-//		if ( FCKBrowserInfo.IsIE )
-//			FCK.CheckRelativeLinks() ;
-
-		if ( FCKBrowserInfo.IsIE )
-			sHTML = this.EditorDocument.body.innerHTML.replace( FCKRegexLib.ToReplace, '$1' ) ;
-		else
-			sHTML = this.EditorDocument.body.innerHTML ;
-	}
-	else
-		sHTML = document.getElementById('eSourceField').value ;
-
-	if ( format )
-		return FCKCodeFormatter.Format( sHTML ) ;
-	else
-		return sHTML ;
-}
-
-FCK.GetXHTML = function( format )
-{
-	var bSource = ( FCK.EditMode == FCK_EDITMODE_SOURCE ) ;
-
-	if ( bSource )
-		this.SwitchEditMode() ;
-
-	// TODO: Wait stable version and remove the following commented lines.
-//	if ( FCKBrowserInfo.IsIE )
-//		FCK.CheckRelativeLinks() ;
-
-	var sXHTML ;
-	
-	if ( FCKConfig.FullPage )
-		sXHTML = FCKXHtml.GetXHTML( this.EditorDocument.getElementsByTagName( 'html' )[0], true, format ) ;
-	else
-	{
-		if ( FCKConfig.IgnoreEmptyParagraphValue && this.EditorDocument.body.innerHTML == '<P>&nbsp;</P>' )
-			sXHTML = '' ;
-		else
-			sXHTML = FCKXHtml.GetXHTML( this.EditorDocument.body, false, format ) ;
-	}
-
-	if ( bSource )
-		this.SwitchEditMode() ;
-
-	if ( FCKBrowserInfo.IsIE )
-		sXHTML = sXHTML.replace( FCKRegexLib.ToReplace, '$1' ) ;
-
-	if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
-		sXHTML = FCK.DocTypeDeclaration + '\n' + sXHTML ;
-
-	if ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 )
-		sXHTML = FCK.XmlDeclaration + '\n' + sXHTML ;
-
-	return FCKConfig.ProtectedSource.Revert( sXHTML ) ;
-}
-
-FCK.UpdateLinkedField = function()
-{
-	if ( FCKConfig.EnableXHTML )
-		FCK.LinkedField.value = FCK.GetXHTML( FCKConfig.FormatOutput ) ;
-	else
-		FCK.LinkedField.value = FCK.GetHTML( FCKConfig.FormatOutput ) ;
-		
-	FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ;
-}
-
-FCK.ShowContextMenu = function( x, y )
-{
-	if ( this.Status != FCK_STATUS_COMPLETE )
-		return ;
-
-	FCKContextMenu.Show( x, y ) ;
-	this.Events.FireEvent( "OnContextMenu" ) ;
-}
-
-FCK.RegisteredDoubleClickHandlers = new Object() ;
-
-FCK.OnDoubleClick = function( element )
-{
-	var oHandler = FCK.RegisteredDoubleClickHandlers[ element.tagName ] ;
-	if ( oHandler )
-		oHandler( element ) ;
-}
-
-// Register objects that can handle double click operations.
-FCK.RegisterDoubleClickHandler = function( handlerFunction, tag )
-{
-	FCK.RegisteredDoubleClickHandlers[ tag.toUpperCase() ] = handlerFunction ;
-}
-
-FCK.OnAfterSetHTML = function()
-{
-	var oProcessor, i = 0 ;
-	while( ( oProcessor = FCKDocumentProcessors[i++] ) )
-		oProcessor.ProcessDocument( FCK.EditorDocument ) ;
-
-	this.Events.FireEvent( 'OnAfterSetHTML' ) ;
-}
-
-// Advanced document processors.
-
-var FCKDocumentProcessors = new Array() ;
-
-var FCKDocumentProcessors_CreateFakeImage = function( fakeClass, realElement )
-{
-	var oImg = FCK.EditorDocument.createElement( 'IMG' ) ;
-	oImg.className = fakeClass ;
-	oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
-	oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
-	oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( realElement ), 0 ) ;
-	return oImg ;
-}
-
-// Link Anchors
-var FCKAnchorsProcessor = new Object() ;
-FCKAnchorsProcessor.ProcessDocument = function( document )
-{
-	var aLinks = document.getElementsByTagName( 'A' ) ;
-
-	var oLink ;
-	var i = aLinks.length - 1 ;
-	while ( i >= 0 && ( oLink = aLinks[i--] ) )
-	{
-		// If it is anchor.
-		if ( oLink.name.length > 0 && ( !oLink.getAttribute('href') || oLink.getAttribute('href').length == 0 ) )
-		{
-			var oImg = FCKDocumentProcessors_CreateFakeImage( 'FCK__Anchor', oLink.cloneNode(true) ) ;
-			oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
-			
-			oLink.parentNode.insertBefore( oImg, oLink ) ;
-			oLink.parentNode.removeChild( oLink ) ;
-		}
-	}
-}
-
-FCKDocumentProcessors.addItem( FCKAnchorsProcessor ) ;
-
-// Page Breaks
-var FCKPageBreaksProcessor = new Object() ;
-FCKPageBreaksProcessor.ProcessDocument = function( document )
-{
-	var aCenters = document.getElementsByTagName( 'CENTER' ) ;
-
-	var oCenter ;
-	var i = aCenters.length - 1 ;
-	while ( i >= 0 && ( oCenter = aCenters[i--] ) )
-	{
-		if ( oCenter.style.pageBreakAfter == 'always' && oCenter.innerHTML.trim().length == 0 )
-		{
-			var oFakeImage = FCKDocumentProcessors_CreateFakeImage( 'FCK__PageBreak', oCenter.cloneNode(true) ) ;
-			
-			oCenter.parentNode.insertBefore( oFakeImage, oCenter ) ;
-			oCenter.parentNode.removeChild( oCenter ) ;
-		}
-	}
-}
-
-FCKDocumentProcessors.addItem( FCKPageBreaksProcessor ) ;
-
-// Flash Embeds.
-var FCKFlashProcessor = new Object() ;
-FCKFlashProcessor.ProcessDocument = function( document )
-{
-	/*
-	Sample code:
-	This is some <embed src="/UserFiles/Flash/Yellow_Runners.swf"></embed><strong>sample text</strong>. You are&nbsp;<a name="fred"></a> using <a href="http://www.fckeditor.net/">FCKeditor</a>.
-	*/
-
-	var aEmbeds = document.getElementsByTagName( 'EMBED' ) ;
-
-	var oEmbed ;
-	var i = aEmbeds.length - 1 ;
-	while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
-	{
-		if ( oEmbed.src.endsWith( '.swf', true ) )
-		{
-			var oImg = FCKDocumentProcessors_CreateFakeImage( 'FCK__Flash', oEmbed.cloneNode(true) ) ;
-			oImg.setAttribute( '_fckflash', 'true', 0 ) ;
-			
-			FCKFlashProcessor.RefreshView( oImg, oEmbed ) ;
-
-			oEmbed.parentNode.insertBefore( oImg, oEmbed ) ;
-			oEmbed.parentNode.removeChild( oEmbed ) ;
-
-//			oEmbed.setAttribute( '_fckdelete', 'true', 0) ;
-//			oEmbed.style.display = 'none' ;
-//			oEmbed.hidden = true ;
-		}
-	}
-}
-
-FCKFlashProcessor.RefreshView = function( placholderImage, originalEmbed )
-{
-	if ( originalEmbed.width > 0 )
-		placholderImage.style.width = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.width ) ;
-		
-	if ( originalEmbed.height > 0 )
-		placholderImage.style.height = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.height ) ;
-}
-
-FCKDocumentProcessors.addItem( FCKFlashProcessor ) ;
-
-FCK.GetRealElement = function( fakeElement )
-{
-	var e = FCKTempBin.Elements[ fakeElement.getAttribute('_fckrealelement') ] ;
-
-	if ( fakeElement.getAttribute('_fckflash') )
-	{
-		if ( fakeElement.style.width.length > 0 )
-				e.width = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.width ) ;
-		
-		if ( fakeElement.style.height.length > 0 )
-				e.height = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.height ) ;
-	}
-	
-	return e ;
-}
-
-// START iCM MODIFICATIONS
-/*
-var FCKTablesProcessor = new Object() ;
-FCKTablesProcessor.ProcessDocument = function( document )
-{
-	FCKTablesProcessor.CheckTablesNesting( document ) ;
-}
-
-// Ensure that tables are not incorrectly nested within P, H1, H2, etc tags
-FCKTablesProcessor.CheckTablesNesting = function( document )
-{
-	var aTables = document.getElementsByTagName( "TABLE" ) ;
-	var oParentNode ;
-	
-	for ( var i=0; i<aTables.length; i++ )
-	{
-		FCKTablesProcessor.CheckTableNesting( aTables[i] ) ;
-	}
-}
-
-// Corrects nesting of the supplied table as necessary.
-// Also called by fck_table.html to check that a newly inserted table is correctly nested.
-FCKTablesProcessor.CheckTableNesting = function( oTableNode )
-{
-	var oParentBlockNode = FCKTools.GetParentBlockNode( oTableNode.parentNode ) ;
-	
-	if ( oParentBlockNode && !FCKRegexLib.TableBlockElements.test( oParentBlockNode.nodeName ) )
-	{
-		// Create a new tag which holds the content of the child nodes located before the table
-		var oNode1 = FCK.EditorDocument.createElement( oParentBlockNode.tagName ) ;
-		var oFragment1 = FCKTools.GetDocumentFragment( oParentBlockNode, oParentBlockNode.firstChild, oTableNode, true, false, true ) ;
-		oNode1.appendChild( oFragment1 ) ;
-		FCKTools.SetElementAttributes( oNode1, oParentBlockNode.attributes ) ; 	// Transfer across any class attributes, etc
-	
-		// Create a new tag which holds the content of the child nodes located after the table
-		var oNode2 = FCK.EditorDocument.createElement( oParentBlockNode.tagName );
-		var oFragment2 = FCKTools.GetDocumentFragment( oParentBlockNode, oTableNode, oParentBlockNode.lastChild, false, true, true ) ;
-		oNode2.appendChild( oFragment2 ) ;
-		FCKTools.SetElementAttributes( oNode2, oParentBlockNode.attributes ) ; 	// Transfer across any class attributes, etc
-		
-		// Create a document fragment that contains the two new elements with the table element inbetween
-		var oNewNode = FCK.EditorDocument.createDocumentFragment() ;
-		if ( !FCKTools.NodeIsEmpty( oNode1 ) )
-			oNewNode.appendChild( oNode1 ) ;
-		oNewNode.appendChild( oTableNode ) ;
-		if ( !FCKTools.NodeIsEmpty( oNode2 ) )
-			oNewNode.appendChild( oNode2 ) ; 
-		
-		// Replace the existing parent node with the nodes in the fragment
-		oParentBlockNode.parentNode.replaceChild( oNewNode, oParentBlockNode ) ;
-	}
-}		
-
-FCKDocumentProcessors.addItem( FCKTablesProcessor ) ;
-*/
-// END iCM MODIFICATIONS
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,273 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_1_gecko.js
- * 	This is the first part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 	(Gecko specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-FCK.Description = "FCKeditor for Gecko Browsers" ;
-
-FCK.InitializeBehaviors = function()
-{
-	// Enable table borders visibility.
-	if ( FCKConfig.ShowBorders ) 
-	{
-		var oStyle = FCKTools.AppendStyleSheet( this.EditorDocument, FCKConfig.FullBasePath + 'css/fck_showtableborders_gecko.css' ) ;
-		oStyle.setAttribute( '_fcktemp', 'true' ) ;
-	}
-
-	// Disable Right-Click
-	var oOnContextMenu = function( e )
-	{
-		e.preventDefault() ;
-		FCK.ShowContextMenu( e.clientX, e.clientY ) ;
-	}
-	this.EditorDocument.addEventListener( 'contextmenu', oOnContextMenu, true ) ;
-
-	// Handle pasting operations.
-	var oOnKeyDown = function( e )
-	{
-		// FCKDebug.Output( 'Which Key: ' +  e.which ) ;
-
-		// START iCM Modifications
-		/*
-		// Need to amend carriage return key handling so inserts block element tags rather than BR all the time
-		if ( e.which == 13 && !e.shiftKey && !e.ctrlKey && !e.altKey && !FCKConfig.UseBROnCarriageReturn && !FCK.Events.FireEvent( "OnEnter" ) )
-		{
-			e.preventDefault() ;
-			e.stopPropagation() ;
-		}
-		// Amend backspace handling so correctly removes empty block elements i.e. those block elements containing nothing or
-		// just the bogus BR node
-		if ( e.which == 8 && !e.shiftKey && !e.ctrlKey && !e.altKey && !FCKConfig.UserBROnCarriageReturn && !FCK.Events.FireEvent( "OnBackSpace" ) )
-		{
-			e.preventDefault() ;
-			e.stopPropagation() ;
-		}
-		*/
-		// END iCM Modifications
-
-		if ( e.ctrlKey && !e.shiftKey && !e.altKey )
-		{
-			var bPrevent = false ;
-			
-			switch ( e.which ) 
-			{
-				case 66 :	// B
-				case 98 :	// b
-					FCK.ExecuteNamedCommand( 'bold' ) ; bPrevent = true ;
-					break;
-				case 105 :	// i
-				case 73 :	// I
-					FCK.ExecuteNamedCommand( 'italic' ) ; bPrevent = true ;
-					break;
-				case 117 :	// u
-				case 85 :	// U
-					FCK.ExecuteNamedCommand( 'underline' ) ; bPrevent = true ;
-					break;
-				case 86 :	// V
-				case 118 :	// v
-					bPrevent = ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( "OnPaste" ) ) ;
-					break ;
-			}
-	
-			if ( bPrevent ) 
-			{
-				e.preventDefault() ;
-				e.stopPropagation() ;
-			}
-		}
-	}
-	this.EditorDocument.addEventListener( 'keypress', oOnKeyDown, true ) ;
-
-	this.ExecOnSelectionChange = function()
-	{
-		FCK.Events.FireEvent( "OnSelectionChange" ) ;
-	}
-
-	this.ExecOnSelectionChangeTimer = function()
-	{
-		if ( FCK.LastOnChangeTimer )
-			window.clearTimeout( FCK.LastOnChangeTimer ) ;
-
-		FCK.LastOnChangeTimer = window.setTimeout( FCK.ExecOnSelectionChange, 100 ) ;
-	}
-
-	this.EditorDocument.addEventListener( 'mouseup', this.ExecOnSelectionChange, false ) ;
-
-	// On Gecko, firing the "OnSelectionChange" event on every key press started to be too much
-	// slow. So, a timer has been implemented to solve performance issues when tipying to quickly.
-	this.EditorDocument.addEventListener( 'keyup', this.ExecOnSelectionChangeTimer, false ) ;
-
-	this._DblClickListener = function( e )
-	{
-		FCK.OnDoubleClick( e.target ) ;
-		e.stopPropagation() ;
-	}
-	this.EditorDocument.addEventListener( 'dblclick', this._DblClickListener, true ) ;
-
-	this._OnLoad = function()
-	{
-		if ( this._FCK_HTML )
-		{
-			this.document.body.innerHTML = this._FCK_HTML ;
-			this._FCK_HTML = null ;
-		}
-	}
-	this.EditorWindow.addEventListener( 'load', this._OnLoad, true ) ;
-
-//	var oEditorWindow_OnUnload = function()
-//	{
-//		FCK.EditorWindow.location = 'fckblank.html' ;
-//	}
-//	this.EditorWindow.addEventListener( 'unload', oEditorWindow_OnUnload, true ) ;
-
-//	var oEditorWindow_OnFocus = function()
-//	{
-//		FCK.MakeEditable() ;
-//	}
-//	this.EditorWindow.addEventListener( 'focus', oEditorWindow_OnFocus, true ) ;
-}
-
-FCK.MakeEditable = function()
-{
-	try 
-	{
-		FCK.EditorDocument.designMode = 'on' ;
-
-		// Tell Gecko to use or not the <SPAN> tag for the bold, italic and underline.
-		FCK.EditorDocument.execCommand( 'useCSS', false, !FCKConfig.GeckoUseSPAN ) ;
-	}
-	catch (e) {}
-}
-
-FCK.Focus = function()
-{
-	try
-	{
-//		window.focus() ;
-		FCK.EditorWindow.focus() ;
-	}
-	catch(e) {}
-}
-
-FCK.SetHTML = function( html, forceWYSIWYG )
-{
-	// Firefox can't handle correctly the editing of the STRONG and EM tags. 
-	// We must replace them with B and I.
-	html = html.replace( FCKRegexLib.StrongOpener, '<b$1' ) ;
-	html = html.replace( FCKRegexLib.StrongCloser, '<\/b>' ) ;
-	html = html.replace( FCKRegexLib.EmOpener, '<i$1' ) ;
-	html = html.replace( FCKRegexLib.EmCloser, '<\/i>' ) ;
-
-	if ( forceWYSIWYG || FCK.EditMode == FCK_EDITMODE_WYSIWYG )
-	{
-		html = FCKConfig.ProtectedSource.Protect( html ) ;
-
-		// Gecko has a lot of bugs mainly when handling editing features.
-		// To avoid an Aplication Exception (that closes the browser!) we
-		// must first write the <HTML> contents with an empty body, and
-		// then insert the body contents.
-		// (Oh yes... it took me a lot of time to find out this workaround)
-
-		if ( FCKConfig.FullPage && FCKRegexLib.BodyContents.test( html ) )
-		{
-			// Add the <BASE> tag to the input HTML.
-			if ( FCK.TempBaseTag.length > 0 && !FCKRegexLib.HasBaseTag.test( html ) )
-				html = html.replace( FCKRegexLib.HeadOpener, '$&' + FCK.TempBaseTag ) ;
-
-			html = html.replace( FCKRegexLib.HeadCloser, '<link href="' + FCKConfig.BasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" /></head>' ) ;
-
-			// Extract the BODY contents from the html.
-			var oMatch		= html.match( FCKRegexLib.BodyContents ) ;
-			var sOpener		= oMatch[1] ;	// This is the HTML until the <body...> tag, inclusive.
-			var sContents	= oMatch[2] ;	// This is the BODY tag contents.
-			var sCloser		= oMatch[3] ;	// This is the HTML from the </body> tag, inclusive.
-
-			var sHtml = sOpener + '&nbsp;' + sCloser ;
-
-			if ( !this._Initialized )
-			{
-				FCK.EditorDocument.designMode = "on" ;
-
-				// Tell Gecko to use or not the <SPAN> tag for the bold, italic and underline.
-				FCK.EditorDocument.execCommand( "useCSS", false, !FCKConfig.GeckoUseSPAN ) ;
-
-				this._Initialized = true ;
-			}
-
-			this.EditorDocument.open() ;
-			this.EditorDocument.write( sHtml ) ;
-			this.EditorDocument.close() ;
-
-			if ( this.EditorDocument.body )
-				this.EditorDocument.body.innerHTML = sContents ;
-			else
-				this.EditorWindow._FCK_HTML = sContents ;
-
-			this.InitializeBehaviors() ;
-		}
-		else
-		{
-			/* TODO: Wait stable and remove it.
-			sHtml =
-				'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' +
-				'<html dir="' + FCKConfig.ContentLangDirection + '">' +
-				'<head><title></title>' +
-				'<link href="' + FCKConfig.EditorAreaCSS + '" rel="stylesheet" type="text/css" />' +
-				'<link href="' + FCKConfig.BasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
-
-			sHtml += FCK.TempBaseTag ;
-
-			sHtml += '</head><body>&nbsp;</body></html>' ;
-			*/
-
-			if ( !this._Initialized )
-			{
-				this.EditorDocument.dir = FCKConfig.ContentLangDirection ;
-
-				var sHtml =
-					'<title></title>' +
-					'<link href="' + FCKConfig.EditorAreaCSS + '" rel="stylesheet" type="text/css" />' +
-					'<link href="' + FCKConfig.BasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' +
-					FCK.TempBaseTag ;
-
-				this.EditorDocument.getElementsByTagName("HEAD")[0].innerHTML = sHtml ;
-
-				this.InitializeBehaviors() ;
-
-				this._Initialized = true ;
-			}
-
-			// On Gecko we must disable editing before setting the BODY innerHTML.
-//			FCK.EditorDocument.designMode = 'off' ;
-
-			if ( html.length == 0 )
-				FCK.EditorDocument.body.innerHTML = GECKO_BOGUS ;
-			else if ( FCKRegexLib.EmptyParagraph.test( html ) )
-				FCK.EditorDocument.body.innerHTML = html.replace( FCKRegexLib.TagBody, '>' + GECKO_BOGUS + '<' ) ;
-			else
-				FCK.EditorDocument.body.innerHTML = html ;
-			
-			FCK.MakeEditable() ;
-		}
-
-		FCK.OnAfterSetHTML() ;
-	}
-	else
-		document.getElementById('eSourceField').value = html ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_1_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,278 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_1_ie.js
- * 	This is the first part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 	(IE specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-FCK.Description = "FCKeditor for Internet Explorer 5.5+" ;
-
-// The behaviors should be pointed using the FullBasePath to avoid security
-// errors when using a differente BaseHref.
-FCK._BehaviorsStyle =
-	'<style type="text/css" _fcktemp="true"> \
-		INPUT { behavior: url(' + FCKConfig.FullBasePath + 'css/behaviors/hiddenfield.htc) ; } ' ;
-
-if ( FCKConfig.ShowBorders )
-	FCK._BehaviorsStyle += 'TABLE { behavior: url(' + FCKConfig.FullBasePath + 'css/behaviors/showtableborders.htc) ; }' ;
-
-// Disable resize handlers.
-var sNoHandlers = 'INPUT, TEXTAREA, SELECT, .FCK__Anchor, .FCK__PageBreak' ;
-
-if ( FCKConfig.DisableImageHandles )
-	sNoHandlers += ', IMG' ;
-
-if ( FCKConfig.DisableTableHandles )
-	sNoHandlers += ', TABLE' ;
-
-FCK._BehaviorsStyle += sNoHandlers + ' { behavior: url(' + FCKConfig.FullBasePath + 'css/behaviors/disablehandles.htc) ; }' ;
-
-FCK._BehaviorsStyle += '</style>' ;
-
-function Doc_OnMouseUp()
-{
-	if ( FCK.EditorWindow.event.srcElement.tagName == 'HTML' )
-	{
-		FCK.Focus() ;
-		FCK.EditorWindow.event.cancelBubble	= true ;
-		FCK.EditorWindow.event.returnValue	= false ;
-	}
-}
-
-function Doc_OnPaste()
-{
-	if ( FCK.Status == FCK_STATUS_COMPLETE )
-		return FCK.Events.FireEvent( "OnPaste" ) ;
-	else
-		return false ;
-}
-
-function Doc_OnContextMenu()
-{
-	var e = FCK.EditorWindow.event ;
-	
-	FCK.ShowContextMenu( e.screenX, e.screenY ) ;
-	return false ;
-}
-
-function Doc_OnKeyDown()
-{
-	var e = FCK.EditorWindow.event ;
-
-//	FCKDebug.Output( 'KeyCode: ' + e.keyCode ) ;
-
-	switch ( e.keyCode )
-	{
-		case 13 :	// ENTER
-			if ( FCKConfig.UseBROnCarriageReturn && !(e.ctrlKey || e.altKey || e.shiftKey) )
-			{
-				Doc_OnKeyDownUndo() ;
-				
-				// We must ignore it if we are inside a List.
-				if ( FCK.EditorDocument.queryCommandState( 'InsertOrderedList' ) || FCK.EditorDocument.queryCommandState( 'InsertUnorderedList' ) )
-					return true ;
-
-				// Insert the <BR> (The &nbsp; must be also inserted to make it work)
-				FCK.InsertHtml( '<br>&nbsp;' ) ;
-
-				// Remove the &nbsp;
-				var oRange = FCK.EditorDocument.selection.createRange() ;
-				oRange.moveStart( 'character', -1 ) ;
-				oRange.select() ;
-				FCK.EditorDocument.selection.clear() ;
-
-				return false ;
-			}
-			break ;
-			
-		case 9 :	// TAB
-			if ( FCKConfig.TabSpaces > 0 && !(e.ctrlKey || e.altKey || e.shiftKey) )
-			{
-				Doc_OnKeyDownUndo() ;
-				
-				FCK.InsertHtml( window.FCKTabHTML ) ;
-				return false ;
-			}
-			break ;
-		case 90 :	// Z
-			if ( e.ctrlKey && !(e.altKey || e.shiftKey) )
-			{
-				FCKUndo.Undo() ;
-				return false ;
-			}
-			break ;
-		case 89 :	// Y
-			if ( e.ctrlKey && !(e.altKey || e.shiftKey) )
-			{
-				FCKUndo.Redo() ;
-				return false ;
-			}
-			break ;
-	}
-	
-	if ( !( e.keyCode >=16 && e.keyCode <= 18 ) )
-		Doc_OnKeyDownUndo() ;
-	return true ;
-}
-
-function Doc_OnKeyDownUndo()
-{
-	if ( !FCKUndo.Typing )
-	{
-		FCKUndo.SaveUndoStep() ;
-		FCKUndo.Typing = true ;
-		FCK.Events.FireEvent( "OnSelectionChange" ) ;
-	}
-	
-	FCKUndo.TypesCount++ ;
-
-	if ( FCKUndo.TypesCount > FCKUndo.MaxTypes )
-	{
-		FCKUndo.TypesCount = 0 ;
-		FCKUndo.SaveUndoStep() ;
-	}
-}
-
-function Doc_OnDblClick()
-{
-	FCK.OnDoubleClick( FCK.EditorWindow.event.srcElement ) ;
-	FCK.EditorWindow.event.cancelBubble = true ;
-}
-
-function Doc_OnSelectionChange()
-{
-	FCK.Events.FireEvent( "OnSelectionChange" ) ;
-}
-
-FCK.InitializeBehaviors = function( dontReturn )
-{
-	// Set the focus to the editable area when clicking in the document area.
-	// TODO: The cursor must be positioned at the end.
-	this.EditorDocument.attachEvent( 'onmouseup', Doc_OnMouseUp ) ;
-
-	// Intercept pasting operations
-	this.EditorDocument.body.attachEvent( 'onpaste', Doc_OnPaste ) ;
-
-	// Disable Right-Click and shows the context menu.
-	this.EditorDocument.attachEvent('oncontextmenu', Doc_OnContextMenu ) ;
-
-	// Build the "TAB" key replacement (if necessary).
-	if ( FCKConfig.TabSpaces > 0 )
-	{
-		window.FCKTabHTML = '' ;
-		for ( i = 0 ; i < FCKConfig.TabSpaces ; i++ )
-			window.FCKTabHTML += "&nbsp;" ;
-	}
-	this.EditorDocument.attachEvent("onkeydown", Doc_OnKeyDown ) ;
-
-	this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ;
-
-	// Catch cursor movements
-	this.EditorDocument.attachEvent("onselectionchange", Doc_OnSelectionChange ) ;
-
-	//Enable editing
-//	this.EditorDocument.body.contentEditable = true ;
-}
-
-FCK.Focus = function()
-{
-	try
-	{
-		if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
-			FCK.EditorDocument.body.focus() ;
-		else
-			document.getElementById('eSourceField').focus() ;
-	}
-	catch(e) {}
-}
-
-FCK.SetHTML = function( html, forceWYSIWYG )
-{
-	if ( forceWYSIWYG || FCK.EditMode == FCK_EDITMODE_WYSIWYG )
-	{
-		html = FCKConfig.ProtectedSource.Protect( html ) ;
-
-		var sHtml ;
-
-		if ( FCKConfig.FullPage )
-		{
-			var sHtml =
-				FCK._BehaviorsStyle +
-				'<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
-
-			if ( FCK.TempBaseTag.length > 0 && !FCKRegexLib.HasBaseTag.test( html ) )
-				sHtml += FCK.TempBaseTag ;
-
-			sHtml = html.replace( FCKRegexLib.HeadOpener, '$&' + sHtml ) ;
-		}
-		else
-		{
-			sHtml =
-				FCKConfig.DocType +
-				'<html dir="' + FCKConfig.ContentLangDirection + '"' ;
-			
-			if ( FCKConfig.IEForceVScroll )
-				sHtml += ' style="overflow-y: scroll"' ;
-			
-			sHtml +=
-				'><head><title></title>' +
-				'<link href="' + FCKConfig.EditorAreaCSS + '" rel="stylesheet" type="text/css" />' +
-				'<link href="' + FCKConfig.FullBasePath + 'css/fck_internal.css' + '" rel="stylesheet" type="text/css" _fcktemp="true" />' ;
-
-			sHtml += FCK._BehaviorsStyle ;
-			sHtml += FCK.TempBaseTag ;
-			sHtml += '</head><body>' + html  + '</body></html>' ;
-		}
-
-		this.EditorDocument.open( '', '_self', '', true ) ;
-		this.EditorDocument.write( sHtml ) ;
-		this.EditorDocument.close() ;
-
-		this.InitializeBehaviors() ;
-		this.EditorDocument.body.contentEditable = true ;
-
-		FCK.OnAfterSetHTML() ;
-	}
-	else
-		document.getElementById('eSourceField').value = html ;
-}
-
-FCK.InsertHtml = function( html )
-{
-	FCK.Focus() ;
-
-	FCKUndo.SaveUndoStep() ;
-
-	// Gets the actual selection.
-	var oSel = FCK.EditorDocument.selection ;
-
-	// Deletes the actual selection contents.
-	if ( oSel.type.toLowerCase() != "none" )
-		oSel.clear() ;
-
-	// Inset the HTML.
-	oSel.createRange().pasteHTML( html ) ;
-}
-
-FCK.SetInnerHtml = function( html )		// IE Only
-{
-	var oDoc = FCK.EditorDocument ;
-	// Using the following trick, any comment in the begining of the HTML will
-	// be preserved.
-	oDoc.body.innerHTML = '<div id="__fakeFCKRemove__">&nbsp;</div>' + html ;
-	oDoc.getElementById('__fakeFCKRemove__').removeNode( true ) ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,202 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_2.js
- * 	This is the second part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// This collection is used by the browser specific implementations to tell
-// wich named commands must be handled separately.
-FCK.RedirectNamedCommands = new Object() ;
-
-FCK.ExecuteNamedCommand = function( commandName, commandParameter )
-{
-	FCKUndo.SaveUndoStep() ;
-
-	if ( FCK.RedirectNamedCommands[ commandName ] != null )
-		FCK.ExecuteRedirectedNamedCommand( commandName, commandParameter ) ;
-	else
-	{
-		FCK.Focus() ;
-		FCK.EditorDocument.execCommand( commandName, false, commandParameter ) ; 
-		FCK.Events.FireEvent( 'OnSelectionChange' ) ;
-	}
-	
-	FCKUndo.SaveUndoStep() ;
-}
-
-FCK.GetNamedCommandState = function( commandName )
-{
-	try
-	{
-		if ( !FCK.EditorDocument.queryCommandEnabled( commandName ) )
-			return FCK_TRISTATE_DISABLED ;
-		else
-			return FCK.EditorDocument.queryCommandState( commandName ) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ;
-	}
-	catch ( e )
-	{
-		return FCK_TRISTATE_OFF ;
-	}
-}
-
-FCK.GetNamedCommandValue = function( commandName )
-{
-	var sValue = '' ;
-	var eState = FCK.GetNamedCommandState( commandName ) ;
-	
-	if ( eState == FCK_TRISTATE_DISABLED ) 
-		return null ;
-	
-	try
-	{
-		sValue = this.EditorDocument.queryCommandValue( commandName ) ;
-	}
-	catch(e) {}
-	
-	return sValue ? sValue : '' ;
-}
-
-FCK.PasteFromWord = function()
-{
-	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
-}
-
-// TODO: Wait Stable and remove this block.
-//FCK.CleanAndPaste = function( html )
-//{
-	// Remove all SPAN tags
-//	html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
-
-//	html = html.replace(/<o:p>&nbsp;<\/o:p>/g, "") ;
-//	html = html.replace(/<o:p><\/o:p>/g, "") ;
-	
-	// Remove mso-xxx styles.
-//	html = html.replace( /mso-.[^:]:.[^;"]/g, "" ) ;
-	
-	// Remove Class attributes
-//	html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
-	
-	// Remove Style attributes
-//	html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
-	
-	// Remove Lang attributes
-//	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
-	
-	// Remove XML elements and declarations
-//	html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
-	
-	// Remove Tags with XML namespace declarations: <o:p></o:p>
-//	html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
-	
-	// Replace the &nbsp;
-//	html = html.replace(/&nbsp;/, " " );
-	// Replace the &nbsp; from the beggining.
-//	html = html.replace(/^&nbsp;[\s\r\n]*/, ""); 
-	
-	// Transform <P> to <DIV>
-//	var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;	// Different because of a IE 5.0 error
-//	html = html.replace( re, "<div$2</div>" ) ;
-	
-//	FCK.InsertHtml( html ) ;
-//}
-
-FCK.Preview = function()
-{
-	var iWidth	= FCKConfig.ScreenWidth * 0.8 ;
-	var iHeight	= FCKConfig.ScreenHeight * 0.7 ;
-	var iLeft	= ( FCKConfig.ScreenWidth - iWidth ) / 2 ;
-	var oWindow = window.open( '', null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ;
-	
-	var sHTML ;
-	
-	if ( FCKConfig.FullPage )
-	{
-		if ( FCK.TempBaseTag.length > 0 )
-			sHTML = FCK.GetXHTML().replace( FCKRegexLib.HeadOpener, '$&' + FCK.TempBaseTag ) ;
-		else
-			sHTML = FCK.GetXHTML() ;
-	}
-	else
-	{
-		sHTML = 
-			FCKConfig.DocType +
-			'<html dir="' + FCKConfig.ContentLangDirection + '">' +
-			'<head><title>' + FCKLang.Preview + '</title>' +
-			'<link href="' + FCKConfig.EditorAreaCSS + '" rel="stylesheet" type="text/css" />' +
-			FCK.TempBaseTag +
-			'</head><body>' + 
-			FCK.GetXHTML() + 
-			'</body></html>' ;
-	}
-	
-	oWindow.document.write( sHTML );
-	oWindow.document.close();
-}
-
-FCK.SwitchEditMode = function()
-{
-	// Check if the actual mode is WYSIWYG.
-	var bWYSIWYG = ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ) ;
-	
-	// Display/Hide the TRs.
-	document.getElementById('eWysiwyg').style.display	= bWYSIWYG ? 'none' : '' ;
-	document.getElementById('eSource').style.display	= bWYSIWYG ? '' : 'none' ;
-
-	// Update the HTML in the view output to show.
-	if ( bWYSIWYG )
-	{
-		if ( FCKBrowserInfo.IsIE )
-			FCKUndo.SaveUndoStep() ;
-		document.getElementById('eSourceField').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
-	}
-	else
-		FCK.SetHTML( FCK.GetHTML(), true ) ;
-
-	// Updates the actual mode status.
-	FCK.EditMode = bWYSIWYG ? FCK_EDITMODE_SOURCE : FCK_EDITMODE_WYSIWYG ;
-	
-	// Update the toolbar.
-	FCKToolbarSet.RefreshModeState() ;
-
-	// Set the Focus.
-	FCK.Focus() ;
-}
-
-FCK.CreateElement = function( tag )
-{
-	var e = FCK.EditorDocument.createElement( tag ) ;
-	return FCK.InsertElementAndGetIt( e ) ;
-}
-
-FCK.InsertElementAndGetIt = function( e )
-{
-	e.setAttribute( '__FCKTempLabel', 1 ) ;
-	
-	this.InsertElement( e ) ;
-	
-	var aEls = FCK.EditorDocument.getElementsByTagName( e.tagName ) ;
-	
-	for ( var i = 0 ; i < aEls.length ; i++ )
-	{
-		if ( aEls[i].getAttribute( '__FCKTempLabel' ) )
-		{
-			aEls[i].removeAttribute( '__FCKTempLabel' ) ;
-			return aEls[i] ;
-		}
-	}
-	return null ;
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,469 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_2_gecko.js
- * 	This is the second part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 	(Gecko specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// GetNamedCommandState overload for Gecko.
-FCK._BaseGetNamedCommandState = FCK.GetNamedCommandState ;
-FCK.GetNamedCommandState = function( commandName )
-{
-	switch ( commandName )
-	{
-		case 'Unlink' :
-			return FCKSelection.HasAncestorNode('A') ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
-		default :
-			return FCK._BaseGetNamedCommandState( commandName ) ;
-	}
-}
-
-// Named commands to be handled by this browsers specific implementation.
-FCK.RedirectNamedCommands = 
-{
-	Print	: true,
-	Paste	: true,
-	Cut		: true,
-	Copy	: true
-	// START iCM MODIFICATIONS
-	// Include list functions so we can ensure content is wrapped
-	// with P tags if not using BRs on carriage return, etc
-	/*
-	InsertOrderedList	: true,
-	InsertUnorderedList	: true
-	*/
-	// END iCM MODIFICATIONS
-}
-
-// ExecuteNamedCommand overload for Gecko.
-FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
-{
-	switch ( commandName )
-	{
-		case 'Print' :
-			FCK.EditorWindow.print() ;
-			break ;
-		case 'Paste' :
-			try			{ if ( FCK.Paste() ) FCK.ExecuteNamedCommand( 'Paste' ) ; }
-			catch (e)	{ alert( FCKLang.PasteErrorPaste ) ; }
-			break ;
-		case 'Cut' :
-			try			{ FCK.ExecuteNamedCommand( 'Cut' ) ; }
-			catch (e)	{ alert( FCKLang.PasteErrorCut ) ; }
-			break ;
-		case 'Copy' :
-			try			{ FCK.ExecuteNamedCommand( 'Copy' ) ; }
-			catch (e)	{ alert( FCKLang.PasteErrorCopy ) ; }
-			break ;
-			
-		// START iCM MODIFICATIONS
-		/*
-		case 'InsertOrderedList'   :
-		case 'InsertUnorderedList' :
-		
-			if ( !FCKConfig.UseBROnCarriageReturn && FCK.EditorDocument.queryCommandState( commandName ) )
-			{
-				// We're in a list item which is in the same type of list as the toolbar button clicked
-				// Therefore, move the selected list item out of the list as is done on an ENTER key within
-				// an empty list item.
-				var oSel = FCK.EditorWindow.getSelection() ;
-				var oSelNode = oSel.focusNode ;
-				var oLINode = FCKTools.GetElementAscensor( oSelNode, "LI" ) ;
-				FCK.ToggleListItem( oLINode, oSelNode ) ;
-			}
-			else
-			{
-				// Let the default handler do its stuff
-				FCK.Focus() ;
-				FCK.EditorDocument.execCommand( commandName, false, commandParameter ) ; 
-			}
-			
-			FCK.Events.FireEvent( 'OnSelectionChange' ) ;
-			break ;
-		*/
-		// END iCM MODIFICATIONS
-			
-		default :
-			FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
-	}
-}
-
-FCK.AttachToOnSelectionChange = function( functionPointer )
-{
-	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
-}
-
-FCK.Paste = function()
-{
-	if ( FCKConfig.ForcePasteAsPlainText )
-	{
-		FCK.PasteAsPlainText() ;	
-		return false ;
-	}
-/* For now, the AutoDetectPasteFromWord feature is IE only.
-	else if ( FCKConfig.AutoDetectPasteFromWord )
-	{
-		var sHTML = FCK.GetClipboardHTML() ;
-		var re = /<\w[^>]* class="?MsoNormal"?/gi ;
-		if ( re.test( sHTML ) )
-		{
-			if ( confirm( FCKLang["PasteWordConfirm"] ) )
-			{
-				FCK.PasteFromWord() ;
-				return false ;
-			}
-		}
-	}
-*/
-	else
-		return true ;
-}
-
-//**
-// FCK.InsertHtml: Inserts HTML at the current cursor location. Deletes the
-// selected content if any.
-FCK.InsertHtml = function( html )
-{
-	// Delete the actual selection.
-	var oSel = FCKSelection.Delete() ;
-	
-//	var oContainer	= oSel.getRangeAt(0).startContainer ;
-//	var iOffSet		= oSel.getRangeAt(0).startOffset ;
-	
-	// Get the first available range.
-	var oRange = oSel.getRangeAt(0) ;
-	
-//	var oRange = this.EditorDocument.createRange() ;
-//	oRange.setStart( oContainer, iOffSet ) ;
-//	oRange.setEnd( oContainer, iOffSet ) ;
-	
-	// Create a fragment with the input HTML.
-	var oFragment = oRange.createContextualFragment( html ) ;
-	
-	// Get the last available node.
-	var oLastNode = oFragment.lastChild ;
-
-	// Insert the fragment in the range.
-	oRange.insertNode(oFragment) ;
-	
-	// Set the cursor after the inserted fragment.
-	oRange.setEndAfter( oLastNode ) ;
-	oRange.setStartAfter( oLastNode ) ;
-	
-	oSel.removeAllRanges() ;
-	oSel = FCK.EditorWindow.getSelection() ;
-	oSel.addRange( oRange ) ;
-		
-	this.Focus() ;
-}
-
-FCK.InsertElement = function( element )
-{
-	// Deletes the actual selection.
-	var oSel = FCKSelection.Delete() ;
-	
-	// Gets the first available range.
-	var oRange = oSel.getRangeAt(0) ;
-	
-	// Inserts the element in the range.
-	oRange.insertNode( element ) ;
-	
-	// Set the cursor after the inserted fragment.
-	oRange.setEndAfter( element ) ;
-	oRange.setStartAfter( element ) ;
-
-	this.Focus() ;
-}
-
-FCK.PasteAsPlainText = function()
-{
-	// TODO: Implement the "Paste as Plain Text" code.
-	
-	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteAsText, 'dialog/fck_paste.html', 400, 330, 'PlainText' ) ;
-	
-/*
-	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
-	sText = sText.replace( /\n/g, '<BR>' ) ;
-	this.InsertHtml( sText ) ;	
-*/
-}
-/*
-FCK.PasteFromWord = function()
-{
-	// TODO: Implement the "Paste as Plain Text" code.
-	
-	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
-
-//	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
-}
-*/
-FCK.GetClipboardHTML = function()
-{
-	return '' ;
-}
-
-FCK.CreateLink = function( url )
-{	
-	FCK.ExecuteNamedCommand( 'Unlink' ) ;
-	
-	if ( url.length > 0 )
-	{
-		// Generate a temporary name for the link.
-		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
-		
-		// Use the internal "CreateLink" command to create the link.
-		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
-
-		// Retrieve the just created link using XPath.
-		var oLink = document.evaluate("//a[@href='" + sTempUrl + "']", this.EditorDocument.body, null, 9, null).singleNodeValue ;
-		
-		if ( oLink )
-		{
-			oLink.href = url ;
-			return oLink ;
-		}
-	}
-}
-
-// START iCM Modifications
-/*
-// Ensure that behaviour of the ENTER key or the list toolbar button works correctly for a list item.
-// ENTER in empty list item at top of list should result in the empty list item being
-// removed and selection being moved out of the list into a P tag above it.
-// ENTER in empty list item at bottom of list should result in the empty list item being
-// removed and selection being moved out of the list into a P tag below it.
-// ENTER in empty list item in middle of the list should result in the list being split
-// into two and the selection being moved into a P tag between the two resulting lists.
-// Clicking the list toolbar button in a list item at top of list should result in the list item's contents being
-// moved out of the list into a P tag above it.
-// Clicking the list toolbar button in a list item at the bottom of list should result in the list item's contents being
-// moved out of the list into a P tag below it.
-// Clicking the list toolbar button in a list item in the middle of the list should result in the list being split
-// into two and the list item's contents being moved into a P tag between the two resulting lists.
-FCK.ToggleListItem = function( oLINode, oSelNode )
-{
-	var oListNode = FCKTools.GetElementAscensor( oLINode, "UL,OL" ) ;
-	var oRange = FCK.EditorDocument.createRange() ;	
-
-	// Create a new block element
-	var oBlockNode = FCK.EditorDocument.createElement( "P" ) ;
-	oBlockNode.innerHTML = oLINode.innerHTML ; // Transfer any list item contents
-	if ( FCKTools.NodeIsEmpty( oBlockNode ) )
-		oBlockNode.innerHTML = GECKO_BOGUS ; 			// Ensure it has some content, required for Gecko
-	if ( oLINode.className && oLINode.className != '' )
-		oBlockNode.className = oLINode.className ; 	// Transfer across any class attribute
-	
-	var oCursorNode = oBlockNode ;
-
-	// Then, perform list processing and locate the point at which the new P tag is to be inserted
-	if ( oListNode.childNodes[0] == oLINode )
-	{
-		// First LI was empty so want to leave list and insert P above it
-		oListNode.removeChild( oLINode );
-		// Need to insert a new P tag (or other suitable block element) just before the list
-		oRange.setStartBefore( oListNode ) ;
-		oRange.setEndBefore( oListNode ) ;
-	}
-	else if ( oListNode.childNodes[oListNode.childNodes.length-1] == oLINode )
-	{
-		// Last LI was empty so want to leave list and insert new block element in the parent
-		oListNode.removeChild( oLINode );
-		// Need to insert a new P tag (or other suitable block element) just after the list
-		oRange.setEndAfter( oListNode ) ;
-		oRange.setStartAfter( oListNode ) ;
-	}
-	else
-	{
-		// A middle LI was empty so want to break list into two and insert the new block/text node in between them
-		oListNode = FCKTools.SplitNode( oListNode, oSelNode, 0 ) ;				
-		oListNode.removeChild( oListNode.childNodes[0] ) ;
-		oRange.setStartBefore( oListNode ) ;
-		oRange.setEndBefore( oListNode ) ;
-	}
-
-	// Insert new block/text node
-	oRange.insertNode( oBlockNode ) ;
-	
-	// Ensure that we don't leave empty UL/OL tags behind
-	if ( oListNode.childNodes.length == 0 ) 
-		oListNode.parentNode.removeChild( oListNode ) ;
-	
-	// Reset cursor position to start of the new P tag's contents ready for typing
-	FCK.Selection.SetCursorPosition( oCursorNode ) ;
-}
-
-FCK.ListItemEnter = function( oLINode, oSelNode, nSelOffset )
-{
-	// Ensure that behaviour of ENTER key within an empty list element works correctly.
-	// ENTER in empty list item at top of list should result in the empty list item being
-	// removed and selection being moved out of the list into a P tag above it.
-	// ENTER in empty list item at bottom of list should result in the empty list item being
-	// removed and selection being moved out of the list into a P tag below it.
-	// ENTER in empty list item in middle of the list should result in the list being split
-	// into two and the selection being moved into a P tag between the two resulting lists.
-	if ( FCKTools.NodeIsEmpty( oLINode ) )
-	{
-		FCK.ToggleListItem( oLINode, oSelNode ) ;
-		return false ; // Job done, perform no default handling
-	}
-	
-	return true ; // If non-empty list item, let default handler do its stuff
-}
-
-FCK.ListItemBackSpace = function( oSelNode, nSelOffset )
-{
-	// Ensure that behaviour of BACKSPACE key within an empty list element works correctly.
-	// BACKSPACE in empty list item at top of list should result in the empty list item being
-	// removed and selection being moved out of the list into a P tag above it.
-	// Allow the default handler to do its stuff for backspace in other list elements.
-	var oListNode = oSelNode.parentNode ;
-	
-	if ( FCKTools.NodeIsEmpty( oSelNode ) && ( oListNode.childNodes[0] == oSelNode ) )
-	{
-		var oRange = FCK.EditorDocument.createRange() ;	
-	
-		// Create a new P element
-		var oBlockNode = FCK.EditorDocument.createElement( "P" ) ;
-		if ( FCKTools.NodeIsEmpty( oBlockNode ) ) 
-			oBlockNode.innerHTML = GECKO_BOGUS ; 			// Ensure it has some content, required for Gecko
-	
-		// First LI was empty so want to leave list and insert P above it
-		oListNode.removeChild( oSelNode );
-		oRange.setStartBefore( oListNode ) ;
-		oRange.setEndBefore( oListNode ) ;
-
-		// Insert new P tag
-		oRange.insertNode( oBlockNode ) ;
-		
-		// Ensure that we don't leave empty UL/OL tags behind
-		if ( oListNode.childNodes.length == 0 ) 
-			oListNode.parentNode.removeChild( oListNode ) ;
-		
-		// Reset cursor position to start of the new P tag's contents ready for typing
-		FCK.Selection.SetCursorPosition( oBlockNode ) ;
-		
-		return false ; // Job done, perform no default handling
-	}
-	
-	return true ; // Let default handler do its stuff if not backspacing in an empty first LI
-}
-
-FCK.Enter = function()
-{
-	// Remove any selected content before we begin so we end up with a single selection point
-	FCK.Selection.Delete() ;
-	
-	// Determine the current cursor (selection) point, the node it's within and the offset
-	// position of the cursor within that node
-	var oSel = FCK.EditorWindow.getSelection() ;
-	var nSelOffset = oSel.focusOffset;
-	var oSelNode = oSel.focusNode ;
-
-	// Guard against a null focus node.
-	if ( !oSelNode )
-		return false ;
-	
-	var oLINode = FCKTools.GetElementAscensor( oSelNode, "LI" ) ;
-	
-	if ( oLINode ) // An LI element is selected
-	{
-		// Handle list items separately as need to handle termination of the list, etc
-		return FCK.ListItemEnter( oLINode, oSelNode, nSelOffset ) ;
-	}
-	else if ( oSelNode.nodeType == 3 ) // A TEXT node is selected
-	{
-		// Split it at the selection point and ensure both halves have a suitable enclosing block element
-		var oParentBlockNode = FCKTools.GetParentBlockNode( oSelNode ) ;
-		var oBlockNode2 = FCKTools.SplitNode( oParentBlockNode ? oParentBlockNode : FCK.EditorDocument.body, oSelNode, nSelOffset ) ;
-			
-		FCK.Selection.SetCursorPosition( oBlockNode2 );		
-		
-		return false ;
-	} 
-	else // An ELEMENT node is selected
-	{
-		// Cater for ENTER being pressed after very last element in the editor e.g. pressing ENTER after table element at very end of the editor's content
-		if ( nSelOffset >= oSelNode.childNodes.length )	
-		{
-			var oBlockNode = FCK.EditorDocument.createElement( "P" ) ;
-			if ( FCKTools.NodeIsEmpty( oBlockNode ) )
-				oBlockNode.innerHTML = GECKO_BOGUS ;		// Ensure it has some content, required for Gecko			
-			oSelNode.appendChild( oBlockNode ) ;
-			FCK.Selection.SetCursorPosition( oBlockNode ) ;
-			return false ;
-		}
-		
-		var oBlockNode2 = FCKTools.SplitNode( oSelNode, oSelNode.childNodes[nSelOffset] ) ;
-			
-		FCK.Selection.SetCursorPosition( oBlockNode2 );		
-		
-		return false ;
-	}
-	
-	return true ;
-}
-
-FCK.BackSpace = function()
-{
-	var oSel = FCK.EditorWindow.getSelection() ;
-	var oSelNode = oSel.focusNode ;
-	var nSelOffset = oSel.focusOffset;
-	var oParentNode = null ;
-
-	// Guard against a null focus node.
-	if ( !oSelNode )
-		return false ;
-	
-	if ( oSelNode.nodeName.toUpperCase() == "LI" ) // An LI element is selected
-	{
-		// Handle list items separately as need to handle termination of the list, etc
-		return FCK.ListItemBackSpace( oSelNode, nSelOffset ) ;
-	}
-	else	
-	{
-		// If we are anything other than a TEXT node, move to the child indicated by the selection offset
-		if ( oSelNode.nodeType != 3 )
-		{
-			oSelNode = oSelNode.childNodes[nSelOffset] ;
-			nSelOffset = 0 ;
-		}
-		
-		// If we are the first child and the previous sibling of the parent is an empty block element (containing nothing or just the filler element)
-		// want the backspace to completely remove the empty block element
-		if ( !oSelNode.previousSibling && nSelOffset <= 0 )
-		{
-			oParentNode = oSelNode.parentNode ;
-			
-			if ( oParentNode && oParentNode.previousSibling && FCKRegexLib.BlockElements.test( oParentNode.previousSibling.nodeName ) )
-			{
-				if ( FCKTools.NodeIsEmpty( oParentNode.previousSibling ) )
-				{
-					var oRange = FCK.EditorDocument.createRange() ;
-					oRange.selectNode ( oParentNode.previousSibling );
-					oRange.deleteContents() ;
-					
-					// Don't do any default processing
-					return false ; 
-				}
-			}
-		}
-	}	
-	return true ; // Let default processing do its stuff
-}
-*/
-// END iCM Modifications
-

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_2_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,157 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_2_ie.js
- * 	This is the second part of the "FCK" object creation. This is the main
- * 	object that represents an editor instance.
- * 	(IE specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-/*
-if ( FCKConfig.UseBROnCarriageReturn ) 
-{
-	// Named commands to be handled by this browsers specific implementation.
-	FCK.RedirectNamedCommands = 
-	{
-		InsertOrderedList	: true,
-		InsertUnorderedList	: true
-	}
-
-	FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
-	{
-		if ( commandName == 'InsertOrderedList' || commandName == 'InsertUnorderedList' )
-		{
-			if ( !(FCK.EditorDocument.queryCommandState( 'InsertOrderedList' ) || FCK.EditorDocument.queryCommandState( 'InsertUnorderedList' )) )
-			{
-			}				
-		}
-
-		FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
-	}
-}
-*/
-
-FCK.Paste = function()
-{
-	if ( FCKConfig.ForcePasteAsPlainText )
-	{
-		FCK.PasteAsPlainText() ;	
-		return false ;
-	}
-	else if ( FCKConfig.AutoDetectPasteFromWord )
-	{
-		var sHTML = FCK.GetClipboardHTML() ;
-		var re = /<\w[^>]* class="?MsoNormal"?/gi ;
-		if ( re.test( sHTML ) )
-		{
-			if ( confirm( FCKLang["PasteWordConfirm"] ) )
-			{
-				FCK.PasteFromWord() ;
-				return false ;
-			}
-		}
-	}
-	else
-		return true ;
-}
-
-FCK.PasteAsPlainText = function()
-{
-	// Get the data available in the clipboard and encodes it in HTML.
-	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
-
-	// Replace the carriage returns with <BR>
-	sText = sText.replace( /\n/g, '<BR>' ) ;
-	
-	// Insert the resulting data in the editor.
-	this.InsertHtml( sText ) ;	
-}
-/*
-FCK.PasteFromWord = function()
-{
-	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
-}
-*/
-FCK.InsertElement = function( element )
-{
-	FCK.InsertHtml( element.outerHTML ) ;
-}
-
-FCK.GetClipboardHTML = function()
-{
-	var oDiv = document.getElementById( '___FCKHiddenDiv' ) ;
-	
-	if ( !oDiv )
-	{
-		var oDiv = document.createElement( 'DIV' ) ;
-		oDiv.id = '___FCKHiddenDiv' ;
-		oDiv.style.visibility	= 'hidden' ;
-		oDiv.style.overflow		= 'hidden' ;
-		oDiv.style.position		= 'absolute' ;
-		oDiv.style.width		= 1 ;
-		oDiv.style.height		= 1 ;
-	
-		document.body.appendChild( oDiv ) ;
-	}
-	
-	oDiv.innerHTML = '' ;
-	
-	var oTextRange = document.body.createTextRange() ;
-	oTextRange.moveToElementText( oDiv ) ;
-	oTextRange.execCommand( 'Paste' ) ;
-	
-	var sData = oDiv.innerHTML ;
-	oDiv.innerHTML = '' ;
-	
-	return sData ;
-}
-
-FCK.AttachToOnSelectionChange = function( functionPointer )
-{
-	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
-}
-
-/*
-FCK.AttachToOnSelectionChange = function( functionPointer )
-{
-	FCK.EditorDocument.attachEvent( 'onselectionchange', functionPointer ) ;
-}
-*/
-
-FCK.CreateLink = function( url )
-{	
-	FCK.ExecuteNamedCommand( 'Unlink' ) ;
-
-	if ( url.length > 0 )
-	{
-		// Generate a temporary name for the link.
-		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
-		
-		// Use the internal "CreateLink" command to create the link.
-		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
-
-		// Loof for the just create link.
-		var oLinks = this.EditorDocument.links ;
-
-		for ( i = 0 ; i < oLinks.length ; i++ )
-		{
-			if ( oLinks[i].href == sTempUrl )
-			{
-				oLinks[i].href = url ;
-				return oLinks[i] ;
-			}
-		}
-	}
-}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_contextmenu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_contextmenu.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_contextmenu.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,307 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCK.ContextMenu object that is responsible for all
+ * Context Menu operations in the editing area.
+ */
+
+FCK.ContextMenu = new Object() ;
+FCK.ContextMenu.Listeners = new Array() ;
+
+FCK.ContextMenu.RegisterListener = function( listener )
+{
+	if ( listener )
+		this.Listeners.push( listener ) ;
+}
+
+function FCK_ContextMenu_Init()
+{
+	var oInnerContextMenu = FCK.ContextMenu._InnerContextMenu = new FCKContextMenu( FCKBrowserInfo.IsIE ? window : window.parent, FCKLang.Dir ) ;
+	oInnerContextMenu.OnBeforeOpen	= FCK_ContextMenu_OnBeforeOpen ;
+	oInnerContextMenu.OnItemClick	= FCK_ContextMenu_OnItemClick ;
+
+	// Get the registering function.
+	var oMenu = FCK.ContextMenu ;
+
+	// Register all configured context menu listeners.
+	for ( var i = 0 ; i < FCKConfig.ContextMenu.length ; i++ )
+		oMenu.RegisterListener( FCK_ContextMenu_GetListener( FCKConfig.ContextMenu[i] ) ) ;
+}
+
+function FCK_ContextMenu_GetListener( listenerName )
+{
+	switch ( listenerName )
+	{
+		case 'Generic' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				menu.AddItem( 'Cut'		, FCKLang.Cut	, 7, FCKCommands.GetCommand( 'Cut' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+				menu.AddItem( 'Copy'	, FCKLang.Copy	, 8, FCKCommands.GetCommand( 'Copy' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+				menu.AddItem( 'Paste'	, FCKLang.Paste	, 9, FCKCommands.GetCommand( 'Paste' ).GetState() == FCK_TRISTATE_DISABLED ) ;
+			}} ;
+
+		case 'Table' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				var bIsTable	= ( tagName == 'TABLE' ) ;
+				var bIsCell		= ( !bIsTable && FCKSelection.HasAncestorNode( 'TABLE' ) ) ;
+
+				if ( bIsCell )
+				{
+					menu.AddSeparator() ;
+					var oItem = menu.AddItem( 'Cell'	, FCKLang.CellCM ) ;
+					oItem.AddItem( 'TableInsertCell'	, FCKLang.InsertCell, 58 ) ;
+					oItem.AddItem( 'TableDeleteCells'	, FCKLang.DeleteCells, 59 ) ;
+					oItem.AddItem( 'TableMergeCells'	, FCKLang.MergeCells, 60 ) ;
+					oItem.AddItem( 'TableSplitCell'		, FCKLang.SplitCell, 61 ) ;
+					oItem.AddSeparator() ;
+					oItem.AddItem( 'TableCellProp'		, FCKLang.CellProperties, 57 ) ;
+
+					menu.AddSeparator() ;
+					oItem = menu.AddItem( 'Row'			, FCKLang.RowCM ) ;
+					oItem.AddItem( 'TableInsertRow'		, FCKLang.InsertRow, 62 ) ;
+					oItem.AddItem( 'TableDeleteRows'	, FCKLang.DeleteRows, 63 ) ;
+
+					menu.AddSeparator() ;
+					oItem = menu.AddItem( 'Column'		, FCKLang.ColumnCM ) ;
+					oItem.AddItem( 'TableInsertColumn'	, FCKLang.InsertColumn, 64 ) ;
+					oItem.AddItem( 'TableDeleteColumns'	, FCKLang.DeleteColumns, 65 ) ;
+				}
+
+				if ( bIsTable || bIsCell )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'TableDelete'			, FCKLang.TableDelete ) ;
+					menu.AddItem( 'TableProp'			, FCKLang.TableProperties, 39 ) ;
+				}
+			}} ;
+
+		case 'Link' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				var bInsideLink = ( tagName == 'A' || FCKSelection.HasAncestorNode( 'A' ) ) ;
+
+				if ( bInsideLink || FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED )
+				{
+					// Go up to the anchor to test its properties
+					var oLink = FCKSelection.MoveToAncestorNode( 'A' ) ;
+					var bIsAnchor = ( oLink && oLink.name.length > 0 && oLink.href.length == 0 ) ;
+					// If it isn't a link then don't add the Link context menu
+					if ( bIsAnchor )
+						return ;
+
+					menu.AddSeparator() ;
+					if ( bInsideLink )
+						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 )
+			{
+				// Go up to the anchor to test its properties
+				var oLink = FCKSelection.MoveToAncestorNode( 'A' ) ;
+				var bIsAnchor = ( oLink && oLink.name.length > 0 ) ;
+
+				if ( bIsAnchor || ( tagName == 'IMG' && tag.getAttribute( '_fckanchor' ) ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Anchor', FCKLang.AnchorProp, 36 ) ;
+				}
+			}} ;
+
+		case 'Flash' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'IMG' && tag.getAttribute( '_fckflash' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Flash', FCKLang.FlashProperties, 38 ) ;
+				}
+			}} ;
+
+		case 'Form' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('FORM') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Form', FCKLang.FormProp, 48 ) ;
+				}
+			}} ;
+
+		case 'Checkbox' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'checkbox' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Checkbox', FCKLang.CheckboxProp, 49 ) ;
+				}
+			}} ;
+
+		case 'Radio' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'radio' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Radio', FCKLang.RadioButtonProp, 50 ) ;
+				}
+			}} ;
+
+		case 'TextField' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && ( tag.type == 'text' || tag.type == 'password' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'TextField', FCKLang.TextFieldProp, 51 ) ;
+				}
+			}} ;
+
+		case 'HiddenField' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'IMG' && tag.getAttribute( '_fckinputhidden' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'HiddenField', FCKLang.HiddenFieldProp, 56 ) ;
+				}
+			}} ;
+
+		case 'ImageButton' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && tag.type == 'image' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'ImageButton', FCKLang.ImageButtonProp, 55 ) ;
+				}
+			}} ;
+
+		case 'Button' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'INPUT' && ( tag.type == 'button' || tag.type == 'submit' || tag.type == 'reset' ) )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Button', FCKLang.ButtonProp, 54 ) ;
+				}
+			}} ;
+
+		case 'Select' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'SELECT' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Select', FCKLang.SelectionFieldProp, 53 ) ;
+				}
+			}} ;
+
+		case 'Textarea' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( tagName == 'TEXTAREA' )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'Textarea', FCKLang.TextareaProp, 52 ) ;
+				}
+			}} ;
+
+		case 'BulletedList' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('UL') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'BulletedList', FCKLang.BulletedListProp, 27 ) ;
+				}
+			}} ;
+
+		case 'NumberedList' :
+			return {
+			AddItems : function( menu, tag, tagName )
+			{
+				if ( FCKSelection.HasAncestorNode('OL') )
+				{
+					menu.AddSeparator() ;
+					menu.AddItem( 'NumberedList', FCKLang.NumberedListProp, 26 ) ;
+				}
+			}} ;
+	}
+	return null ;
+}
+
+function FCK_ContextMenu_OnBeforeOpen()
+{
+	// Update the UI.
+	FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+
+	// Get the actual selected tag (if any).
+	var oTag, sTagName ;
+
+	// The extra () is to avoid a warning with strict error checking. This is ok.
+	if ( (oTag = FCKSelection.GetSelectedElement()) )
+		sTagName = oTag.tagName ;
+
+	// Cleanup the current menu items.
+	var oMenu = FCK.ContextMenu._InnerContextMenu ;
+	oMenu.RemoveAllItems() ;
+
+	// Loop through the listeners.
+	var aListeners = FCK.ContextMenu.Listeners ;
+	for ( var i = 0 ; i < aListeners.length ; i++ )
+		aListeners[i].AddItems( oMenu, oTag, sTagName ) ;
+}
+
+function FCK_ContextMenu_OnItemClick( item )
+{
+	FCK.Focus() ;
+	FCKCommands.GetCommand( item.Name ).Execute() ;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_gecko.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,254 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Creation and initialization of the "FCK" object. This is the main
+ * object that represents an editor instance.
+ * (Gecko specific implementations)
+ */
+
+FCK.Description = "FCKeditor for Gecko Browsers" ;
+
+FCK.InitializeBehaviors = function()
+{
+	// When calling "SetHTML", the editing area IFRAME gets a fixed height. So we must recaulculate it.
+	if ( FCKBrowserInfo.IsGecko )		// Not for Safari/Opera.
+		Window_OnResize() ;
+
+	FCKFocusManager.AddWindow( this.EditorWindow ) ;
+
+	this.ExecOnSelectionChange = function()
+	{
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+
+	this.ExecOnSelectionChangeTimer = function()
+	{
+		if ( FCK.LastOnChangeTimer )
+			window.clearTimeout( FCK.LastOnChangeTimer ) ;
+
+		FCK.LastOnChangeTimer = window.setTimeout( FCK.ExecOnSelectionChange, 100 ) ;
+	}
+
+	this.EditorDocument.addEventListener( 'mouseup', this.ExecOnSelectionChange, false ) ;
+
+	// On Gecko, firing the "OnSelectionChange" event on every key press started to be too much
+	// slow. So, a timer has been implemented to solve performance issues when tipying to quickly.
+	this.EditorDocument.addEventListener( 'keyup', this.ExecOnSelectionChangeTimer, false ) ;
+
+	this._DblClickListener = function( e )
+	{
+		FCK.OnDoubleClick( e.target ) ;
+		e.stopPropagation() ;
+	}
+	this.EditorDocument.addEventListener( 'dblclick', this._DblClickListener, true ) ;
+
+	// Reset the context menu.
+	FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow( FCK.EditorWindow ) ;
+	FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument ) ;
+}
+
+FCK.MakeEditable = function()
+{
+	this.EditingArea.MakeEditable() ;
+}
+
+// Disable the context menu in the editor (outside the editing area).
+function Document_OnContextMenu( e )
+{
+	if ( !e.target._FCKShowContextMenu )
+		e.preventDefault() ;
+}
+document.oncontextmenu = Document_OnContextMenu ;
+
+// GetNamedCommandState overload for Gecko.
+FCK._BaseGetNamedCommandState = FCK.GetNamedCommandState ;
+FCK.GetNamedCommandState = function( commandName )
+{
+	switch ( commandName )
+	{
+		case 'Unlink' :
+			return FCKSelection.HasAncestorNode('A') ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
+		default :
+			return FCK._BaseGetNamedCommandState( commandName ) ;
+	}
+}
+
+// Named commands to be handled by this browsers specific implementation.
+FCK.RedirectNamedCommands =
+{
+	Print	: true,
+	Paste	: true,
+	Cut		: true,
+	Copy	: true
+} ;
+
+// ExecuteNamedCommand overload for Gecko.
+FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
+{
+	switch ( commandName )
+	{
+		case 'Print' :
+			FCK.EditorWindow.print() ;
+			break ;
+		case 'Paste' :
+			try			{ if ( FCK.Paste() ) FCK.ExecuteNamedCommand( 'Paste', null, true ) ; }
+			catch (e)	{ FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ; }
+			break ;
+		case 'Cut' :
+			try			{ FCK.ExecuteNamedCommand( 'Cut', null, true ) ; }
+			catch (e)	{ alert(FCKLang.PasteErrorCut) ; }
+			break ;
+		case 'Copy' :
+			try			{ FCK.ExecuteNamedCommand( 'Copy', null, true ) ; }
+			catch (e)	{ alert(FCKLang.PasteErrorCopy) ; }
+			break ;
+		default :
+			FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
+	}
+}
+
+FCK.AttachToOnSelectionChange = function( functionPointer )
+{
+	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
+}
+
+FCK.Paste = function()
+{
+	if ( FCKConfig.ForcePasteAsPlainText )
+	{
+		FCK.PasteAsPlainText() ;
+		return false ;
+	}
+
+	/* For now, the AutoDetectPasteFromWord feature is IE only. */
+
+	return true ;
+}
+
+//**
+// FCK.InsertHtml: Inserts HTML at the current cursor location. Deletes the
+// selected content if any.
+FCK.InsertHtml = function( html )
+{
+	html = FCKConfig.ProtectedSource.Protect( html ) ;
+	html = FCK.ProtectEvents( html ) ;
+	html = FCK.ProtectUrls( html ) ;
+	html = FCK.ProtectTags( html ) ;
+
+	// Firefox can't handle correctly the editing of the STRONG and EM tags.
+	// We must replace them with B and I.
+		html = html.replace( FCKRegexLib.StrongOpener, '<b$1' ) ;
+		html = html.replace( FCKRegexLib.StrongCloser, '<\/b>' ) ;
+		html = html.replace( FCKRegexLib.EmOpener, '<i$1' ) ;
+		html = html.replace( FCKRegexLib.EmCloser, '<\/i>' ) ;
+
+	// Delete the actual selection.
+	var oSel = FCKSelection.Delete() ;
+
+	// Get the first available range.
+	var oRange = oSel.getRangeAt(0) ;
+
+	// Create a fragment with the input HTML.
+	var oFragment = oRange.createContextualFragment( html ) ;
+
+	// Get the last available node.
+	var oLastNode = oFragment.lastChild ;
+
+	// Insert the fragment in the range.
+	oRange.insertNode(oFragment) ;
+
+	// Set the cursor after the inserted fragment.
+	FCKSelection.SelectNode( oLastNode ) ;
+	FCKSelection.Collapse( false ) ;
+
+	this.Focus() ;
+}
+
+FCK.InsertElement = function( element )
+{
+	// Deletes the actual selection.
+	var oSel = FCKSelection.Delete() ;
+
+	// Gets the first available range.
+	var oRange = oSel.getRangeAt(0) ;
+
+	// Inserts the element in the range.
+	oRange.insertNode( element ) ;
+
+	// Set the cursor after the inserted fragment.
+	FCKSelection.SelectNode( element ) ;
+	FCKSelection.Collapse( false ) ;
+
+	this.Focus() ;
+}
+
+FCK.PasteAsPlainText = function()
+{
+	// TODO: Implement the "Paste as Plain Text" code.
+
+	// If the function is called inmediately Firefox 2 does automatically paste the contents as soon as the new dialog is created
+	// so we run it in a Timeout and the paste event can be cancelled
+	FCKTools.RunFunction( FCKDialog.OpenDialog, FCKDialog, ['FCKDialog_Paste', FCKLang.PasteAsText, 'dialog/fck_paste.html', 400, 330, 'PlainText'] ) ;
+
+/*
+	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
+	sText = sText.replace( /\n/g, '<BR>' ) ;
+	this.InsertHtml( sText ) ;
+*/
+}
+/*
+FCK.PasteFromWord = function()
+{
+	// TODO: Implement the "Paste as Plain Text" code.
+
+	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
+
+//	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
+}
+*/
+FCK.GetClipboardHTML = function()
+{
+	return '' ;
+}
+
+FCK.CreateLink = function( url )
+{
+	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+
+	if ( url.length > 0 )
+	{
+		// Generate a temporary name for the link.
+		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
+
+		// Use the internal "CreateLink" command to create the link.
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+
+		// Retrieve the just created link using XPath.
+		var oLink = this.EditorDocument.evaluate("//a[@href='" + sTempUrl + "']", this.EditorDocument.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue ;
+
+		if ( oLink )
+		{
+			oLink.href = url ;
+			return oLink ;
+		}
+	}
+
+	return null ;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_ie.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,383 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Creation and initialization of the "FCK" object. This is the main
+ * object that represents an editor instance.
+ * (IE specific implementations)
+ */
+
+FCK.Description = "FCKeditor for Internet Explorer 5.5+" ;
+
+FCK._GetBehaviorsStyle = function()
+{
+	if ( !FCK._BehaviorsStyle )
+	{
+		var sBasePath = FCKConfig.FullBasePath ;
+		var sTableBehavior = '' ;
+		var sStyle ;
+
+		// The behaviors should be pointed using the FullBasePath to avoid security
+		// errors when using a differente BaseHref.
+		sStyle = '<style type="text/css" _fcktemp="true">' ;
+
+		if ( FCKConfig.ShowBorders )
+			sTableBehavior = 'url(' + sBasePath + 'css/behaviors/showtableborders.htc)' ;
+
+		// Disable resize handlers.
+		sStyle += 'INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden' ;
+
+		if ( FCKConfig.DisableObjectResizing )
+		{
+			sStyle += ',IMG' ;
+			sTableBehavior += ' url(' + sBasePath + 'css/behaviors/disablehandles.htc)' ;
+		}
+
+		sStyle += ' { behavior: url(' + sBasePath + 'css/behaviors/disablehandles.htc) ; }' ;
+
+		if ( sTableBehavior.length > 0 )
+			sStyle += 'TABLE { behavior: ' + sTableBehavior + ' ; }' ;
+
+		sStyle += '</style>' ;
+		FCK._BehaviorsStyle = sStyle ;
+	}
+
+	return FCK._BehaviorsStyle ;
+}
+
+function Doc_OnMouseUp()
+{
+	if ( FCK.EditorWindow.event.srcElement.tagName == 'HTML' )
+	{
+		FCK.Focus() ;
+		FCK.EditorWindow.event.cancelBubble	= true ;
+		FCK.EditorWindow.event.returnValue	= false ;
+	}
+}
+
+function Doc_OnPaste()
+{
+	return ( FCK.Status == FCK_STATUS_COMPLETE && FCK.Events.FireEvent( "OnPaste" ) ) ;
+}
+
+function Doc_OnKeyDown()
+{
+	if ( FCK.EditorWindow )
+	{
+		var e = FCK.EditorWindow.event ;
+
+		if ( !( e.keyCode >=16 && e.keyCode <= 18 ) )
+			Doc_OnKeyDownUndo() ;
+	}
+	return true ;
+}
+
+function Doc_OnKeyDownUndo()
+{
+	if ( !FCKUndo.Typing )
+	{
+		FCKUndo.SaveUndoStep() ;
+		FCKUndo.Typing = true ;
+		FCK.Events.FireEvent( "OnSelectionChange" ) ;
+	}
+
+	FCKUndo.TypesCount++ ;
+
+	if ( FCKUndo.TypesCount > FCKUndo.MaxTypes )
+	{
+		FCKUndo.TypesCount = 0 ;
+		FCKUndo.SaveUndoStep() ;
+	}
+}
+
+function Doc_OnDblClick()
+{
+	FCK.OnDoubleClick( FCK.EditorWindow.event.srcElement ) ;
+	FCK.EditorWindow.event.cancelBubble = true ;
+}
+
+function Doc_OnSelectionChange()
+{
+	FCK.Events.FireEvent( "OnSelectionChange" ) ;
+}
+
+FCK.InitializeBehaviors = function( dontReturn )
+{
+	// Set the focus to the editable area when clicking in the document area.
+	// TODO: The cursor must be positioned at the end.
+	this.EditorDocument.attachEvent( 'onmouseup', Doc_OnMouseUp ) ;
+
+	// Intercept pasting operations
+	this.EditorDocument.body.attachEvent( 'onpaste', Doc_OnPaste ) ;
+
+	// Reset the context menu.
+	FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument.body ) ;
+
+	// Build the "TAB" key replacement (if necessary).
+	if ( FCKConfig.TabSpaces > 0 )
+	{
+		window.FCKTabHTML = '' ;
+		for ( i = 0 ; i < FCKConfig.TabSpaces ; i++ )
+			window.FCKTabHTML += "&nbsp;" ;
+	}
+	this.EditorDocument.attachEvent("onkeydown", Doc_OnKeyDown ) ;
+
+	this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ;
+
+	// Catch cursor selection changes.
+	this.EditorDocument.attachEvent("onselectionchange", Doc_OnSelectionChange ) ;
+}
+
+FCK.InsertHtml = function( html )
+{
+	html = FCKConfig.ProtectedSource.Protect( html ) ;
+	html = FCK.ProtectEvents( html ) ;
+	html = FCK.ProtectUrls( html ) ;
+	html = FCK.ProtectTags( html ) ;
+
+//	FCK.Focus() ;
+	FCK.EditorWindow.focus() ;
+
+	FCKUndo.SaveUndoStep() ;
+
+	// Gets the actual selection.
+	var oSel = FCK.EditorDocument.selection ;
+
+	// Deletes the actual selection contents.
+	if ( oSel.type.toLowerCase() == 'control' )
+		oSel.clear() ;
+
+	// Insert the HTML.
+	oSel.createRange().pasteHTML( html ) ;
+
+	FCKDocumentProcessor.Process( FCK.EditorDocument ) ;
+}
+
+FCK.SetInnerHtml = function( html )		// IE Only
+{
+	var oDoc = FCK.EditorDocument ;
+	// Using the following trick, any comment in the begining of the HTML will
+	// be preserved.
+	oDoc.body.innerHTML = '<div id="__fakeFCKRemove__">&nbsp;</div>' + html ;
+	oDoc.getElementById('__fakeFCKRemove__').removeNode( true ) ;
+}
+
+function FCK_PreloadImages()
+{
+	var oPreloader = new FCKImagePreloader() ;
+
+	// Add the configured images.
+	oPreloader.AddImages( FCKConfig.PreloadImages ) ;
+
+	// Add the skin icons strip.
+	oPreloader.AddImages( FCKConfig.SkinPath + 'fck_strip.gif' ) ;
+
+	oPreloader.OnComplete = LoadToolbarSetup ;
+	oPreloader.Start() ;
+}
+
+// Disable the context menu in the editor (outside the editing area).
+function Document_OnContextMenu()
+{
+	return ( event.srcElement._FCKShowContextMenu == true ) ;
+}
+document.oncontextmenu = Document_OnContextMenu ;
+
+function FCK_Cleanup()
+{
+	this.EditorWindow = null ;
+	this.EditorDocument = null ;
+}
+
+FCK.Paste = function()
+{
+	// As we call ExecuteNamedCommand('Paste'), it would enter in a loop. So, let's use a semaphore.
+	if ( FCK._PasteIsRunning )
+		return true ;
+
+	if ( FCKConfig.ForcePasteAsPlainText )
+	{
+		FCK.PasteAsPlainText() ;
+		return false ;
+	}
+	
+	var sHTML = FCK._CheckIsPastingEnabled( true ) ;
+
+	if ( sHTML === false )
+		FCKTools.RunFunction( FCKDialog.OpenDialog, FCKDialog, ['FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security'] ) ;
+	else
+	{
+		if ( FCKConfig.AutoDetectPasteFromWord && sHTML.length > 0 )
+		{
+			var re = /<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi ;
+			if ( re.test( sHTML ) )
+			{
+				if ( confirm( FCKLang.PasteWordConfirm ) )
+				{
+					FCK.PasteFromWord() ;
+					return false ;
+				}
+			}
+		}
+
+		// Instead of inserting the retrieved HTML, let's leave the OS work for us,
+		// by calling FCK.ExecuteNamedCommand( 'Paste' ). It could give better results.
+
+		// Enable the semaphore to avoid a loop.
+		FCK._PasteIsRunning = true ;
+
+		FCK.ExecuteNamedCommand( 'Paste' ) ;
+
+		// Removes the semaphore.
+		delete FCK._PasteIsRunning ;
+	}
+
+	// Let's always make a custom implementation (return false), otherwise
+	// the new Keyboard Handler may conflict with this code, and the CTRL+V code
+	// could result in a simple "V" being pasted.
+	return false ;
+}
+
+FCK.PasteAsPlainText = function()
+{
+	if ( !FCK._CheckIsPastingEnabled() )
+	{
+		FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteAsText, 'dialog/fck_paste.html', 400, 330, 'PlainText' ) ;
+		return ;
+	}
+	
+	// Get the data available in the clipboard in text format.
+	var sText = clipboardData.getData("Text") ;
+
+	if ( sText && sText.length > 0 )
+	{
+		// Replace the carriage returns with <BR>
+		sText = FCKTools.HTMLEncode( sText ).replace( /\n/g, '<BR>' ) ;
+
+		// Insert the resulting data in the editor.
+		this.InsertHtml( sText ) ;
+	}
+}
+
+FCK._CheckIsPastingEnabled = function( returnContents )
+{
+	// The following seams to be the only reliable way to check is script
+	// pasting operations are enabled in the secutiry settings of IE6 and IE7.
+	// It adds a little bit of overhead to the check, but so far that's the
+	// only way, mainly because of IE7.
+	
+	FCK._PasteIsEnabled = false ;
+	
+	document.body.attachEvent( 'onpaste', FCK_CheckPasting_Listener ) ;
+	
+	// The execCommand in GetClipboardHTML will fire the "onpaste", only if the
+	// security settings are enabled.
+	var oReturn = FCK.GetClipboardHTML() ;
+
+	document.body.detachEvent( 'onpaste', FCK_CheckPasting_Listener ) ;
+	
+	if ( FCK._PasteIsEnabled )
+	{
+		if ( !returnContents )
+			oReturn = true ;
+	}
+	else
+		oReturn = false ;
+
+	delete FCK._PasteIsEnabled ;
+
+	return oReturn ;
+}
+
+function FCK_CheckPasting_Listener()
+{
+	FCK._PasteIsEnabled = true ;
+}
+
+FCK.InsertElement = function( element )
+{
+	FCK.InsertHtml( element.outerHTML ) ;
+}
+
+FCK.GetClipboardHTML = function()
+{
+	var oDiv = document.getElementById( '___FCKHiddenDiv' ) ;
+
+	if ( !oDiv )
+	{
+		oDiv = document.createElement( 'DIV' ) ;
+		oDiv.id = '___FCKHiddenDiv' ;
+
+		var oDivStyle = oDiv.style ;
+		oDivStyle.position		= 'absolute' ;
+		oDivStyle.visibility	= oDivStyle.overflow	= 'hidden' ;
+		oDivStyle.width			= oDivStyle.height		= 1 ;
+
+		document.body.appendChild( oDiv ) ;
+	}
+
+	oDiv.innerHTML = '' ;
+
+	var oTextRange = document.body.createTextRange() ;
+	oTextRange.moveToElementText( oDiv ) ;
+	oTextRange.execCommand( 'Paste' ) ;
+
+	var sData = oDiv.innerHTML ;
+	oDiv.innerHTML = '' ;
+
+	return sData ;
+}
+
+FCK.AttachToOnSelectionChange = function( functionPointer )
+{
+	this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
+}
+
+FCK.CreateLink = function( url )
+{
+	// Remove any existing link in the selection.
+	FCK.ExecuteNamedCommand( 'Unlink' ) ;
+
+	if ( url.length > 0 )
+	{
+		// Generate a temporary name for the link.
+		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;
+
+		// Use the internal "CreateLink" command to create the link.
+		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;
+
+		// Look for the just create link.
+		var oLinks = this.EditorDocument.links ;
+
+		for ( i = 0 ; i < oLinks.length ; i++ )
+		{
+			var oLink = oLinks[i] ;
+
+			if ( oLink.href == sTempUrl )
+			{
+				var sInnerHtml = oLink.innerHTML ;	// Save the innerHTML (IE changes it if it is like an URL).
+				oLink.href = url ;
+				oLink.innerHTML = sInnerHtml ;		// Restore the innerHTML.
+				return oLink ;
+			}
+		}
+	}
+
+	return null ;
+}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_last.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_last.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_last.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,67 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_last.js
- * 	These are the last script lines executed in the editor loading process.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// This is the last file loaded to complete the editor initialization and activation
-
-// Just check if the document direction has been correctly applied (at fck_onload.js).
-if ( FCKLang && window.document.dir.toLowerCase() != FCKLang.Dir.toLowerCase() )
-	window.document.dir = FCKLang.Dir ;
-	
-// Activate pasting operations.
-if ( FCKConfig.ForcePasteAsPlainText )
-	FCK.Events.AttachEvent( "OnPaste", FCK.Paste ) ;
-
-// START iCM Modifications
-// Override default ENTER key handler for Gecko/Mozilla so 
-// it acts more like IE browsers.
-/*
-if ( FCKBrowserInfo.IsGecko && !FCKConfig.UseBROnCarriageReturn )
-{
-	FCK.Events.AttachEvent( "OnEnter", FCK.Enter ) ;
-	FCK.Events.AttachEvent( "OnBackSpace", FCK.BackSpace ) ;
-}
-*/
-// END iCM Modifications
-
-// Load Plugins.
-if ( FCKPlugins.ItemsCount > 0 )
-{
-	FCKScriptLoader.OnEmpty = CompleteLoading ;
-	FCKPlugins.Load() ;
-}
-else
-	CompleteLoading() ;
-
-function CompleteLoading()
-{
-	// Load the Toolbar
-	FCKToolbarSet.Name = FCKURLParams['Toolbar'] || 'Default' ;
-	FCKToolbarSet.Load( FCKToolbarSet.Name ) ;
-	FCKToolbarSet.Restart() ;
-
-	FCK.AttachToOnSelectionChange( FCKToolbarSet.RefreshItemsState ) ;
-	//FCK.AttachToOnSelectionChange( FCKSelection._Reset ) ;
-
-	FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
-
-	// Call the special "FCKeditor_OnComplete" function that should be present in 
-	// the HTML page where the editor is located.
-	if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
-		window.parent.FCKeditor_OnComplete( FCK ) ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_onload.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_onload.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fck_onload.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,228 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_onload.js
- * 	This is the script that is called when the editor page is loaded inside
- * 	its IFRAME. It's the editor startup.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// Disable the context menu in the editor (areas outside the editor area).
-function Window_OnContextMenu( e )
-{
-	if ( e )
-		e.preventDefault() ;	// The Gecko way.
-	else
-	{
-		if ( event.srcElement == document.getElementById('eSourceField') )
-			return true ;
-	}
-
-	return false ;				// The IE way.
-}
-window.document.oncontextmenu = Window_OnContextMenu ;
-
-// Gecko browsers doens't calculate well that IFRAME size so we must
-// recalculate it every time the window size changes.
-if ( FCKBrowserInfo.IsGecko )
-{
-	function Window_OnResize()
-	{
-		var oFrame = document.getElementById('eEditorArea') ;
-		oFrame.height = 0 ;
-
-		var oCell = document.getElementById( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? 'eWysiwygCell' : 'eSource' ) ;
-		var iHeight = oCell.offsetHeight ;
-
-		oFrame.height = iHeight - 2 ;
-	}
-	window.onresize = Window_OnResize ;
-}
-
-if ( FCKBrowserInfo.IsIE )
-{
-	var aCleanupDocs = new Array() ;
-	aCleanupDocs[0] = document ;
-
-	// On IE, some circular references must be cleared to avoid memory leak.
-	function Window_OnBeforeUnload()
-	{
-//		if ( typeof( FCKToolbarSet ) != 'undefined' )
-//			FCKToolbarSet.Collapse() ;
-
-		var d, e ;
-
-		var j = 0 ;
-		while ( ( d = aCleanupDocs[j++] ) )
-		{
-			var i = 0 ;
-			while ( ( e = d.getElementsByTagName("DIV").item(i++) ) )
-			{
-				if ( e.FCKToolbarButton )
-					e.FCKToolbarButton = null ;
-
-				if ( e.FCKSpecialCombo )
-					e.FCKSpecialCombo = null ;
-
-				if ( e.Command )
-					e.Command = null ;
-			}
-
-			i = 0 ;
-			while ( ( e = d.getElementsByTagName("TR").item(i++) ) )
-			{
-				if ( e.FCKContextMenuItem )
-					e.FCKContextMenuItem = null ;
-			}
-
-			aCleanupDocs[j] = null ;
-		}
-		
-		if ( typeof( FCKTempBin ) != 'undefined' )
-			FCKTempBin.Reset() ;
-	}
-	window.attachEvent( "onunload", Window_OnBeforeUnload ) ;
-}
-
-// The editor startup follows these steps:
-//		1. Load the editor main page (fckeditor.html).
-//		2. Load the main configuration file (fckconfig.js)
-//		3. Process the configurations set directly in the page code (just load then).
-//		4. Override the configurations with the custom config file (if set).
-//		5. Override the configurations with that ones set directly in the page code.
-//		6. Load the editor skin styles CSS files.
-//		7. Load the first part of tha main scripts.
-//		8. Load the language file.
-//		9. Start the editor.
-
-// Start the editor as soon as the window is loaded.
-function Window_OnLoad()
-{
-	// There is a bug on Netscape when rendering the frame. It goes over the
-	// right border. So we must correct it.
-	if ( FCKBrowserInfo.IsNetscape )
-		document.getElementById('eWysiwygCell').style.paddingRight = '2px' ;
-
-	LoadConfigFile() ;
-}
-window.onload = Window_OnLoad ;
-
-function LoadConfigFile()
-{
-	FCKScriptLoader.OnEmpty = ProcessHiddenField ;
-
-	// First of all load the configuration file.
-	FCKScriptLoader.AddScript( '../fckconfig.js' ) ;
-}
-
-function ProcessHiddenField()
-{
-	FCKConfig.ProcessHiddenField() ;
-
-	LoadCustomConfigFile() ;
-}
-
-function LoadCustomConfigFile()
-{
-	// Load the custom configurations file (if defined).
-	if ( FCKConfig.CustomConfigurationsPath.length > 0 )
-	{
-		// Wait for the configuration file to be loaded to call the "LoadPageConfig".
-		FCKScriptLoader.OnEmpty = LoadPageConfig ;
-
-		FCKScriptLoader.AddScript( FCKConfig.CustomConfigurationsPath ) ;
-	}
-	else
-	{
-		// Load the page defined configurations immediately.
-		LoadPageConfig() ;
-	}
-}
-
-function LoadPageConfig()
-{
-	FCKConfig.LoadPageConfig() ;
-
-	// Load the styles for the configured skin.
-	LoadStyles() ;
-}
-
-function LoadStyles()
-{
-	if( window.console ) window.console.log( 'LoadStyles()' ) ;	// @Packager.Compactor.RemoveLine
-
-	FCKScriptLoader.OnEmpty = LoadScripts ;
-
-	// Load the active skin CSS.
-	FCKScriptLoader.AddScript( FCKConfig.SkinPath + 'fck_editor.css' ) ;
-	FCKScriptLoader.AddScript( FCKConfig.SkinPath + 'fck_contextmenu.css' ) ;
-}
-
-function LoadScripts()
-{
-	if( window.console ) window.console.log( 'LoadScripts()' ) ;	// @Packager.Compactor.RemoveLine
-
-	FCKScriptLoader.OnEmpty = null ;
-
-	// @Packager.Compactor.Remove.Start
-	var sSuffix = FCKBrowserInfo.IsIE ? 'ie' : 'gecko' ;
-
-	FCKScriptLoader.AddScript( '_source/internals/fckdebug.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fcktools.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckregexlib.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fcklanguagemanager.js' ) ;
-	FCKScriptLoader.AddScript( '_source/classes/fckevents.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckxhtmlentities.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckxhtml.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckcodeformatter.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fck_1.js' ) ;
-	FCKScriptLoader.AddScript( '_source/internals/fck_1_' + sSuffix + '.js' ) ;
-	// @Packager.Compactor.Remove.End
-
-	/* @Packager.Compactor.RemoveLine
-	if ( FCKBrowserInfo.IsIE )
-		FCKScriptLoader.AddScript( 'js/fckeditorcode_ie_1.js' ) ;
-	else
-		FCKScriptLoader.AddScript( 'js/fckeditorcode_gecko_1.js' ) ;
-	@Packager.Compactor.RemoveLine */
-}
-
-function LoadLanguageFile()
-{
-	if( window.console ) window.console.log( 'LoadLanguageFile()' ) ;	// @Packager.Compactor.RemoveLine
-
-	FCKScriptLoader.OnEmpty = LoadEditor ;
-
-	if( window.console ) window.console.log( 'Active Language: ' + FCKLanguageManager.ActiveLanguage.Code ) ;	// @Packager.Compactor.RemoveLine
-
-	FCKScriptLoader.AddScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
-}
-
-function LoadEditor()
-{
-	if( window.console ) window.console.log( 'LoadEditor()' ) ;	// @Packager.Compactor.RemoveLine
-
-	// Removes the OnEmpty listener.
-	FCKScriptLoader.OnEmpty = null ;
-
-	// Correct the editor layout to the correct language direction.
-	if ( FCKLang )
-		window.document.dir = FCKLang.Dir ;
-
-	// Starts the editor.
-	FCK.StartEditor() ;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckbrowserinfo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckbrowserinfo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckbrowserinfo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,32 +1,48 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckbrowserinfo.js
- * 	Defines the FCKBrowserInfo object that hold some browser informations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Contains browser detection information.
  */
 
-var FCKBrowserInfo ;
+var s = navigator.userAgent.toLowerCase() ;
 
-if ( !( FCKBrowserInfo = NS.FCKBrowserInfo ) )
+var FCKBrowserInfo =
 {
-	FCKBrowserInfo = NS.FCKBrowserInfo = new Object() ;
+	IsIE		: s.Contains('msie'),
+	IsIE7		: s.Contains('msie 7'),
+	IsGecko		: s.Contains('gecko/'),
+	IsSafari	: s.Contains('safari'),
+	IsOpera		: s.Contains('opera'),
+	IsMac		: s.Contains('macintosh')
+} ;
 
-	var sAgent = navigator.userAgent.toLowerCase() ;
+// Completes the browser info with further Gecko information.
+(function( browserInfo )
+{
+	browserInfo.IsGeckoLike = ( browserInfo.IsGecko || browserInfo.IsSafari || browserInfo.IsOpera ) ;
 
-	FCKBrowserInfo.IsIE			= ( sAgent.indexOf("msie") != -1 ) ;
-	FCKBrowserInfo.IsGecko		= !FCKBrowserInfo.IsIE ;
-	FCKBrowserInfo.IsSafari		= ( sAgent.indexOf("safari") != -1 ) ;
-	FCKBrowserInfo.IsNetscape	= ( sAgent.indexOf("netscape") != -1 ) ;
-}
+	if ( browserInfo.IsGecko )
+	{
+		var geckoVersion = s.match( /gecko\/(\d+)/ )[1] ;
+		browserInfo.IsGecko10 = geckoVersion < 20051111 ;	// Actually "10" refers to Gecko versions before Firefox 1.5, where Gecko 20051111 has been released.
+	}
+	else
+		browserInfo.IsGecko10 = false ;
+})(FCKBrowserInfo) ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcodeformatter.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcodeformatter.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcodeformatter.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,75 +1,100 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcodeformatter.js
- * 	Format the HTML.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Format the HTML.
  */
 
-var FCKCodeFormatter ;
+var FCKCodeFormatter = new Object() ;
 
-if ( !( FCKCodeFormatter = NS.FCKCodeFormatter ) )
+FCKCodeFormatter.Init = function()
 {
-	FCKCodeFormatter = NS.FCKCodeFormatter = new Object() ;
+	var oRegex = this.Regex = new Object() ;
 
-	FCKCodeFormatter.Regex = new Object() ;
-
 	// Regex for line breaks.
-	FCKCodeFormatter.Regex.BlocksOpener = /\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi ;
-	FCKCodeFormatter.Regex.BlocksCloser = /\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi ;
+	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 ;
 
-	FCKCodeFormatter.Regex.NewLineTags	= /\<(BR|HR)[^\>]\>/gi ;
+	oRegex.NewLineTags	= /\<(BR|HR)[^\>]*\>/gi ;
 
-	FCKCodeFormatter.Regex.MainTags = /\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi ;
+	oRegex.MainTags = /\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi ;
 
-	FCKCodeFormatter.Regex.LineSplitter = /\s*\n+\s*/g ;
+	oRegex.LineSplitter = /\s*\n+\s*/g ;
 
 	// Regex for indentation.
-	FCKCodeFormatter.Regex.IncreaseIndent = /^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i ;
-	FCKCodeFormatter.Regex.DecreaseIndent = /^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i ;
-	FCKCodeFormatter.Regex.FormatIndentatorRemove = new RegExp( FCKConfig.FormatIndentator ) ;
+	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.FormatIndentatorRemove = new RegExp( '^' + FCKConfig.FormatIndentator ) ;
 
-	FCKCodeFormatter.Format = function( html )
+	oRegex.ProtectedTags = /(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi ;
+}
+
+FCKCodeFormatter._ProtectData = function( outer, opener, data, closer )
+{
+	return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ;
+}
+
+FCKCodeFormatter.Format = function( html )
+{
+	if ( !this.Regex )
+		this.Init() ;
+
+	// Protected content that remain untouched during the
+	// process go in the following array.
+	FCKCodeFormatter.ProtectedData = new Array() ;
+
+	var sFormatted = html.replace( this.Regex.ProtectedTags, FCKCodeFormatter._ProtectData ) ;
+
+	// Line breaks.
+	sFormatted		= sFormatted.replace( this.Regex.BlocksOpener, '\n$&' ) ;
+	sFormatted		= sFormatted.replace( this.Regex.BlocksCloser, '$&\n' ) ;
+	sFormatted		= sFormatted.replace( this.Regex.NewLineTags, '$&\n' ) ;
+	sFormatted		= sFormatted.replace( this.Regex.MainTags, '\n$&\n' ) ;
+
+	// Indentation.
+	var sIndentation = '' ;
+
+	var asLines = sFormatted.split( this.Regex.LineSplitter ) ;
+	sFormatted = '' ;
+
+	for ( var i = 0 ; i < asLines.length ; i++ )
 	{
-		// Line breaks.
-		var sFormatted	= html.replace( this.Regex.BlocksOpener, '\n$&' ) ; ;
-		sFormatted		= sFormatted.replace( this.Regex.BlocksCloser, '$&\n' ) ;
-		sFormatted		= sFormatted.replace( this.Regex.NewLineTags, '$&\n' ) ;
-		sFormatted		= sFormatted.replace( this.Regex.MainTags, '\n$&\n' ) ;
-		
-		// Indentation.
-		var sIndentation = '' ;
-		
-		var asLines = sFormatted.split( this.Regex.LineSplitter ) ;
-		sFormatted = '' ;
-		
-		for ( var i = 0 ; i < asLines.length ; i++ )
-		{
-			var sLine = asLines[i] ;
-			
-			if ( sLine.length == 0 )
-				continue ;
-			
-			if ( this.Regex.DecreaseIndent.test( sLine ) )
-				sIndentation = sIndentation.replace( this.Regex.FormatIndentatorRemove, '' ) ;
+		var sLine = asLines[i] ;
 
-			sFormatted += sIndentation + sLine + '\n' ;
-			
-			if ( this.Regex.IncreaseIndent.test( sLine ) )
-				sIndentation += FCKConfig.FormatIndentator ;
-		}
+		if ( sLine.length == 0 )
+			continue ;
 
-		return sFormatted.trim() ;
+		if ( this.Regex.DecreaseIndent.test( sLine ) )
+			sIndentation = sIndentation.replace( this.Regex.FormatIndentatorRemove, '' ) ;
+
+		sFormatted += sIndentation + sLine + '\n' ;
+
+		if ( this.Regex.IncreaseIndent.test( sLine ) )
+			sIndentation += FCKConfig.FormatIndentator ;
 	}
+
+	// Now we put back the protected data.
+	for ( var j = 0 ; j < FCKCodeFormatter.ProtectedData.length ; j++ )
+	{
+		var oRegex = new RegExp( '___FCKpd___' + j ) ;
+		sFormatted = sFormatted.replace( oRegex, FCKCodeFormatter.ProtectedData[j].replace( /\$/g, '$$$$' ) ) ;
+	}
+
+	return sFormatted.Trim() ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcommands.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcommands.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcommands.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcommands.js
- * 	Define all commands available in the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Define all commands available in the editor.
  */
 
 var FCKCommands = FCK.Commands = new Object() ;
@@ -28,7 +32,7 @@
 FCKCommands.GetCommand = function( commandName )
 {
 	var oCommand = FCKCommands.LoadedCommands[ commandName ] ;
-	
+
 	if ( oCommand )
 		return oCommand ;
 
@@ -36,10 +40,11 @@
 	{
 		case 'DocProps'		: oCommand = new FCKDialogCommand( 'DocProps'	, FCKLang.DocProps				, 'dialog/fck_docprops.html'	, 400, 390, FCKCommands.GetFullPageState ) ; break ;
 		case 'Templates'	: oCommand = new FCKDialogCommand( 'Templates'	, FCKLang.DlgTemplatesTitle		, 'dialog/fck_template.html'	, 380, 450 ) ; break ;
-		case 'Link'			: oCommand = new FCKDialogCommand( 'Link'		, FCKLang.DlgLnkWindowTitle		, 'dialog/fck_link.html'		, 400, 330, FCK.GetNamedCommandState, 'CreateLink' ) ; break ;
+		case 'Link'			: oCommand = new FCKDialogCommand( 'Link'		, FCKLang.DlgLnkWindowTitle		, 'dialog/fck_link.html'		, 400, 330 ) ; break ;
+		case 'Unlink'		: oCommand = new FCKUnlinkCommand() ; break ;
 		case 'Anchor'		: oCommand = new FCKDialogCommand( 'Anchor'		, FCKLang.DlgAnchorTitle		, 'dialog/fck_anchor.html'		, 370, 170 ) ; break ;
-		case 'BulletedList'	: oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp		, 'dialog/fck_listprop.html'	, 370, 170 ) ; break ;
-		case 'NumberedList'	: oCommand = new FCKDialogCommand( 'NumberedList', FCKLang.NumberedListProp		, 'dialog/fck_listprop.html'	, 370, 170 ) ; break ;
+		case 'BulletedList'	: oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp		, 'dialog/fck_listprop.html?UL'	, 370, 170 ) ; break ;
+		case 'NumberedList'	: oCommand = new FCKDialogCommand( 'NumberedList', FCKLang.NumberedListProp		, 'dialog/fck_listprop.html?OL'	, 370, 170 ) ; break ;
 		case 'About'		: oCommand = new FCKDialogCommand( 'About'		, FCKLang.About					, 'dialog/fck_about.html'		, 400, 330 ) ; break ;
 
 		case 'Find'			: oCommand = new FCKDialogCommand( 'Find'		, FCKLang.DlgFindTitle			, 'dialog/fck_find.html'		, 340, 170 ) ; break ;
@@ -47,12 +52,11 @@
 
 		case 'Image'		: oCommand = new FCKDialogCommand( 'Image'		, FCKLang.DlgImgTitle			, 'dialog/fck_image.html'		, 450, 400 ) ; break ;
 		case 'Flash'		: oCommand = new FCKDialogCommand( 'Flash'		, FCKLang.DlgFlashTitle			, 'dialog/fck_flash.html'		, 450, 400 ) ; break ;
-		case 'SpecialChar'	: oCommand = new FCKDialogCommand( 'SpecialChar', FCKLang.DlgSpecialCharTitle	, 'dialog/fck_specialchar.html'	, 400, 300 ) ; break ;
+		case 'SpecialChar'	: oCommand = new FCKDialogCommand( 'SpecialChar', FCKLang.DlgSpecialCharTitle	, 'dialog/fck_specialchar.html'	, 400, 320 ) ; break ;
 		case 'Smiley'		: oCommand = new FCKDialogCommand( 'Smiley'		, FCKLang.DlgSmileyTitle		, 'dialog/fck_smiley.html'		, FCKConfig.SmileyWindowWidth, FCKConfig.SmileyWindowHeight ) ; break ;
-		case 'Table'		: oCommand = new FCKDialogCommand( 'Table'		, FCKLang.DlgTableTitle			, 'dialog/fck_table.html'		, 400, 250 ) ; break ;
+		case 'Table'		: oCommand = new FCKDialogCommand( 'Table'		, FCKLang.DlgTableTitle			, 'dialog/fck_table.html'		, 450, 250 ) ; break ;
 		case 'TableProp'	: oCommand = new FCKDialogCommand( 'Table'		, FCKLang.DlgTableTitle			, 'dialog/fck_table.html?Parent', 400, 250 ) ; break ;
-		case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell'	, FCKLang.DlgCellTitle			, 'dialog/fck_tablecell.html'	, 500, 250 ) ; break ;
-		case 'UniversalKey'	: oCommand = new FCKDialogCommand( 'UniversalKey', FCKLang.UniversalKeyboard	, 'dialog/fck_universalkey.html', 415, 300 ) ; break ;
+		case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell'	, FCKLang.DlgCellTitle			, 'dialog/fck_tablecell.html'	, 550, 250 ) ; break ;
 
 		case 'Style'		: oCommand = new FCKStyleCommand() ; break ;
 
@@ -69,6 +73,7 @@
 		case 'TextColor'	: oCommand = new FCKTextColorCommand('ForeColor') ; break ;
 		case 'BGColor'		: oCommand = new FCKTextColorCommand('BackColor') ; break ;
 
+		case 'Paste'		: oCommand = new FCKPasteCommand() ; break ;
 		case 'PasteText'	: oCommand = new FCKPastePlainTextCommand() ; break ;
 		case 'PasteWord'	: oCommand = new FCKPasteWordCommand() ; break ;
 
@@ -80,6 +85,7 @@
 		case 'TableDeleteCells'		: oCommand = new FCKTableCommand('TableDeleteCells') ; break ;
 		case 'TableMergeCells'		: oCommand = new FCKTableCommand('TableMergeCells') ; break ;
 		case 'TableSplitCell'		: oCommand = new FCKTableCommand('TableSplitCell') ; break ;
+		case 'TableDelete'			: oCommand = new FCKTableCommand('TableDelete') ; break ;
 
 		case 'Form'			: oCommand = new FCKDialogCommand( 'Form'		, FCKLang.Form			, 'dialog/fck_form.html'		, 380, 230 ) ; break ;
 		case 'Checkbox'		: oCommand = new FCKDialogCommand( 'Checkbox'	, FCKLang.Checkbox		, 'dialog/fck_checkbox.html'	, 380, 230 ) ; break ;
@@ -92,13 +98,16 @@
 		case 'ImageButton'	: oCommand = new FCKDialogCommand( 'ImageButton', FCKLang.ImageButton	, 'dialog/fck_image.html?ImageButton', 450, 400 ) ; break ;
 
 		case 'SpellCheck'	: oCommand = new FCKSpellCheckCommand() ; break ;
+		case 'FitWindow'	: oCommand = new FCKFitWindow() ; break ;
 
 		case 'Undo'	: oCommand = new FCKUndoCommand() ; break ;
 		case 'Redo'	: oCommand = new FCKRedoCommand() ; break ;
 
+		case 'SelectAll' : oCommand = new FCKSelectAllCommand() ; break ;
+
 		// Generic Undefined command (usually used when a command is under development).
 		case 'Undefined'	: oCommand = new FCKUndefinedCommand() ; break ;
-		
+
 		// By default we assume that it is a named command.
 		default:
 			if ( FCKRegexLib.NamedCommands.test( commandName ) )
@@ -109,9 +118,9 @@
 				return null ;
 			}
 	}
-	
+
 	FCKCommands.LoadedCommands[ commandName ] = oCommand ;
-	
+
 	return oCommand ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckconfig.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckconfig.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckconfig.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,40 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckconfig.js
- * 	Creates and initializes the FCKConfig object.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Creates and initializes the FCKConfig object.
  */
 
 var FCKConfig = FCK.Config = new Object() ;
 
+/*
+	For the next major version (probably 3.0) we should move all this stuff to
+	another dedicated object and leave FCKConfig as a holder object for settings only).
+*/
+
 // Editor Base Path
 if ( document.location.protocol == 'file:' )
 {
-	FCKConfig.BasePath = document.location.pathname.substr(1) ;
+	FCKConfig.BasePath = decodeURIComponent( document.location.pathname.substr(1) ) ;
 	FCKConfig.BasePath = FCKConfig.BasePath.replace( /\\/gi, '/' ) ;
 	FCKConfig.BasePath = 'file://' + FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1) ;
+	FCKConfig.FullBasePath = FCKConfig.BasePath ;
 }
 else
 {
@@ -34,20 +44,20 @@
 
 FCKConfig.EditorPath = FCKConfig.BasePath.replace( /editor\/$/, '' ) ;
 
-// There is a bug in Gecko. If the editor is hidden on startup, an error is 
+// There is a bug in Gecko. If the editor is hidden on startup, an error is
 // thrown when trying to get the screen dimentions.
 try
 {
 	FCKConfig.ScreenWidth	= screen.width ;
 	FCKConfig.ScreenHeight	= screen.height ;
 }
-catch (e) 
+catch (e)
 {
 	FCKConfig.ScreenWidth	= 800 ;
 	FCKConfig.ScreenHeight	= 600 ;
 }
 
-// Override the actual configuration values with the values passed throw the 
+// Override the actual configuration values with the values passed throw the
 // hidden field "<InstanceName>___Config".
 FCKConfig.ProcessHiddenField = function()
 {
@@ -55,7 +65,7 @@
 
 	// Get the hidden field.
 	var oConfigField = window.parent.document.getElementById( FCK.Name + '___Config' ) ;
-	
+
 	// Do nothing if the config field was not defined.
 	if ( ! oConfigField ) return ;
 
@@ -67,32 +77,64 @@
 			continue ;
 
 		var aConfig = aCouples[i].split( '=' ) ;
-		var sKey = unescape( aConfig[0] ) ;
-		var sVal = unescape( aConfig[1] ) ;
+		var sKey = decodeURIComponent( aConfig[0] ) ;
+		var sVal = decodeURIComponent( aConfig[1] ) ;
 
 		if ( sKey == 'CustomConfigurationsPath' )	// The Custom Config File path must be loaded immediately.
 			FCKConfig[ sKey ] = sVal ;
-			
+
 		else if ( sVal.toLowerCase() == "true" )	// If it is a boolean TRUE.
 			this.PageConfig[ sKey ] = true ;
-			
+
 		else if ( sVal.toLowerCase() == "false" )	// If it is a boolean FALSE.
 			this.PageConfig[ sKey ] = false ;
-			
-		else if ( ! isNaN( sVal ) )					// If it is a number.
-			this.PageConfig[ sKey ] = parseInt( sVal ) ;
-			
+
+		else if ( sVal.length > 0 && !isNaN( sVal ) )	// If it is a number.
+			this.PageConfig[ sKey ] = parseInt( sVal, 10 ) ;
+
 		else										// In any other case it is a string.
 			this.PageConfig[ sKey ] = sVal ;
 	}
 }
 
-FCKConfig.LoadPageConfig = function()
+function FCKConfig_LoadPageConfig()
 {
-	for ( var sKey in this.PageConfig )
-		FCKConfig[ sKey ] = this.PageConfig[ sKey ] ;
+	var oPageConfig = FCKConfig.PageConfig ;
+	for ( var sKey in oPageConfig )
+		FCKConfig[ sKey ] = oPageConfig[ sKey ] ;
 }
 
+function FCKConfig_PreProcess()
+{
+	var oConfig = FCKConfig ;
+
+	// Force debug mode if fckdebug=true in the QueryString (main page).
+	if ( oConfig.AllowQueryStringDebug )
+	{
+		try
+		{
+			if ( (/fckdebug=true/i).test( window.top.location.search ) )
+				oConfig.Debug = true ;
+		}
+		catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
+	}
+
+	// Certifies that the "PluginsPath" configuration ends with a slash.
+	if ( !oConfig.PluginsPath.EndsWith('/') )
+		oConfig.PluginsPath += '/' ;
+
+	// EditorAreaCSS accepts an array of paths or a single path (as string).
+	// In the last case, transform it in an array.
+	if ( typeof( oConfig.EditorAreaCSS ) == 'string' )
+		oConfig.EditorAreaCSS = [ oConfig.EditorAreaCSS ] ;
+
+	var sComboPreviewCSS = oConfig.ToolbarComboPreviewCSS ;
+	if ( !sComboPreviewCSS || sComboPreviewCSS.length == 0 )
+		oConfig.ToolbarComboPreviewCSS = oConfig.EditorAreaCSS ;
+	else if ( typeof( sComboPreviewCSS ) == 'string' )
+		oConfig.ToolbarComboPreviewCSS = [ sComboPreviewCSS ] ;
+}
+
 // Define toolbar sets collection.
 FCKConfig.ToolbarSets = new Object() ;
 
@@ -102,18 +144,30 @@
 
 FCKConfig.Plugins.Add = function( name, langs, path )
 {
-	FCKConfig.Plugins.Items.addItem( [name, langs, path] ) ;
+	FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ;
 }
 
-// FCKConfig.ProtectedSource: object that holds a collection of Regular 
+// FCKConfig.ProtectedSource: object that holds a collection of Regular
 // Expressions that defined parts of the raw HTML that must remain untouched
 // like custom tags, scripts, server side code, etc...
 FCKConfig.ProtectedSource = new Object() ;
-FCKConfig.ProtectedSource.RegexEntries = new Array() ;
 
+// Initialize the regex array with the default ones.
+FCKConfig.ProtectedSource.RegexEntries = [
+	// First of any other protection, we must protect all comments to avoid
+	// loosing them (of course, IE related).
+	/<!--[\s\S]*?-->/g ,
+
+	// Script tags will also be forced to be protected, otherwise IE will execute them.
+	/<script[\s\S]*?<\/script>/gi,
+
+	// <noscript> tags (get lost in IE and messed up in FF).
+	/<noscript[\s\S]*?<\/noscript>/gi
+] ;
+
 FCKConfig.ProtectedSource.Add = function( regexPattern )
 {
-	this.RegexEntries.addItem( regexPattern ) ;
+	this.RegexEntries.AddItem( regexPattern ) ;
 }
 
 FCKConfig.ProtectedSource.Protect = function( html )
@@ -123,16 +177,15 @@
 		var index = FCKTempBin.AddElement( protectedSource ) ;
 		return '<!--{PS..' + index + '}-->' ;
 	}
-	
+
 	for ( var i = 0 ; i < this.RegexEntries.length ; i++ )
 	{
 		html = html.replace( this.RegexEntries[i], _Replace ) ;
 	}
-	
+
 	return html ;
 }
 
-
 FCKConfig.ProtectedSource.Revert = function( html, clearBin )
 {
 	function _Replace( m, opener, index )
@@ -143,8 +196,4 @@
 	}
 
 	return html.replace( /(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g, _Replace ) ;
-}
-
-// First of any other protection, we must protect all comments to avoid 
-// loosing them (of course, IE related).
-FCKConfig.ProtectedSource.Add( /<!--[\s\S]*?-->/g ) ;
\ No newline at end of file
+}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,232 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenu.js
- * 	Defines the FCKContextMenu object that is responsible for all
- * 	Context Menu operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKContextMenu = new Object() ;
-
-// This property is internally used to indicate that the context menu has been created.
-FCKContextMenu._IsLoaded = false ;
-
-// This method creates the context menu inside a DIV tag. Take a look at the end of this file for a sample output.
-FCKContextMenu.Reload = function()
-{
-	// Create the Main DIV that holds the Context Menu.
-	this._Div = this._Document.createElement( 'DIV' ) ;
-	this._Div.className			= 'CM_ContextMenu' ;
-	this._Div.style.position	= 'absolute' ;
-	this._Div.style.visibility	= 'hidden' ;
-	this._Document.body.appendChild( this._Div );
-
-	// Create the main table for the menu items.
-	var oTable = this._Document.createElement( 'TABLE' ) ;
-	oTable.cellSpacing = 0 ;
-	oTable.cellPadding = 0 ;
-	oTable.border = 0 ;
-	this._Div.appendChild( oTable ) ;
-
-	// Load all configured groups.
-	this.Groups = new Object() ;
-	
-	for ( var i = 0 ; i < FCKConfig.ContextMenu.length ; i++ )
-	{
-		var sGroup = FCKConfig.ContextMenu[i] ;
-		this.Groups[ sGroup ] = this._GetGroup( sGroup ) ;
-		this.Groups[ sGroup ].CreateTableRows( oTable ) ;
-	}
-
-	this._IsLoaded = true ;
-}
-
-FCKContextMenu._GetGroup = function( groupName )
-{
-	var oGroup ;
-
-	switch ( groupName )
-	{
-		case 'Generic' :
-			// Generic items that are always available.
-			oGroup = new FCKContextMenuGroup() ;
-
-			oGroup.Add( new FCKContextMenuItem( this, 'Cut'		, FCKLang.Cut	, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'Copy'	, FCKLang.Copy	, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'Paste'	, FCKLang.Paste	, true ) ) ;
-
-			break ;
-
-		case 'Link' :
-			oGroup = new FCKContextMenuGroup() ;
-
-			oGroup.Add( new FCKContextMenuSeparator() ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'Link'	, FCKLang.EditLink	, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'Unlink'	, FCKLang.RemoveLink, true ) ) ;
-
-			break ;
-
-		case 'TableCell' :
-			oGroup = new FCKContextMenuGroup() ;
-
-			oGroup.Add( new FCKContextMenuSeparator() ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableInsertRow'		, FCKLang.InsertRow, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableDeleteRows'		, FCKLang.DeleteRows, true ) ) ;
-			oGroup.Add( new FCKContextMenuSeparator() ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableInsertColumn'	, FCKLang.InsertColumn, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableDeleteColumns'	, FCKLang.DeleteColumns, true ) ) ;
-			oGroup.Add( new FCKContextMenuSeparator() ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableInsertCell'		, FCKLang.InsertCell, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableDeleteCells'	, FCKLang.DeleteCells, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableMergeCells'		, FCKLang.MergeCells, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableSplitCell'		, FCKLang.SplitCell, true ) ) ;
-			oGroup.Add( new FCKContextMenuSeparator() ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableCellProp'		, FCKLang.CellProperties, true ) ) ;
-			oGroup.Add( new FCKContextMenuItem( this, 'TableProp'			, FCKLang.TableProperties, true ) ) ;
-
-			break ;
-
-		case 'Table' :
-			return new FCKContextMenuGroup( true, this, 'Table', FCKLang.TableProperties, true ) ;
-
-		case 'Image' :
-			return new FCKContextMenuGroup( true, this, 'Image', FCKLang.ImageProperties, true ) ;
-
-		case 'Flash' :
-			return new FCKContextMenuGroup( true, this, 'Flash', FCKLang.FlashProperties, true ) ;
-
-		case 'Form' :
-			return new FCKContextMenuGroup( true, this, 'Form', FCKLang.FormProp, true ) ;
-
-		case 'Checkbox' :
-			return new FCKContextMenuGroup( true, this, 'Checkbox', FCKLang.CheckboxProp, true ) ;
-
-		case 'Radio' :
-			return new FCKContextMenuGroup( true, this, 'Radio', FCKLang.RadioButtonProp, true ) ;
-
-		case 'TextField' :
-			return new FCKContextMenuGroup( true, this, 'TextField', FCKLang.TextFieldProp, true ) ;
-
-		case 'HiddenField' :
-			return new FCKContextMenuGroup( true, this, 'HiddenField', FCKLang.HiddenFieldProp, true ) ;
-
-		case 'ImageButton' :
-			return new FCKContextMenuGroup( true, this, 'ImageButton', FCKLang.ImageButtonProp, true ) ;
-
-		case 'Button' :
-			return new FCKContextMenuGroup( true, this, 'Button', FCKLang.ButtonProp, true ) ;
-
-		case 'Select' :
-			return new FCKContextMenuGroup( true, this, 'Select', FCKLang.SelectionFieldProp, true ) ;
-
-		case 'Textarea' :
-			return new FCKContextMenuGroup( true, this, 'Textarea', FCKLang.TextareaProp, true ) ;
-
-		case 'BulletedList' :
-			return new FCKContextMenuGroup( true, this, 'BulletedList', FCKLang.BulletedListProp, true ) ;
-
-		case 'NumberedList' :
-			return new FCKContextMenuGroup( true, this, 'NumberedList', FCKLang.NumberedListProp, true ) ;
-
-		case 'Anchor' :
-			return new FCKContextMenuGroup( true, this, 'Anchor', FCKLang.AnchorProp, true ) ;
-	}
-	
-	return oGroup ;
-}
-
-FCKContextMenu.RefreshState = function()
-{
-  	// Get the actual selected tag (if any).
-	var oTag = FCKSelection.GetSelectedElement() ;
-	var sTagName ;
-
-	if ( oTag )
-		sTagName = oTag.tagName ;
-
-	// Set items visibility.
-
-//	var bIsAnchor = ( sTagName == 'A' && oTag.name.length > 0 && oTag.href.length == 0 ) ;
-
-//	if ( this.Groups['Link'] )			this.Groups['Link'].SetVisible( !bIsAnchor && FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED ) ;
-	if ( this.Groups['Link'] )			this.Groups['Link'].SetVisible( FCK.GetNamedCommandState( 'Unlink' ) != FCK_TRISTATE_DISABLED ) ;
-
-	if ( this.Groups['TableCell'] )		this.Groups['TableCell'].SetVisible( sTagName != 'TABLE' && FCKSelection.HasAncestorNode('TABLE') ) ;
-	if ( this.Groups['Table'] )			this.Groups['Table'].SetVisible( sTagName == 'TABLE' ) ;
-	
-	if ( this.Groups['Image'] )			this.Groups['Image'].SetVisible( sTagName == 'IMG' && !oTag.getAttribute('_fckfakelement') ) ;
-	if ( this.Groups['Flash'] )			this.Groups['Flash'].SetVisible( sTagName == 'IMG' && oTag.getAttribute('_fckflash') ) ;
-	if ( this.Groups['Anchor'] )		this.Groups['Anchor'].SetVisible( sTagName == 'IMG' && oTag.getAttribute('_fckanchor') ) ;
-
-	if ( this.Groups['BulletedList'] )	this.Groups['BulletedList'].SetVisible( FCKSelection.HasAncestorNode('UL') ) ;
-	if ( this.Groups['NumberedList'] )	this.Groups['NumberedList'].SetVisible( FCKSelection.HasAncestorNode('OL') ) ;
-
-	if ( this.Groups['Select'] )		this.Groups['Select'].SetVisible( sTagName == 'SELECT' ) ;
-	if ( this.Groups['Textarea'] )		this.Groups['Textarea'].SetVisible( sTagName == 'TEXTAREA' ) ;
-	if ( this.Groups['Form'] )			this.Groups['Form'].SetVisible( FCKSelection.HasAncestorNode('FORM') ) ;
-	if ( this.Groups['Checkbox'] )		this.Groups['Checkbox'].SetVisible(		sTagName == 'INPUT' && oTag.type == 'checkbox' ) ;
-	if ( this.Groups['Radio'] )			this.Groups['Radio'].SetVisible(		sTagName == 'INPUT' && oTag.type == 'radio' ) ;
-	if ( this.Groups['TextField'] )		this.Groups['TextField'].SetVisible(	sTagName == 'INPUT' && ( oTag.type == 'text' || oTag.type == 'password' ) ) ;
-	if ( this.Groups['HiddenField'] )	this.Groups['HiddenField'].SetVisible(	sTagName == 'INPUT' && oTag.type == 'hidden' ) ;
-	if ( this.Groups['ImageButton'] )	this.Groups['ImageButton'].SetVisible(	sTagName == 'INPUT' && oTag.type == 'image' ) ;
-	if ( this.Groups['Button'] )		this.Groups['Button'].SetVisible(		sTagName == 'INPUT' && ( oTag.type == 'button' || oTag.type == 'submit' || oTag.type == 'reset' ) ) ;
-
-	// Refresh the state of all visible items (active/disactive)
-	for ( var o in this.Groups )
-	{
-		this.Groups[o].RefreshState() ;
-	}
-}
-
-/*
-Sample Context Menu Output
------------------------------------------
-<div class="CM_ContextMenu">
-	<table cellSpacing="0" cellPadding="0" border="0">
-		<tr class="CM_Disabled">
-			<td class="CM_Icon"><img alt="" src="icons/cut.gif" width="21" height="20" unselectable="on"></td>
-			<td class="CM_Label" unselectable="on">Cut</td>
-		</tr>
-		<tr class="CM_Disabled">
-			<td class="CM_Icon"><img height="20" alt="" src="icons/copy.gif" width="21"></td>
-			<td class="CM_Label">Copy</td>
-		</tr>
-		<tr class="CM_Option" onmouseover="OnOver(this);" onmouseout="OnOut(this);">
-			<td class="CM_Icon"><img height="20" alt="" src="icons/paste.gif" width="21"></td>
-			<td class="CM_Label">Paste</td>
-		</tr>
-		<tr class="CM_Separator">
-			<td class="CM_Icon"></td>
-			<td class="CM_Label"><div></div></td>
-		</tr>
-		<tr class="CM_Option" onmouseover="OnOver(this);" onmouseout="OnOut(this);">
-			<td class="CM_Icon"><img height="20" alt="" src="icons/print.gif" width="21"></td>
-			<td class="CM_Label">Print</td>
-		</tr>
-		<tr class="CM_Separator">
-			<td class="CM_Icon"></td>
-			<td class="CM_Label"><div></div></td>
-		</tr>
-		<tr class="CM_Option" onmouseover="OnOver(this);" onmouseout="OnOut(this);">
-			<td class="CM_Icon"></td>
-			<td class="CM_Label">Do Something</td>
-		</tr>
-		<tr class="CM_Option" onmouseover="OnOver(this);" onmouseout="OnOut(this);">
-			<td class="CM_Icon"></td>
-			<td class="CM_Label">Just Testing</td>
-		</tr>
-	</table>
-</div>
-*/
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,90 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenu_gecko.js
- * 	Context Menu operations. (Gecko specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// The Context Menu CSS must be added to the parent document.
-FCKTools.AppendStyleSheet( window.parent.document, FCKConfig.SkinPath + 'fck_contextmenu.css' ) ;
-
-FCKContextMenu.Show = function( x, y )
-{
-	if ( ! this._Document )
-	{
-		this._Document = window.parent.document ;
-	}
-
-	// Create the context menu if needed.
-	if ( !this._IsLoaded ) 
-	{
-		this.Reload() ;
-		this._Div.style.zIndex = 10000 ;
-		this._Div.oncontextmenu = function() { return false ; }
-	}
-	
-	this.RefreshState() ;
-
-	// Get the editor area and editor frames positions.	
-	var oCoordsA = FCKTools.GetElementPosition( FCK.EditorWindow.frameElement ) ;
-	var oCoordsB = FCKTools.GetElementPosition( window.frameElement ) ;
-	
-	x += oCoordsA.X + oCoordsB.X ;
-	y += oCoordsA.Y + oCoordsB.Y ;
-
-	// Verifies if the context menu is completely visible.
-	var iXSpace = x + this._Div.offsetWidth - this._Div.ownerDocument.defaultView.innerWidth ;
-	var iYSpace = y + this._Div.offsetHeight - this._Div.ownerDocument.defaultView.innerHeight ;
-	
-	if ( iXSpace > 0 ) x -= this._Div.offsetWidth ;
-	if ( iYSpace > 0 ) y -= this._Div.offsetHeight ;
-	
-	// Set the context menu DIV in the specified location.
-	this._Div.style.left	= x + 'px' ;
-	this._Div.style.top		= y + 'px' ;
-
-	// Watch the "OnClick" event for all windows to close the Context Menu.
-	var oActualWindow = FCK.EditorWindow ;
-	while ( oActualWindow )
-	{
-		oActualWindow.document.addEventListener( 'click', FCKContextMenu._OnDocumentClick, false ) ;
-		if ( oActualWindow != oActualWindow.parent )
-			oActualWindow = oActualWindow.parent ;
-		else if ( oActualWindow.opener == null ) 
-			oActualWindow = oActualWindow.opener ;
-		else
-			break ;
-	}
-	
-	// Show it.
-	this._Div.style.visibility	= '' ;
-}
-
-FCKContextMenu._OnDocumentClick = function( event )
-{
-	var e = event.target ;
-	while ( e )
-	{
-		if ( e == FCKContextMenu._Div ) return ;
-		e = e.parentNode ;
-	}
-	FCKContextMenu.Hide() ;
-}
-
-FCKContextMenu.Hide = function()
-{
-	this._Div.style.visibility = 'hidden' ;
-	this._Div.style.left = this._Div.style.top = '1px' ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcontextmenu_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,71 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcontextmenu_ie.js
- * 	Context Menu operations. (IE specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-function FCKContextMenu_OnContextMenu() { return false ; }
-
-FCKContextMenu.Show = function( x, y )
-{
-	// Create the Popup used to show the menu (this is a IE 5.5+ feature).
-	if ( ! this._Popup )
-	{
-		this._Popup = window.createPopup() ;
-		this._Document = this._Popup.document ;
-		this._Document.createStyleSheet( FCKConfig.SkinPath + 'fck_contextmenu.css' ) ;
-		this._Document.oncontextmenu = FCKContextMenu_OnContextMenu ;
-
-		aCleanupDocs[ aCleanupDocs.length ] = this._Document ;
-	}
-
-	// Create the context menu if needed.
-	if ( !this._IsLoaded )
-	{
-		this.Reload() ;
-		this._Div.style.visibility = '' ;
-	}
-
-	this.RefreshState() ;
-
-	// IE doens't get the offsetWidth and offsetHeight values if the element is not visible.
-	// So the Popup must be "shown" with no size to be able to get these values.
-	this._Popup.show( x, y, 0, 0 ) ;
-
-	// This was the previous solution. It works well to.
-	// So a temporary element is created to get this for us.
-	/*
-	if ( !this._DivCopy )
-	{
-		this._DivCopy = document.createElement( 'DIV' ) ;
-		this._DivCopy.className			= 'CM_ContextMenu' ;
-		this._DivCopy.style.position	= 'absolute' ;
-		this._DivCopy.style.visibility	= 'hidden' ;
-		document.body.appendChild( this._DivCopy );
-	}
-
-	this._DivCopy.innerHTML = this._Div.innerHTML ;
-	*/
-
-	// Show the Popup at the specified location.
-	this._Popup.show( x, y, this._Div.offsetWidth, this._Div.offsetHeight ) ;
-}
-
-FCKContextMenu.Hide = function()
-{
-	if ( this._Popup )
-		this._Popup.hide() ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcoreextensions.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcoreextensions.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckcoreextensions.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,92 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckcoreextensions.js
- * 	Some extensions to the Javascript Core.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// Extends the Array object, creating a "addItem" method on it.
-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++ )
-	{
-		if ( this[i] == value )
-			return i ;
-	}
-	return -1 ;
-}
-
-String.prototype.startsWith = function( value )
-{
-	return ( this.substr( 0, value.length ) == value ) ;
-}
-
-// Extends the String object, creating a "endsWith" method on it.
-String.prototype.endsWith = function( value, ignoreCase )
-{
-	var L1 = this.length ;
-	var L2 = value.length ;
-	
-	if ( L2 > L1 )
-		return false ;
-
-	if ( ignoreCase )
-	{
-		var oRegex = new RegExp( value + '$' , 'i' ) ;
-		return oRegex.test( this ) ;
-	}
-	else
-		return ( L2 == 0 || this.substr( L1 - L2, L2 ) == value ) ;
-}
-
-String.prototype.remove = function( start, length )
-{
-	var s = '' ;
-	
-	if ( start > 0 )
-		s = this.substring( 0, start ) ;
-	
-	if ( start + length < this.length )
-		s += this.substring( start + length , this.length ) ;
-		
-	return s ;
-}
-
-String.prototype.trim = function()
-{
-	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
-}
-
-String.prototype.ltrim = function()
-{
-	return this.replace( /^\s*/g, '' ) ;
-}
-
-String.prototype.rtrim = function()
-{
-	return this.replace( /\s*$/g, '' ) ;
-}
-
-String.prototype.replaceNewLineChars = function( replacement )
-{
-	return this.replace( /\n/g, replacement ) ;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdebug.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdebug.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdebug.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,39 +1,56 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdebug.js
- * 	Debug window control and operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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.
  */
 
 var FCKDebug = new Object() ;
 
-if ( FCKConfig.Debug )
+FCKDebug._GetWindow = function()
 {
-	FCKDebug.Output = function( message, 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 ;
+}
+
+FCKDebug.Output = function( message, color, noParse )
+{
+	if ( ! FCKConfig.Debug )
+		return ;
+
+	try
 	{
-		if ( ! FCKConfig.Debug ) return ;
-		
-		if ( message != null && isNaN( message ) )
-			message = message.replace(/</g, "&lt;") ;
+		this._GetWindow().Output( message, color ) ;
+	}
+	catch ( e ) {}	 // Ignore errors
+}
 
-		if ( !this.DebugWindow || this.DebugWindow.closed )
-			this.DebugWindow = window.open( 'fckdebug.html', 'FCKeditorDebug', 'menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500', true ) ;
-		
-		if ( this.DebugWindow.Output)
-			this.DebugWindow.Output( message, color ) ;
+FCKDebug.OutputObject = function( anyObject, color )
+{
+	if ( ! FCKConfig.Debug )
+		return ;
+
+	try
+	{
+		this._GetWindow().OutputObject( anyObject, color ) ;
 	}
-}
-else
-	FCKDebug.Output = function() {}
+	catch ( e ) {}	 // Ignore errors
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdialog.js
- * 	Dialog windows operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Dialog windows operations.
  */
 
 var FCKDialog = new Object() ;
@@ -28,7 +32,7 @@
 	oDialogInfo.Page = dialogPage ;
 	oDialogInfo.Editor = window ;
 	oDialogInfo.CustomValue = customValue ;		// Optional
-	
+
 	var sUrl = FCKConfig.BasePath + 'fckdialog.html' ;
 	this.Show( oDialogInfo, dialogName, sUrl, width, height, parentWindow, resizable ) ;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdialog_gecko.js
- * 	Dialog windows operations. (Gecko specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Dialog windows operations. (Gecko specific implementations)
  */
 
 FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
@@ -31,28 +35,37 @@
 
 	if ( !parentWindow )
 		parentWindow = window ;
-	
+
+	FCKFocusManager.Lock() ;
+
 	var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
+
+	if ( !oWindow )
+	{
+		alert( FCKLang.DialogBlocked ) ;
+		FCKFocusManager.Unlock() ;
+		return ;
+	}
+
 	oWindow.moveTo( iLeft, iTop ) ;
 	oWindow.resizeTo( dialogWidth, dialogHeight ) ;
 	oWindow.focus() ;
 	oWindow.location.href = pageUrl ;
-	
+
 	oWindow.dialogArguments = dialogInfo ;
-	
-	// On some Gecko browsers (probably over slow connections) the 
+
+	// On some Gecko browsers (probably over slow connections) the
 	// "dialogArguments" are not set to the target window so we must
 	// put it in the opener window so it can be used by the target one.
 	parentWindow.FCKLastDialogInfo = dialogInfo ;
-	
+
 	this.Window = oWindow ;
-	
-	// Try/Catch must be used to avoit an error when using a frameset 
-	// on a different domain: 
+
+	// Try/Catch must be used to avoit an error when using a frameset
+	// on a different domain:
 	// "Permission denied to get property Window.releaseEvents".
 	try
 	{
-		window.top.captureEvents( Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS ) ;
 		window.top.parent.addEventListener( 'mousedown', this.CheckFocus, true ) ;
 		window.top.parent.addEventListener( 'mouseup', this.CheckFocus, true ) ;
 		window.top.parent.addEventListener( 'click', this.CheckFocus, true ) ;
@@ -64,21 +77,20 @@
 
 FCKDialog.CheckFocus = function()
 {
-	// It is strange, but we have to check the FCKDialog existence to avoid a 
+	// It is strange, but we have to check the FCKDialog existence to avoid a
 	// random error: "FCKDialog is not defined".
 	if ( typeof( FCKDialog ) != "object" )
 		return false ;
-	
+
 	if ( FCKDialog.Window && !FCKDialog.Window.closed )
 		FCKDialog.Window.focus() ;
 	else
 	{
-		// Try/Catch must be used to avoit an error when using a frameset 
-		// on a different domain: 
+		// Try/Catch must be used to avoit an error when using a frameset
+		// on a different domain:
 		// "Permission denied to get property Window.releaseEvents".
 		try
 		{
-			window.top.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) ;
 			window.top.parent.removeEventListener( 'onmousedown', FCKDialog.CheckFocus, true ) ;
 			window.top.parent.removeEventListener( 'mouseup', FCKDialog.CheckFocus, true ) ;
 			window.top.parent.removeEventListener( 'click', FCKDialog.CheckFocus, true ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdialog_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,48 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdialog_ie.js
- * 	Dialog windows operations. (IE specific implementations)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Dialog windows operations. (IE specific implementations)
  */
 
-FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow )
+FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
 {
 	if ( !parentWindow )
 		parentWindow = window ;
 
-	parentWindow.showModalDialog( pageUrl, dialogInfo, "dialogWidth:" + dialogWidth + "px;dialogHeight:" + dialogHeight + "px;help:no;scroll:no;status:no") ;
+	var sOptions = 'help:no;scroll:no;status:no' +
+		';resizable:'  + ( resizable ? 'yes' : 'no' ) +
+		';dialogWidth:' + dialogWidth + 'px' +
+		';dialogHeight:' + dialogHeight + 'px' ;
+
+	FCKFocusManager.Lock() ;
+
+	var oReturn = 'B' ;
+
+	try
+	{
+		oReturn = parentWindow.showModalDialog( pageUrl, dialogInfo, sOptions ) ;
+	}
+	catch( e ) {}
+
+	if ( 'B' === oReturn )
+		alert( FCKLang.DialogBlocked ) ;
+
+	FCKFocusManager.Unlock() ;
 }

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdocumentprocessor.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdocumentprocessor.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdocumentprocessor.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,243 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Advanced document processors.
+ */
+
+var FCKDocumentProcessor = new Object() ;
+FCKDocumentProcessor._Items = new Array() ;
+
+FCKDocumentProcessor.AppendNew = function()
+{
+	var oNewItem = new Object() ;
+	this._Items.AddItem( oNewItem ) ;
+	return oNewItem ;
+}
+
+FCKDocumentProcessor.Process = function( document )
+{
+	var oProcessor, i = 0 ;
+	while( ( oProcessor = this._Items[i++] ) )
+		oProcessor.ProcessDocument( document ) ;
+}
+
+var FCKDocumentProcessor_CreateFakeImage = function( fakeClass, realElement )
+{
+	var oImg = FCK.EditorDocument.createElement( 'IMG' ) ;
+	oImg.className = fakeClass ;
+	oImg.src = FCKConfig.FullBasePath + 'images/spacer.gif' ;
+	oImg.setAttribute( '_fckfakelement', 'true', 0 ) ;
+	oImg.setAttribute( '_fckrealelement', FCKTempBin.AddElement( realElement ), 0 ) ;
+	return oImg ;
+}
+
+// Link Anchors
+if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
+{
+	var FCKAnchorsProcessor = FCKDocumentProcessor.AppendNew() ;
+	FCKAnchorsProcessor.ProcessDocument = function( document )
+	{
+		var aLinks = document.getElementsByTagName( 'A' ) ;
+
+		var oLink ;
+		var i = aLinks.length - 1 ;
+		while ( i >= 0 && ( oLink = aLinks[i--] ) )
+		{
+			// If it is anchor. Doesn't matter if it's also a link (even better: we show that it's both a link and an anchor)
+			if ( oLink.name.length > 0 )
+			{
+				//if the anchor has some content then we just add a temporary class
+				if ( oLink.innerHTML != '' )
+				{
+					if ( FCKBrowserInfo.IsIE )
+						oLink.className += ' FCK__AnchorC' ;
+				}
+				else
+				{
+					var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oLink.cloneNode(true) ) ;
+					oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+					oLink.parentNode.insertBefore( oImg, oLink ) ;
+					oLink.parentNode.removeChild( oLink ) ;
+				}
+			}
+		}
+	}
+}
+
+// Page Breaks
+var FCKPageBreaksProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKPageBreaksProcessor.ProcessDocument = function( document )
+{
+	var aDIVs = document.getElementsByTagName( 'DIV' ) ;
+
+	var eDIV ;
+	var i = aDIVs.length - 1 ;
+	while ( i >= 0 && ( eDIV = aDIVs[i--] ) )
+	{
+		if ( eDIV.style.pageBreakAfter == 'always' && eDIV.childNodes.length == 1 && eDIV.childNodes[0].style && eDIV.childNodes[0].style.display == 'none' )
+		{
+			var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', eDIV.cloneNode(true) ) ;
+
+			eDIV.parentNode.insertBefore( oFakeImage, eDIV ) ;
+			eDIV.parentNode.removeChild( eDIV ) ;
+		}
+	}
+/*
+	var aCenters = document.getElementsByTagName( 'CENTER' ) ;
+
+	var oCenter ;
+	var i = aCenters.length - 1 ;
+	while ( i >= 0 && ( oCenter = aCenters[i--] ) )
+	{
+		if ( oCenter.style.pageBreakAfter == 'always' && oCenter.innerHTML.Trim().length == 0 )
+		{
+			var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', oCenter.cloneNode(true) ) ;
+
+			oCenter.parentNode.insertBefore( oFakeImage, oCenter ) ;
+			oCenter.parentNode.removeChild( oCenter ) ;
+		}
+	}
+*/
+}
+
+// Flash Embeds.
+var FCKFlashProcessor = FCKDocumentProcessor.AppendNew() ;
+FCKFlashProcessor.ProcessDocument = function( document )
+{
+	/*
+	Sample code:
+	This is some <embed src="/UserFiles/Flash/Yellow_Runners.swf"></embed><strong>sample text</strong>. You are&nbsp;<a name="fred"></a> using <a href="http://www.fckeditor.net/">FCKeditor</a>.
+	*/
+
+	var aEmbeds = document.getElementsByTagName( 'EMBED' ) ;
+
+	var oEmbed ;
+	var i = aEmbeds.length - 1 ;
+	while ( i >= 0 && ( oEmbed = aEmbeds[i--] ) )
+	{
+		// IE doesn't return the type attribute with oEmbed.type or oEmbed.getAttribute("type") 
+		// But it turns out that after accessing it then it doesn't gets copied later
+		var oType = oEmbed.attributes[ 'type' ] ;
+
+		// Check the extension and the type. Now it should be enough with just the type
+		// Opera doesn't return oEmbed.src so oEmbed.src.EndsWith will fail
+		if ( (oEmbed.src && oEmbed.src.EndsWith( '.swf', true )) || ( oType && oType.nodeValue == 'application/x-shockwave-flash' ) )
+		{
+			var oCloned = oEmbed.cloneNode( true ) ;
+
+			// On IE, some properties are not getting clonned properly, so we
+			// must fix it. Thanks to Alfonso Martinez.
+			if ( FCKBrowserInfo.IsIE )
+			{
+				var aAttributes = [ 'scale', 'play', 'loop', 'menu', 'wmode', 'quality' ] ;
+				for ( var iAtt = 0 ; iAtt < aAttributes.length ; iAtt++ )
+				{
+					var oAtt = oEmbed.getAttribute( aAttributes[iAtt] ) ;
+					if ( oAtt ) oCloned.setAttribute( aAttributes[iAtt], oAtt ) ;
+				}
+				// It magically gets lost after reading it in oType
+				oCloned.setAttribute( 'type', oType.nodeValue ) ;
+			}
+
+			var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oCloned ) ;
+			oImg.setAttribute( '_fckflash', 'true', 0 ) ;
+
+			FCKFlashProcessor.RefreshView( oImg, oEmbed ) ;
+
+			oEmbed.parentNode.insertBefore( oImg, oEmbed ) ;
+			oEmbed.parentNode.removeChild( oEmbed ) ;
+
+//			oEmbed.setAttribute( '_fcktemp', 'true', 0) ;
+//			oEmbed.style.display = 'none' ;
+//			oEmbed.hidden = true ;
+		}
+	}
+}
+
+FCKFlashProcessor.RefreshView = function( placholderImage, originalEmbed )
+{
+	if ( originalEmbed.width > 0 )
+		placholderImage.style.width = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.width ) ;
+
+	if ( originalEmbed.height > 0 )
+		placholderImage.style.height = FCKTools.ConvertHtmlSizeToStyle( originalEmbed.height ) ;
+}
+
+FCK.GetRealElement = function( fakeElement )
+{
+	var e = FCKTempBin.Elements[ fakeElement.getAttribute('_fckrealelement') ] ;
+
+	if ( fakeElement.getAttribute('_fckflash') )
+	{
+		if ( fakeElement.style.width.length > 0 )
+				e.width = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.width ) ;
+
+		if ( fakeElement.style.height.length > 0 )
+				e.height = FCKTools.ConvertStyleSizeToHtml( fakeElement.style.height ) ;
+	}
+
+	return e ;
+}
+
+// HR Processor.
+// This is a IE only (tricky) thing. We protect all HR tags before loading them
+// (see FCK.ProtectTags). Here we put the HRs back.
+if ( FCKBrowserInfo.IsIE )
+{
+	FCKDocumentProcessor.AppendNew().ProcessDocument = function( document )
+	{
+		var aHRs = document.getElementsByTagName( 'HR' ) ;
+
+		var eHR ;
+		var i = aHRs.length - 1 ;
+		while ( i >= 0 && ( eHR = aHRs[i--] ) )
+		{
+			// Create the replacement HR.
+			var newHR = document.createElement( 'hr' ) ;
+			newHR.mergeAttributes( eHR, true ) ;
+			
+			// We must insert the new one after it. insertBefore will not work in all cases.
+			FCKDomTools.InsertAfterNode( eHR, newHR ) ;
+
+			eHR.parentNode.removeChild( eHR ) ;
+		}
+	}
+}
+
+// INPUT:hidden Processor.
+FCKDocumentProcessor.AppendNew().ProcessDocument = function( document )
+{
+	var aInputs = document.getElementsByTagName( 'INPUT' ) ;
+
+	var oInput ;
+	var i = aInputs.length - 1 ;
+	while ( i >= 0 && ( oInput = aInputs[i--] ) )
+	{
+		if ( oInput.type == 'hidden' )
+		{
+			var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oInput.cloneNode(true) ) ;
+			oImg.setAttribute( '_fckinputhidden', 'true', 0 ) ;
+
+			oInput.parentNode.insertBefore( oImg, oInput ) ;
+			oInput.parentNode.removeChild( oInput ) ;
+		}
+	}
+}
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdomtools.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdomtools.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckdomtools.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,294 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions to work with the DOM.
+ */
+
+var FCKDomTools =
+{
+	MoveChildren : function( source, target )
+	{
+		if ( source == target )
+			return ;
+
+		var eChild ;
+		while ( (eChild = source.firstChild) )
+			target.appendChild( source.removeChild( eChild ) ) ;
+	},
+
+	// Remove blank spaces from the beginning and the end of the contents of a node.
+	TrimNode : function( node, ignoreEndBRs )
+	{
+		this.LTrimNode( node ) ;
+		this.RTrimNode( node, ignoreEndBRs ) ;
+	},
+
+	LTrimNode : function( node )
+	{
+		var eChildNode ;
+
+		while ( (eChildNode = node.firstChild) )
+		{
+			if ( eChildNode.nodeType == 3 )
+			{
+				var sTrimmed = eChildNode.nodeValue.LTrim() ;
+				var iOriginalLength = eChildNode.nodeValue.length ;
+
+				if ( sTrimmed.length == 0 )
+				{
+					node.removeChild( eChildNode ) ;
+					continue ;
+				}
+				else if ( sTrimmed.length < iOriginalLength )
+				{
+					eChildNode.splitText( iOriginalLength - sTrimmed.length ) ;
+					node.removeChild( node.firstChild ) ;
+				}
+			}
+			break ;
+		}
+	},
+
+	RTrimNode : function( node, ignoreEndBRs )
+	{
+		var eChildNode ;
+
+		while ( (eChildNode = node.lastChild) )
+		{
+			switch ( eChildNode.nodeType )
+			{
+				case 1 :
+					if ( eChildNode.nodeName.toUpperCase() == 'BR' && ( ignoreEndBRs || eChildNode.getAttribute( 'type', 2 ) == '_moz' ) )
+					{
+						node.removeChild( eChildNode ) ;
+						continue ;
+					}
+					break ;
+
+				case 3 :
+					var sTrimmed = eChildNode.nodeValue.RTrim() ;
+					var iOriginalLength = eChildNode.nodeValue.length ;
+
+					if ( sTrimmed.length == 0 )
+					{
+						// If the trimmed text node is empty, just remove it.
+						
+						// Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#81).
+						eChildNode.parentNode.removeChild( eChildNode ) ;
+						continue ;
+					}
+					else if ( sTrimmed.length < iOriginalLength )
+					{
+						// If the trimmed text lenght is less than the original
+						// lenght, strip all spaces from the end by splitting
+						// the text and removing the resulting useless node.
+
+						eChildNode.splitText( sTrimmed.length ) ;
+						// Use "node.lastChild.parentNode" instead of "node" to avoid IE bug (#81).
+						node.lastChild.parentNode.removeChild( node.lastChild ) ;
+					}
+			}
+			break ;
+		}
+	},
+
+	RemoveNode : function( node, excludeChildren )
+	{
+		if ( excludeChildren )
+		{
+			// Move all children before the node.
+			var eChild ;
+			while ( (eChild = node.firstChild) )
+				node.parentNode.insertBefore( node.removeChild( eChild ), node ) ;
+		}
+
+		return node.parentNode.removeChild( node ) ;
+	},
+
+	GetFirstChild : function( node, childNames )
+	{
+		// If childNames is a string, transform it in a Array.
+		if ( typeof ( childNames ) == 'string' )
+			childNames = [ childNames ] ;
+
+		var eChild = node.firstChild ;
+		while( eChild )
+		{
+			if ( eChild.nodeType == 1 && eChild.tagName.Equals.apply( eChild.tagName, childNames ) )
+				return eChild ;
+
+			eChild = eChild.nextSibling ;
+		}
+
+		return null ;
+	},
+
+	GetLastChild : function( node, childNames )
+	{
+		// If childNames is a string, transform it in a Array.
+		if ( typeof ( childNames ) == 'string' )
+			childNames = [ childNames ] ;
+
+		var eChild = node.lastChild ;
+		while( eChild )
+		{
+			if ( eChild.nodeType == 1 && ( !childNames || eChild.tagName.Equals( childNames ) ) )
+				return eChild ;
+
+			eChild = eChild.previousSibling ;
+		}
+
+		return null ;
+	},
+
+	/*
+	 * Gets the previous element (nodeType=1) in the source order. Returns
+	 * "null" If no element is found.
+	 *		@param {Object} currentNode The node to start searching from.
+	 *		@param {Boolean} ignoreSpaceTextOnly Sets how text nodes will be
+	 *				handled. If set to "true", only white spaces text nodes
+	 *				will be ignored, while non white space text nodes will stop
+	 *				the search, returning null. If "false" or ommitted, all
+	 *				text nodes are ignored.
+	 *		@param {string[]} stopSearchElements An array of element names that
+	 *				will cause the search to stop when found, returning null.
+	 *				May be ommitted (or null).
+	 *		@param {string[]} ignoreElements An array of element names that
+	 *				must be ignored during the search.
+	 */
+	GetPreviousSourceElement : function( currentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements )
+	{
+		if ( !currentNode )
+			return null ;
+
+		if ( stopSearchElements && currentNode.nodeType == 1 && currentNode.nodeName.IEquals( stopSearchElements ) )
+			return null ;
+
+		if ( currentNode.previousSibling )
+			currentNode = currentNode.previousSibling ;
+		else
+			return this.GetPreviousSourceElement( currentNode.parentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements ) ;
+
+		while ( currentNode )
+		{
+			if ( currentNode.nodeType == 1 )
+			{
+				if ( stopSearchElements && currentNode.nodeName.IEquals( stopSearchElements ) )
+					break ;
+
+				if ( !ignoreElements || !currentNode.nodeName.IEquals( ignoreElements ) )
+					return currentNode ;
+			}
+			else if ( ignoreSpaceTextOnly && currentNode.nodeType == 3 && currentNode.nodeValue.RTrim().length > 0 )
+				break ;
+
+			if ( currentNode.lastChild )
+				currentNode = currentNode.lastChild ;
+			else
+				return this.GetPreviousSourceElement( currentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements ) ;
+		}
+
+		return null ;
+	},
+
+	/*
+	 * Gets the next element (nodeType=1) in the source order. Returns
+	 * "null" If no element is found.
+	 *		@param {Object} currentNode The node to start searching from.
+	 *		@param {Boolean} ignoreSpaceTextOnly Sets how text nodes will be
+	 *				handled. If set to "true", only white spaces text nodes
+	 *				will be ignored, while non white space text nodes will stop
+	 *				the search, returning null. If "false" or ommitted, all
+	 *				text nodes are ignored.
+	 *		@param {string[]} stopSearchElements An array of element names that
+	 *				will cause the search to stop when found, returning null.
+	 *				May be ommitted (or null).
+	 *		@param {string[]} ignoreElements An array of element names that
+	 *				must be ignored during the search.
+	 */
+	GetNextSourceElement : function( currentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements )
+	{
+		if ( !currentNode )
+			return null ;
+
+		if ( currentNode.nextSibling )
+			currentNode = currentNode.nextSibling ;
+		else
+			return this.GetNextSourceElement( currentNode.parentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements ) ;
+
+		while ( currentNode )
+		{
+			if ( currentNode.nodeType == 1 )
+			{
+				if ( stopSearchElements && currentNode.nodeName.IEquals( stopSearchElements ) )
+					break ;
+
+				if ( !ignoreElements || !currentNode.nodeName.IEquals( ignoreElements ) )
+					return currentNode ;
+			}
+			else if ( ignoreSpaceTextOnly && currentNode.nodeType == 3 && currentNode.nodeValue.RTrim().length > 0 )
+				break ;
+
+			if ( currentNode.firstChild )
+				currentNode = currentNode.firstChild ;
+			else
+				return this.GetNextSourceElement( currentNode, ignoreSpaceTextOnly, stopSearchElements, ignoreElements ) ;
+		}
+
+		return null ;
+	},
+
+	// Inserts a element after a existing one.
+	InsertAfterNode : function( existingNode, newNode )
+	{
+		return existingNode.parentNode.insertBefore( newNode, existingNode.nextSibling ) ;
+	},
+
+	GetParents : function( node )
+	{
+		var parents = new Array() ;
+
+		while ( node )
+		{
+			parents.splice( 0, 0, node ) ;
+			node = node.parentNode ;
+		}
+
+		return parents ;
+	},
+
+	GetIndexOf : function( node )
+	{
+		var currentNode = node.parentNode ? node.parentNode.firstChild : null ;
+		var currentIndex = -1 ;
+
+		while ( currentNode )
+		{
+			currentIndex++ ;
+
+			if ( currentNode == node )
+				return currentIndex ;
+
+			currentNode = currentNode.nextSibling ;
+		}
+
+		return -1 ;
+	}
+} ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklanguagemanager.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklanguagemanager.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklanguagemanager.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,95 +1,161 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcklanguagemanager.js
- * 	Defines the FCKLanguageManager object that is used for language 
- * 	operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKLanguageManager object that is used for language
+ * operations.
  */
 
-FCKLanguageManager.GetActiveLanguage = function()
+var FCKLanguageManager = FCK.Language =
 {
-	if ( FCKConfig.AutoDetectLanguage )
+	AvailableLanguages :
 	{
-		var sUserLang ;
-		
-		// IE accepts "navigator.userLanguage" while Gecko "navigator.language".
-		if ( navigator.userLanguage )
-			sUserLang = navigator.userLanguage.toLowerCase() ;
-		else if ( navigator.language )
-			sUserLang = navigator.language.toLowerCase() ;
-		else
+		af		: 'Afrikaans',
+		ar		: 'Arabic',
+		bg		: 'Bulgarian',
+		bn		: 'Bengali/Bangla',
+		bs		: 'Bosnian',
+		ca		: 'Catalan',
+		cs		: 'Czech',
+		da		: 'Danish',
+		de		: 'German',
+		el		: 'Greek',
+		en		: 'English',
+		'en-au'	: 'English (Australia)',
+		'en-ca'	: 'English (Canadian)',
+		'en-uk'	: 'English (United Kingdom)',
+		eo		: 'Esperanto',
+		es		: 'Spanish',
+		et		: 'Estonian',
+		eu		: 'Basque',
+		fa		: 'Persian',
+		fi		: 'Finnish',
+		fo		: 'Faroese',
+		fr		: 'French',
+		gl		: 'Galician',
+		he		: 'Hebrew',
+		hi		: 'Hindi',
+		hr		: 'Croatian',
+		hu		: 'Hungarian',
+		it		: 'Italian',
+		ja		: 'Japanese',
+		km		: 'Khmer',
+		ko		: 'Korean',
+		lt		: 'Lithuanian',
+		lv		: 'Latvian',
+		mn		: 'Mongolian',
+		ms		: 'Malay',
+		nb		: 'Norwegian Bokmal',
+		nl		: 'Dutch',
+		no		: 'Norwegian',
+		pl		: 'Polish',
+		pt		: 'Portuguese (Portugal)',
+		'pt-br'	: 'Portuguese (Brazil)',
+		ro		: 'Romanian',
+		ru		: 'Russian',
+		sk		: 'Slovak',
+		sl		: 'Slovenian',
+		sr		: 'Serbian (Cyrillic)',
+		'sr-latn'	: 'Serbian (Latin)',
+		sv		: 'Swedish',
+		th		: 'Thai',
+		tr		: 'Turkish',
+		uk		: 'Ukrainian',
+		vi		: 'Vietnamese',
+		zh		: 'Chinese Traditional',
+		'zh-cn'	: 'Chinese Simplified'
+	},
+
+	GetActiveLanguage : function()
+	{
+		if ( FCKConfig.AutoDetectLanguage )
 		{
-			// Firefox 1.0 PR has a bug: it doens't support the "language" property.
-			return FCKConfig.DefaultLanguage ;
+			var sUserLang ;
+
+			// IE accepts "navigator.userLanguage" while Gecko "navigator.language".
+			if ( navigator.userLanguage )
+				sUserLang = navigator.userLanguage.toLowerCase() ;
+			else if ( navigator.language )
+				sUserLang = navigator.language.toLowerCase() ;
+			else
+			{
+				// Firefox 1.0 PR has a bug: it doens't support the "language" property.
+				return FCKConfig.DefaultLanguage ;
+			}
+
+			// Some language codes are set in 5 characters,
+			// like "pt-br" for Brasilian Portuguese.
+			if ( sUserLang.length >= 5 )
+			{
+				sUserLang = sUserLang.substr(0,5) ;
+				if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+			}
+
+			// If the user's browser is set to, for example, "pt-br" but only the
+			// "pt" language file is available then get that file.
+			if ( sUserLang.length >= 2 )
+			{
+				sUserLang = sUserLang.substr(0,2) ;
+				if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
+			}
 		}
-		
-		// Some language codes are set in 5 characters, 
-		// like "pt-br" for Brasilian Portuguese.
-		if ( sUserLang.length >= 5 )
-		{
-			sUserLang = sUserLang.substr(0,5) ;
-			if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
-		}
-		
-		// If the user's browser is set to, for example, "pt-br" but only the 
-		// "pt" language file is available then get that file.
-		if ( sUserLang.length >= 2 )
-		{
-			sUserLang = sUserLang.substr(0,2) ;
-			if ( this.AvailableLanguages[sUserLang] ) return sUserLang ;
-		}
-	}
-	
-	return this.DefaultLanguage ;
-}
 
-FCKLanguageManager.TranslateElements = function( targetDocument, tag, propertyToSet )
-{
-	var e = targetDocument.getElementsByTagName(tag) ;
+		return this.DefaultLanguage ;
+	},
 
-	for ( var i = 0 ; i < e.length ; i++ )
+	TranslateElements : function( targetDocument, tag, propertyToSet, encode )
 	{
-		var sKey = e[i].getAttribute( 'fckLang' ) ;
-		
-		if ( sKey )
+		var e = targetDocument.getElementsByTagName(tag) ;
+		var sKey, s ;
+		for ( var i = 0 ; i < e.length ; i++ )
 		{
-			var s = FCKLang[ sKey ] ;
-			if ( s ) 
-				eval( 'e[i].' + propertyToSet + ' = s' ) ;
+			// The extra () is to avoid a warning with strict error checking. This is ok.
+			if ( (sKey = e[i].getAttribute( 'fckLang' )) )
+			{
+				// The extra () is to avoid a warning with strict error checking. This is ok.
+				if ( (s = FCKLang[ sKey ]) )
+				{
+					if ( encode )
+						s = FCKTools.HTMLEncode( s ) ;
+					eval( 'e[i].' + propertyToSet + ' = s' ) ;
+				}
+			}
 		}
-	}
-}
+	},
 
-FCKLanguageManager.TranslatePage = function( targetDocument )
-{
-	this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
-	this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
-	this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
-	this.TranslateElements( targetDocument, 'OPTION', 'innerHTML' ) ;
-}
+	TranslatePage : function( targetDocument )
+	{
+		this.TranslateElements( targetDocument, 'INPUT', 'value' ) ;
+		this.TranslateElements( targetDocument, 'SPAN', 'innerHTML' ) ;
+		this.TranslateElements( targetDocument, 'LABEL', 'innerHTML' ) ;
+		this.TranslateElements( targetDocument, 'OPTION', 'innerHTML', true ) ;
+	},
 
-if ( FCKLanguageManager.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
-	FCKLanguageManager.DefaultLanguage = FCKConfig.DefaultLanguage ;
-else
-	FCKLanguageManager.DefaultLanguage = 'en' ;
+	Initialize : function()
+	{
+		if ( this.AvailableLanguages[ FCKConfig.DefaultLanguage ] )
+			this.DefaultLanguage = FCKConfig.DefaultLanguage ;
+		else
+			this.DefaultLanguage = 'en' ;
 
-FCKLanguageManager.ActiveLanguage = new Object() ;
-FCKLanguageManager.ActiveLanguage.Code = FCKLanguageManager.GetActiveLanguage() ;
-FCKLanguageManager.ActiveLanguage.Name = FCKLanguageManager.AvailableLanguages[ FCKLanguageManager.ActiveLanguage.Code ] ;
-
-FCK.Language = FCKLanguageManager ;
-
-// Load the language file and start the editor.
-LoadLanguageFile() ;
\ No newline at end of file
+		this.ActiveLanguage = new Object() ;
+		this.ActiveLanguage.Code = this.GetActiveLanguage() ;
+		this.ActiveLanguage.Name = this.AvailableLanguages[ this.ActiveLanguage.Code ] ;
+	}
+} ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklisthandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklisthandler.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklisthandler.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,152 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Tool object to manage HTML lists items (UL, OL and LI).
+ */
+
+var FCKListHandler =
+{
+	OutdentListItem : function( listItem )
+	{
+		var eParent = listItem.parentNode ;
+
+		// It may happen that a LI is not in a UL or OL (Orphan).
+		if ( eParent.tagName.toUpperCase().Equals( 'UL','OL' ) )
+		{
+			var oDocument = FCKTools.GetElementDocument( listItem ) ;
+			var oDogFrag = new FCKDocumentFragment( oDocument ) ;
+
+			// All children and successive siblings will be moved to a a DocFrag.
+			var eNextSiblings = oDogFrag.RootNode ;
+			var eHasLiSibling = false ;
+
+			// If we have nested lists inside it, let's move it to the list of siblings.
+			var eChildList = FCKDomTools.GetFirstChild( listItem, ['UL','OL'] ) ;
+			if ( eChildList )
+			{
+				eHasLiSibling = true ;
+
+				var eChild ;
+				// The extra () is to avoid a warning with strict error checking. This is ok.
+				while ( (eChild = eChildList.firstChild) )
+					eNextSiblings.appendChild( eChildList.removeChild( eChild ) ) ;
+
+				FCKDomTools.RemoveNode( eChildList ) ;
+			}
+
+			// Move all successive siblings.
+			var eSibling ;
+			var eHasSuccessiveLiSibling = false ;
+			// The extra () is to avoid a warning with strict error checking. This is ok.
+			while ( (eSibling = listItem.nextSibling) )
+			{
+				if ( !eHasLiSibling && eSibling.nodeType == 1 && eSibling.nodeName.toUpperCase() == 'LI' )
+					eHasSuccessiveLiSibling = eHasLiSibling = true ;
+
+				eNextSiblings.appendChild( eSibling.parentNode.removeChild( eSibling ) ) ;
+
+				// If a sibling is a incorrectly nested UL or OL, consider only its children.
+				if ( !eHasSuccessiveLiSibling && eSibling.nodeType == 1 && eSibling.nodeName.toUpperCase().Equals( 'UL','OL' ) )
+					FCKDomTools.RemoveNode( eSibling, true ) ;
+			}
+
+			// If we are in a list chain.
+			var sParentParentTag = eParent.parentNode.tagName.toUpperCase() ;
+			var bWellNested = ( sParentParentTag == 'LI' ) ;
+			if ( bWellNested || sParentParentTag.Equals( 'UL','OL' ) )
+			{
+				if ( eHasLiSibling )
+				{
+					var eChildList = eParent.cloneNode( false ) ;
+					oDogFrag.AppendTo( eChildList ) ;
+					listItem.appendChild( eChildList ) ;
+				}
+				else if ( bWellNested )
+					oDogFrag.InsertAfterNode( eParent.parentNode ) ;
+				else
+					oDogFrag.InsertAfterNode( eParent ) ;
+
+				// Move the LI after its parent.parentNode (the upper LI in the hierarchy).
+				if ( bWellNested )
+					FCKDomTools.InsertAfterNode( eParent.parentNode, eParent.removeChild( listItem ) ) ;
+				else
+					FCKDomTools.InsertAfterNode( eParent, eParent.removeChild( listItem ) ) ;
+			}
+			else
+			{
+				if ( eHasLiSibling )
+				{
+					var eNextList = eParent.cloneNode( false ) ;
+					oDogFrag.AppendTo( eNextList ) ;
+					FCKDomTools.InsertAfterNode( eParent, eNextList ) ;
+				}
+
+				var eBlock = oDocument.createElement( FCKConfig.EnterMode == 'p' ? 'p' : 'div' ) ;
+				FCKDomTools.MoveChildren( eParent.removeChild( listItem ), eBlock ) ;
+				FCKDomTools.InsertAfterNode( eParent, eBlock ) ;
+
+				if ( FCKConfig.EnterMode == 'br' )
+				{
+					// We need the bogus to make it work properly. In Gecko, we
+					// need it before the new block, on IE, after it.
+					if ( FCKBrowserInfo.IsGecko )
+						eBlock.parentNode.insertBefore( FCKTools.CreateBogusBR( oDocument ), eBlock ) ;
+					else
+						FCKDomTools.InsertAfterNode( eBlock, FCKTools.CreateBogusBR( oDocument ) ) ;
+
+					FCKDomTools.RemoveNode( eBlock, true ) ;
+				}
+			}
+
+			if ( this.CheckEmptyList( eParent ) )
+				FCKDomTools.RemoveNode( eParent, true ) ;
+		}
+	},
+
+	CheckEmptyList : function( listElement )
+	{
+		return ( FCKDomTools.GetFirstChild( listElement, 'LI' ) == null ) ;
+	},
+
+	// Check if the list has contents (excluding nested lists).
+	CheckListHasContents : function( listElement )
+	{
+		var eChildNode = listElement.firstChild ;
+
+		while ( eChildNode )
+		{
+			switch ( eChildNode.nodeType )
+			{
+				case 1 :
+					if ( !eChildNode.nodeName.IEquals( 'UL','LI' ) )
+						return true ;
+					break ;
+
+				case 3 :
+					if ( eChildNode.nodeValue.Trim().length > 0 )
+						return true ;
+			}
+
+			eChildNode = eChildNode.nextSibling ;
+		}
+
+		return false ;
+	}
+} ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklistslib.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklistslib.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcklistslib.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,60 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Library of keys collections.
+ *
+ * Test have shown that check for the existence of a key in an object is the
+ * most efficient list entry check (10x faster that regex). Example:
+ *		if ( FCKListsLib.<ListName>[key] != null )
+ */
+
+var FCKListsLib =
+{
+	// We are not handling <ins> and <del> as block elements, for now.
+	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,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },
+
+	// Block elements that may be filled with &nbsp; if empty.
+	NonEmptyBlockElements : { p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },
+
+	// Inline elements which MUST have child nodes.
+	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,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },
+
+	// Elements marked as empty "Empty" in the XHTML DTD.
+	EmptyElements : { base:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },
+	
+	// Elements that may be considered the "Block boundary" in an element path.
+	PathBlockElements : { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1 },
+	
+	// Elements that may be considered the "Block limit" in an element path.
+	PathBlockLimitElements : { body:1,td:1,th:1,caption:1,form:1 },
+
+	// Final setup of FCKListsLib once the editor is loaded (at FCK.StartEditor). 
+	// TODO: For v3, there should be a generic way to register to the editor
+	// startup event, so this function would not be needed to be defined here, not
+	// even be called at FCK.StartEditor.
+	Setup : function()
+	{
+		// <div> is considered a block element only if EnterMode=div, otherwise it is a block limit.
+		if ( FCKConfig.EnterMode == 'div' )
+			this.PathBlockElements.div = 1 ;
+		else
+			this.PathBlockLimitElements.div = 1 ;
+	}
+} ;
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcknamespace.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcknamespace.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcknamespace.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcknamespace.js
- * 	This file declares the namespace (object holder) where the common editor 
- * 	objects and classes are defined.
- * 	The namespace is located in the page the editor is running on, so it is
- * 	shared by all editor instances.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var NS ;
-
-if ( !( NS = window.parent.__FCKeditorNS ) )
-	NS = window.parent.__FCKeditorNS = new Object() ;
-

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckplugins.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckplugins.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckplugins.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,44 +1,46 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugins.js
- * 	Defines the FCKPlugins object that is responsible for loading the Plugins.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKPlugins object that is responsible for loading the Plugins.
  */
 
 var FCKPlugins = FCK.Plugins = new Object() ;
 FCKPlugins.ItemsCount = 0 ;
-FCKPlugins.Loaded = false ;
 FCKPlugins.Items = new Object() ;
 
-// Set the defined plugins scripts paths.
-for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ )
-{
-	var oItem = FCKConfig.Plugins.Items[i] ;
-	FCKPlugins.Items[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ;
-	FCKPlugins.ItemsCount++ ;
-}
-	
 FCKPlugins.Load = function()
 {
-	// Load all items.
-	for ( var s in this.Items )
-		this.Items[s].Load() ;
-	
-	// Mark as loaded.
-	this.Loaded = true ;
-	
+	var oItems = FCKPlugins.Items ;
+
+	// build the plugins collection.
+	for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ )
+	{
+		var oItem = FCKConfig.Plugins.Items[i] ;
+		var oPlugin = oItems[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ;
+		FCKPlugins.ItemsCount++ ;
+	}
+
+	// Load all items in the plugins collection.
+	for ( var s in oItems )
+		oItems[s].Load() ;
+
 	// This is a self destroyable function (must be called once).
 	FCKPlugins.Load = null ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckregexlib.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckregexlib.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckregexlib.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,92 +1,95 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckregexlib.js
- * 	These are some Regular Expresions used by the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * These are some Regular Expresions used by the editor.
  */
 
-var FCKRegexLib = new Object() ;
-
+var FCKRegexLib =
+{
 // This is the Regular expression used by the SetHTML method for the "&apos;" entity.
-FCKRegexLib.AposEntity		= /&apos;/gi ;
+AposEntity		: /&apos;/gi ,
 
 // Used by the Styles combo to identify styles that can't be applied to text.
-FCKRegexLib.ObjectElements	= /^(?:IMG|TABLE|TR|TD|INPUT|SELECT|TEXTAREA|HR|OBJECT)$/i ;
+ObjectElements	: /^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i ,
 
-// START iCM MODIFICATIONS
-// Added TABLE and CAPTION to the block elements for ENTER key handling
-// Block Elements.
-/*
-FCKRegexLib.BlockElements	= /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD|TABLE|CAPTION)$/i ;
-*/
-// END iCM MODIFICATIONS
-FCKRegexLib.BlockElements	= /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD)$/i ;
-
-// Elements marked as empty "Empty" in the XHTML DTD.
-FCKRegexLib.EmptyElements	= /^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i ;
-
 // List all named commands (commands that can be interpreted by the browser "execCommand" method.
-FCKRegexLib.NamedCommands	= /^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i ;
+NamedCommands	: /^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i ,
 
-FCKRegexLib.BodyContents	= /([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i ;
+BodyContents	: /([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i ,
 
 // Temporary text used to solve some browser specific limitations.
-FCKRegexLib.ToReplace		= /___fcktoreplace:([\w]+)/ig ;
+ToReplace		: /___fcktoreplace:([\w]+)/ig ,
 
 // Get the META http-equiv attribute from the tag.
-FCKRegexLib.MetaHttpEquiv	= /http-equiv\s*=\s*["']?([^"' ]+)/i ;
+MetaHttpEquiv	: /http-equiv\s*=\s*["']?([^"' ]+)/i ,
 
-FCKRegexLib.HasBaseTag		= /<base /i ;
+HasBaseTag		: /<base /i ,
 
-FCKRegexLib.HeadOpener		= /<head\s?[^>]*>/i ;
-FCKRegexLib.HeadCloser		= /<\/head\s*>/i ;
+HtmlOpener		: /<html\s?[^>]*>/i ,
+HeadOpener		: /<head\s?[^>]*>/i ,
+HeadCloser		: /<\/head\s*>/i ,
 
-FCKRegexLib.TableBorderClass = /\s*FCK__ShowTableBorders\s*/ ;
+// Temporary classes (Tables without border, Anchors with content) used in IE
+FCK_Class		: /(\s*FCK__[A-Za-z]*\s*)/ ,
 
-// Validate element names.
-FCKRegexLib.ElementName = /^[A-Za-z_:][\w.-:]*$/ ;
+// Validate element names (it must be in lowercase).
+ElementName		: /(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/ ,
 
 // Used in conjuction with the FCKConfig.ForceSimpleAmpersand configuration option.
-FCKRegexLib.ForceSimpleAmpersand = /___FCKAmp___/g ;
+ForceSimpleAmpersand : /___FCKAmp___/g ,
 
 // Get the closing parts of the tags with no closing tags, like <br/>... gets the "/>" part.
-FCKRegexLib.SpaceNoClose = /\/>/g ;
+SpaceNoClose	: /\/>/g ,
 
-FCKRegexLib.EmptyParagraph = /^<(p|div)>\s*<\/\1>$/i ;
+// Empty elements may be <p></p> or even a simple opening <p> (see #211).
+EmptyParagraph	: /^<([^ >]+)[^>]*>\s*(<\/\1>)?$/ ,
 
-FCKRegexLib.TagBody = /></ ;
+EmptyOutParagraph : /^<([^ >]+)[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/ ,
 
-// START iCM MODIFICATIONS
-/*
-// HTML table cell elements
-FCKRegexLib.TableCellElements	= /^(?:TD|TH)$/i ;
-// Block elements that can themselves contain block elements - used within the FCKTools.SplitNode
-// function. I know BODY isn't really a block element but means can do the check in one hit.
-FCKRegexLib.SpecialBlockElements	= /^(?:BODY|TH|TD|CAPTION)$/i ;
-// Block elements that can validly contain a nested table. Ditto above for the BODY entry.
-FCKRegexLib.TableBlockElements	= /^(?:BODY|DIV|LI|TD|TH)$/i ;
-// List elements
-FCKRegexLib.ListElements	= /^(?:OL|UL)$/i ;
-// Used to remove empty tags after the split process used on ENTER key press
-FCKRegexLib.EmptyElement = /<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|SPAN|A)[^\>]*>\s*<\/\1>/gi ;
-*/
-// END iCM MODIFICATIONS
+TagBody			: /></ ,
 
-FCKRegexLib.StrongOpener = /<STRONG([ \>])/gi ;
-FCKRegexLib.StrongCloser = /<\/STRONG>/gi ;
-FCKRegexLib.EmOpener = /<EM([ \>])/gi ;
-FCKRegexLib.EmCloser = /<\/EM>/gi ;
+StrongOpener	: /<STRONG([ \>])/gi ,
+StrongCloser	: /<\/STRONG>/gi ,
+EmOpener		: /<EM([ \>])/gi ,
+EmCloser		: /<\/EM>/gi ,
+//AbbrOpener		: /<ABBR([ \>])/gi ,
+//AbbrCloser		: /<\/ABBR>/gi ,
 
-FCKRegexLib.GeckoEntitiesMarker = /#\?-\:/g ;
+GeckoEntitiesMarker : /#\?-\:/g ,
+
+// We look for the "src" and href attribute with the " or ' or whithout one of
+// them. We have to do all in one, otherwhise we will have problems with URLs
+// like "thumbnail.php?src=someimage.jpg" (SF-BUG 1554141).
+ProtectUrlsImg	: /<img(?=\s).*?\ssrc=((?:("|').*?\2)|(?:[^"'][^ >]+))/gi ,
+ProtectUrlsA	: /<a(?=\s).*?\shref=((?:("|').*?\2)|(?:[^"'][^ >]+))/gi ,
+
+Html4DocType	: /HTML 4\.0 Transitional/i ,
+DocTypeTag		: /<!DOCTYPE[^>]*>/i ,
+
+// 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 ,
+EventAttributes	: /\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,
+ProtectedEvents : /\s\w+_fckprotectedatt="([^"]+)"/g,
+
+StyleProperties : /\S+\s*:/g,
+
+// [a-zA-Z0-9:]+ seams to be more efficient than [\w:]+
+InvalidSelfCloseTags : /(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi
+} ;

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckscriptloader.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckscriptloader.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckscriptloader.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,156 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckscriptloader.js
- * 	Defines the FCKScriptLoader object that is used to dynamically load
- * 	scripts in the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-// This object is used to download scripts and css files sequentialy.
-// A file download is not started until the previous file was not completelly
-// downloaded.
-var FCKScriptLoader = new Object() ;
-FCKScriptLoader.IsLoading = false ;
-FCKScriptLoader.Queue = new Array() ;
-
-// Adds a script or css to the queue.
-FCKScriptLoader.AddScript = function( scriptPath )
-{
-	FCKScriptLoader.Queue[ FCKScriptLoader.Queue.length ] = scriptPath ;
-	
-	if ( !this.IsLoading )
-		this.CheckQueue() ;
-}
-
-// Checks the queue to see if there is something to load.
-// This function should not be called by code. It's a internal function
-// that's called recursively.
-FCKScriptLoader.CheckQueue = function() 
-{
-	// Check if the queue is not empty.
-	if ( this.Queue.length > 0 )
-	{
-		this.IsLoading = true ;
-		
-		// Get the first item in the queue
-		var sScriptPath = this.Queue[0] ;
-		
-		// Removes the first item from the queue
-		var oTempArray = new Array() ;
-		for ( i = 1 ; i < this.Queue.length ; i++ )
-			oTempArray[ i - 1 ] = this.Queue[ i ] ;
-		this.Queue = oTempArray ;
-		
-		this.LoadFile( sScriptPath ) ;
-	}
-	else
-	{
-		this.IsLoading = false ;
-		
-		// Call the "OnEmpty" event.
-		if ( this.OnEmpty ) 
-			this.OnEmpty() ;
-	}
-}
-
-if ( FCKBrowserInfo.IsSafari )
-{
-	FCKScriptLoader.LoadFile = function( filePath ) 
-	{
-		if ( filePath.lastIndexOf( '.css' ) > 0 )
-		{
-			this.CheckQueue() ;
-			return ;
-		}
-		
-		var oXmlRequest = new XMLHttpRequest() ;
-		
-		// Load the script synchronously.
-		oXmlRequest.open( "GET", filePath, false ) ;
-		oXmlRequest.send( null ) ;
-		
-		// Evaluate the script.
-		if ( oXmlRequest.status == 200 )
-		{
-			try
-			{
-				eval( oXmlRequest.responseText ) ;
-			}
-			catch ( e )
-			{
-				alert( 'Error parsing ' + filePath + ': ' + e.message ) ;
-			}
-		}
-		else
-			alert( 'Error loading ' + filePath ) ;
-			
-		this.CheckQueue() ;
-	}
-}
-else
-{
-	FCKScriptLoader.LoadFile = function( filePath ) 
-	{
-		//window.status = ( 'Loading ' + filePath + '...' ) ;
-
-		// Dynamically load the file (it can be a CSS or a JS)
-		var e ;
-		
-		// If is a CSS
-		if ( filePath.lastIndexOf( '.css' ) > 0 )
-		{
-			e = document.createElement( 'LINK' ) ;
-			e.rel	= 'stylesheet' ;
-			e.type	= 'text/css' ;
-		}
-		// It is a JS
-		else
-		{
-			e = document.createElement( "script" ) ;
-				e.type	= "text/javascript" ;
-		}
-		
-		// Add the new object to the HEAD.
-		document.getElementsByTagName("head")[0].appendChild( e ) ; 
-
-		// Start downloading it.
-		if ( e.tagName == 'LINK' )
-		{
-			// IE must wait for the file to be downloaded.
-			if ( FCKBrowserInfo.IsIE )
-				e.onload = FCKScriptLoader_OnLoad ;
-			// Gecko doens't fire any event when the CSS is loaded, so we 
-			// can't wait for it.
-			else
-				FCKScriptLoader.CheckQueue() ;
-				
-			e.href = filePath ;
-		}
-		else
-		{
-			// Gecko fires the "onload" event and IE fires "onreadystatechange"
-			e.onload = e.onreadystatechange = FCKScriptLoader_OnLoad ;
-			e.src = filePath ;
-		}
-	}
-
-	function FCKScriptLoader_OnLoad()
-	{
-		// Gecko doesn't have a "readyState" property
-		if ( this.tagName == 'LINK' || !this.readyState || this.readyState == 'loaded' )
-			// Load the next script available in the queue
-			FCKScriptLoader.CheckQueue() ;
-	}
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckselection.js
- * 	Active selection functions.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Active selection functions.
  */
 
-var FCKSelection = new Object() ;
-
-FCK.Selection = FCKSelection ;
+var FCKSelection = FCK.Selection = new Object() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckselection_gecko.js
- * 	Active selection functions. (Gecko specific implementation)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Active selection functions. (Gecko specific implementation)
  */
 
 // Get the selection type (like document.select.type in IE).
@@ -26,11 +30,14 @@
 		this._Type = 'Text' ;
 
 		// Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
-		var oSel = FCK.EditorWindow.getSelection() ;
+		var oSel ;
+		try { oSel = FCK.EditorWindow.getSelection() ; }
+		catch (e) {}
+
 		if ( oSel && oSel.rangeCount == 1 )
 		{
 			var oRange = oSel.getRangeAt(0) ;
-			if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 )
+			if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != Node.TEXT_NODE )
 				this._Type = 'Control' ;
 		}
 //	}
@@ -46,12 +53,13 @@
 		var oSel = FCK.EditorWindow.getSelection() ;
 		return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
 	}
+	return null ;
 }
 
 FCKSelection.GetParentElement = function()
 {
 	if ( this.GetType() == 'Control' )
-		return FCKSelection.GetSelectedElement().parentElement ;
+		return FCKSelection.GetSelectedElement().parentNode ;
 	else
 	{
 		var oSel = FCK.EditorWindow.getSelection() ;
@@ -65,11 +73,12 @@
 			return oNode ;
 		}
 	}
+	return null ;
 }
 
 FCKSelection.SelectNode = function( element )
 {
-	FCK.Focus() ;
+//	FCK.Focus() ;
 
 	var oRange = FCK.EditorDocument.createRange() ;
 	oRange.selectNode( element ) ;
@@ -82,7 +91,7 @@
 FCKSelection.Collapse = function( toStart )
 {
 	var oSel = FCK.EditorWindow.getSelection() ;
-	
+
 	if ( toStart == null || toStart === true )
 		oSel.collapseToStart() ;
 	else
@@ -119,8 +128,9 @@
 
 	while ( oContainer )
 	{
-		if ( oContainer.tagName == nodeTagName ) 
+		if ( oContainer.nodeName == nodeTagName )
 			return oContainer ;
+
 		oContainer = oContainer.parentNode ;
 	}
 	return null ;
@@ -139,26 +149,3 @@
 
 	return oSel ;
 }
-// START iCM MODIFICATIONS
-/*
-// Move the cursor position (the selection point) to a specific offset within a specific node
-// If no offset specified, the start of the node is assumed
-FCKSelection.SetCursorPosition = function ( oNode, nOffset )
-{
-	if ( typeof nOffset == "undefined" ) nOffset = 0 ;
-
-	var oSel = FCK.EditorWindow.getSelection() ;
-	var oRange = FCK.EditorDocument.createRange() ;
-	
-	oRange.setStart( oNode, nOffset ) ;
-	oRange.collapse( true ) ;
-	
-	oSel.removeAllRanges() ;
-	oSel.addRange( oRange );
-	
-	if ( oNode.scrollIntoView )
-		oNode.scrollIntoView( false );	
-}
-*/
-// END iCM MODIFICATIONS
-

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckselection_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckselection_ie.js
- * 	Active selection functions. (IE specific implementation)
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Active selection functions. (IE specific implementation)
  */
 
 // Get the selection type.
@@ -43,7 +47,7 @@
 		case 'Control' :
 			return FCKSelection.GetSelectedElement().parentElement ;
 		case 'None' :
-			return ;
+			return null ;
 		default :
 			return FCK.EditorDocument.selection.createRange().parentElement() ;
 	}
@@ -53,17 +57,32 @@
 {
 	FCK.Focus() ;
 	FCK.EditorDocument.selection.empty() ;
-	var oRange = FCK.EditorDocument.selection.createRange() ;
-	oRange.moveToElementText( node ) ;
+	var oRange ;
+	try
+	{
+		// Try to select the node as a control.
+		oRange = FCK.EditorDocument.body.createControlRange() ;
+		oRange.addElement( node ) ;
+	}
+	catch(e)
+	{
+		// If failed, select it as a text range.
+		oRange = FCK.EditorDocument.body.createTextRange() ;
+		oRange.moveToElementText( node ) ;
+	}
+
 	oRange.select() ;
 }
 
 FCKSelection.Collapse = function( toStart )
 {
 	FCK.Focus() ;
-	var oRange = FCK.EditorDocument.selection.createRange() ;
-	oRange.collapse( toStart == null || toStart === true ) ;
-	oRange.select() ;
+	if ( this.GetType() == 'Text' )
+	{
+		var oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange.collapse( toStart == null || toStart === true ) ;
+		oRange.select() ;
+	}
 }
 
 // The "nodeTagName" parameter must be Upper Case.
@@ -93,11 +112,14 @@
 // The "nodeTagName" parameter must be UPPER CASE.
 FCKSelection.MoveToAncestorNode = function( nodeTagName )
 {
-	var oNode ;
+	var oNode, oRange ;
 
+	if ( ! FCK.EditorDocument )
+		return null ;
+
 	if ( FCK.EditorDocument.selection.type == "Control" )
 	{
-		var oRange = FCK.EditorDocument.selection.createRange() ;
+		oRange = FCK.EditorDocument.selection.createRange() ;
 		for ( i = 0 ; i < oRange.length ; i++ )
 		{
 			if (oRange(i).parentNode)
@@ -109,7 +131,7 @@
 	}
 	else
 	{
-		var oRange  = FCK.EditorDocument.selection.createRange() ;
+		oRange  = FCK.EditorDocument.selection.createRange() ;
 		oNode = oRange.parentElement() ;
 	}
 
@@ -132,19 +154,5 @@
 
 	return oSel ;
 }
-// START iCM Modifications
-/*
-// Move the cursor position (the selection point) to a specific offset within a specific node
-// If no offset specified, the start of the node is assumed
-FCKSelection.SetCursorPosition = function ( oNode, nOffset )
-{
-	if ( typeof nOffset == "undefined" ) nOffset = 0 ;
 
-	FCK.Selection.SelectNode( oNode ) ; // Doesn't handle offsets currently but offset always zero at mo
-	FCK.Selection.Collapse( true ) ;
-	
-	oNode.scrollIntoView( false );	
-}
-*/
-// END iCM Modifications
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,32 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktablehandler.js
- * 	Manage table operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Manage table operations.
  */
 
 var FCKTableHandler = new Object() ;
 
 FCKTableHandler.InsertRow = function()
 {
-	// Get the row where the selection is placed in.	
-	var oRow = FCKSelection.MoveToAncestorNode("TR") ;
+	// Get the row where the selection is placed in.
+	var oRow = FCKSelection.MoveToAncestorNode( 'TR' ) ;
 	if ( !oRow ) return ;
 
 	// Create a clone of the row.
@@ -37,17 +41,17 @@
 
 FCKTableHandler.DeleteRows = function( row )
 {
-	// If no row has been passed as a parameer,
-	// then get the row where the selection is placed in.	
+	// If no row has been passed as a parameter,
+	// then get the row where the selection is placed in.
 	if ( !row )
-		row = FCKSelection.MoveToAncestorNode("TR") ;
+		row = FCKSelection.MoveToAncestorNode( 'TR' ) ;
 	if ( !row ) return ;
 
-	// Get the row's table.	
+	// Get the row's table.
 	var oTable = FCKTools.GetElementAscensor( row, 'TABLE' ) ;
 
 	// If just one row is available then delete the entire table.
-	if ( oTable.rows.length == 1 ) 
+	if ( oTable.rows.length == 1 )
 	{
 		FCKTableHandler.DeleteTable( oTable ) ;
 		return ;
@@ -60,24 +64,28 @@
 FCKTableHandler.DeleteTable = function( table )
 {
 	// If no table has been passed as a parameer,
-	// then get the table where the selection is placed in.	
+	// then get the table where the selection is placed in.
 	if ( !table )
-		table = FCKSelection.MoveToAncestorNode("TABLE") ;
+	{
+		table = FCKSelection.GetSelectedElement() ;
+		if ( !table || table.tagName != 'TABLE' )
+			table = FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
+	}
 	if ( !table ) return ;
 
 	// Delete the table.
+	FCKSelection.SelectNode( table ) ;
+	FCKSelection.Collapse();
 	table.parentNode.removeChild( table ) ;
 }
 
 FCKTableHandler.InsertColumn = function()
 {
 	// Get the cell where the selection is placed in.
-	var oCell = FCKSelection.MoveToAncestorNode("TD") ;
-	if ( !oCell )
-	    oCell =  FCKSelection.MoveToAncestorNode("TH") ;
+	var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
 
 	if ( !oCell ) return ;
-	
+
 	// Get the cell's table.
 	var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
 
@@ -89,16 +97,16 @@
 	{
 		// Get the row.
 		var oRow = oTable.rows[i] ;
-	
+
 		// If the row doens't have enought cells, ignore it.
 		if ( oRow.cells.length < iIndex )
 			continue ;
-		
+
 		oCell = oRow.cells[iIndex-1].cloneNode(false) ;
-		
+
 		if ( FCKBrowserInfo.IsGecko )
-			oCell.innerHTML = FCKBrowserInfo.IsGecko ? GECKO_BOGUS : '' ;
-		
+			oCell.innerHTML = GECKO_BOGUS ;
+
 		// Get the cell that is placed in the new cell place.
 		var oBaseCell = oRow.cells[iIndex] ;
 
@@ -113,10 +121,11 @@
 FCKTableHandler.DeleteColumns = function()
 {
 	// Get the cell where the selection is placed in.
-	var oCell = FCKSelection.MoveToAncestorNode("TD") ;
+	var oCell = FCKSelection.MoveToAncestorNode('TD') || FCKSelection.MoveToAncestorNode('TH') ;
+
 	if ( !oCell ) return ;
-	
-	// Get the cell's table.	
+
+	// Get the cell's table.
 	var oTable = FCKTools.GetElementAscensor( oCell, 'TABLE' ) ;
 
 	// Get the cell index.
@@ -128,7 +137,7 @@
 	{
 		// Get the row.
 		var oRow = oTable.rows[i] ;
-		
+
 		// If the cell to be removed is the first one and the row has just one cell.
 		if ( iIndex == 0 && oRow.cells.length == 1 )
 		{
@@ -136,7 +145,7 @@
 			FCKTableHandler.DeleteRows( oRow ) ;
 			continue ;
 		}
-		
+
 		// If the cell to be removed exists the delete it.
 		if ( oRow.cells[iIndex] )
 			oRow.removeChild( oRow.cells[iIndex] ) ;
@@ -146,17 +155,17 @@
 FCKTableHandler.InsertCell = function( cell )
 {
 	// Get the cell where the selection is placed in.
-	var oCell = cell ? cell : FCKSelection.MoveToAncestorNode("TD") ;
-	if ( !oCell ) return ;
+	var oCell = cell ? cell : FCKSelection.MoveToAncestorNode( 'TD' ) ;
+	if ( !oCell ) return null ;
 
 	// Create the new cell element to be added.
-	var oNewCell = FCK.EditorDocument.createElement("TD");
+	var oNewCell = FCK.EditorDocument.createElement( 'TD' ) ;
 	if ( FCKBrowserInfo.IsGecko )
 		oNewCell.innerHTML = GECKO_BOGUS ;
 //	oNewCell.innerHTML = "&nbsp;" ;
 
 	// If it is the last cell in the row.
-	if ( oCell.cellIndex == oCell.parentNode.cells.lenght - 1 )
+	if ( oCell.cellIndex == oCell.parentNode.cells.length - 1 )
 	{
 		// Add the new cell at the end of the row.
 		oCell.parentNode.appendChild( oNewCell ) ;
@@ -166,7 +175,7 @@
 		// Add the new cell before the next cell (after the active one).
 		oCell.parentNode.insertBefore( oNewCell, oCell.nextSibling ) ;
 	}
-	
+
 	return oNewCell ;
 }
 
@@ -187,7 +196,7 @@
 FCKTableHandler.DeleteCells = function()
 {
 	var aCells = FCKTableHandler.GetSelectedCells() ;
-	
+
 	for ( var i = aCells.length - 1 ; i >= 0  ; i-- )
 	{
 		FCKTableHandler.DeleteCell( aCells[i] ) ;
@@ -198,11 +207,11 @@
 {
 	// Get all selected cells.
 	var aCells = FCKTableHandler.GetSelectedCells() ;
-	
+
 	// At least 2 cells must be selected.
 	if ( aCells.length < 2 )
 		return ;
-		
+
 	// The merge can occour only if the selected cells are from the same row.
 	if ( aCells[0].parentNode != aCells[aCells.length-1].parentNode )
 		return ;
@@ -211,21 +220,40 @@
 	var iColSpan = isNaN( aCells[0].colSpan ) ? 1 : aCells[0].colSpan ;
 
 	var sHtml = '' ;
-	
-	for ( var i = aCells.length - 1 ; i > 0  ; i-- )
+	var oCellsContents = FCK.EditorDocument.createDocumentFragment() ;
+
+	for ( var i = aCells.length - 1 ; i >= 0 ; i-- )
 	{
-		iColSpan += isNaN( aCells[i].colSpan ) ? 1 : aCells[i].colSpan ;
-		
-		// Append the HTML of each cell.
-		sHtml = aCells[i].innerHTML + sHtml ;
-		
-		// Delete the cell.
-		FCKTableHandler.DeleteCell( aCells[i] ) ;
+		var eCell = aCells[i] ;
+
+		// Move its contents to the document fragment.
+		for ( var c = eCell.childNodes.length - 1 ; c >= 0 ; c-- )
+		{
+			var eChild = eCell.removeChild( eCell.childNodes[c] ) ;
+
+			if ( ( eChild.hasAttribute && eChild.hasAttribute('_moz_editor_bogus_node') ) || ( eChild.getAttribute && eChild.getAttribute( 'type', 2 ) == '_moz' ) )
+				continue ;
+
+				oCellsContents.insertBefore( eChild, oCellsContents.firstChild ) ;
+		}
+
+		if ( i > 0 )
+		{
+			// Accumulate the colspan of the cell.
+			iColSpan += isNaN( eCell.colSpan ) ? 1 : eCell.colSpan ;
+
+			// Delete the cell.
+			FCKTableHandler.DeleteCell( eCell ) ;
+		}
 	}
-	
+
 	// Set the innerHTML of the remaining cell (the first one).
 	aCells[0].colSpan = iColSpan ;
-	aCells[0].innerHTML += sHtml ;
+
+	if ( FCKBrowserInfo.IsGecko && oCellsContents.childNodes.length == 0 )
+		aCells[0].innerHTML = GECKO_BOGUS ;
+	else
+		aCells[0].appendChild( oCellsContents ) ;
 }
 
 FCKTableHandler.SplitCell = function()
@@ -234,12 +262,12 @@
 	var aCells = FCKTableHandler.GetSelectedCells() ;
 	if ( aCells.length != 1 )
 		return ;
-	
+
 	var aMap = this._CreateTableMap( aCells[0].parentNode.parentNode ) ;
 	var iCellIndex = FCKTableHandler._GetCellIndexSpan( aMap, aCells[0].parentNode.rowIndex , aCells[0] ) ;
-		
+
 	var aCollCells = this._GetCollumnCells( aMap, iCellIndex ) ;
-	
+
 	for ( var i = 0 ; i < aCollCells.length ; i++ )
 	{
 		if ( aCollCells[i] == aCells[0] )
@@ -263,15 +291,15 @@
 {
 	if ( tableMap.length < rowIndex + 1 )
 		return null ;
-	
+
 	var oRow = tableMap[ rowIndex ] ;
-	
+
 	for ( var c = 0 ; c < oRow.length ; c++ )
 	{
 		if ( oRow[c] == cell )
 			return c ;
 	}
-	
+
 	return null ;
 }
 
@@ -286,7 +314,7 @@
 		if ( oCell && ( aCollCells.length == 0 || aCollCells[ aCollCells.length - 1 ] != oCell ) )
 			aCollCells[ aCollCells.length ] = oCell ;
 	}
-	
+
 	return aCollCells ;
 }
 
@@ -299,28 +327,28 @@
 FCKTableHandler._CreateTableMap = function( table )
 {
 	var aRows = table.rows ;
-	
+
 	// Row and Collumn counters.
 	var r = -1 ;
-	
+
 	var aMap = new Array() ;
-	
+
 	for ( var i = 0 ; i < aRows.length ; i++ )
 	{
 		r++ ;
 		if ( !aMap[r] )
 			aMap[r] = new Array() ;
-		
+
 		var c = -1 ;
-		
+
 		for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
 		{
 			var oCell = aRows[i].cells[j] ;
-		
+
 			c++ ;
 			while ( aMap[r][c] )
 				c++ ;
-			
+
 			var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
 			var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
 
@@ -328,13 +356,13 @@
 			{
 				if ( !aMap[r + rs] )
 					aMap[r + rs] = new Array() ;
-					
+
 				for ( var cs = 0 ; cs < iColSpan ; cs++ )
 				{
 					aMap[r + rs][c + cs] = aRows[i].cells[j] ;
 				}
 			}
-			
+
 			c += iColSpan - 1 ;
 		}
 	}
@@ -347,11 +375,11 @@
 	var aCells = tr.cells ;
 
 	// Replace the contents of each cell with "nothing".
-	for ( var i = 0 ; i < aCells.length ; i++ ) 
+	for ( var i = 0 ; i < aCells.length ; i++ )
 	{
 		if ( FCKBrowserInfo.IsGecko )
 			aCells[i].innerHTML = GECKO_BOGUS ;
 		else
 			aCells[i].innerHTML = '' ;
 	}
-}
\ No newline at end of file
+}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktablehandler_gecko.js
- * 	Manage table operations (IE specific).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Manage table operations (IE specific).
  */
 
 FCKTableHandler.GetSelectedCells = function()
@@ -26,21 +30,26 @@
 	// If the selection is a text.
 	if ( oSelection.rangeCount == 1 && oSelection.anchorNode.nodeType == 3 )
 	{
-		var oParent = FCKTools.GetElementAscensor( oSelection.anchorNode, 'TD' ) ;
-		
+		var oParent = FCKTools.GetElementAscensor( oSelection.anchorNode, 'TD,TH' ) ;
+
 		if ( oParent )
 		{
 			aCells[0] = oParent ;
 			return aCells ;
-		}	
+		}
 	}
 
 	for ( var i = 0 ; i < oSelection.rangeCount ; i++ )
 	{
 		var oRange = oSelection.getRangeAt(i) ;
-		var oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
-		
-		if ( oCell.tagName == 'TD' )
+		var oCell ;
+
+		if ( oRange.startContainer.tagName.Equals( 'TD', 'TH' ) )
+			oCell = oRange.startContainer ;
+		else
+			oCell = oRange.startContainer.childNodes[ oRange.startOffset ] ;
+
+		if ( oCell.tagName.Equals( 'TD', 'TH' ) )
 			aCells[aCells.length] = oCell ;
 	}
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktablehandler_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktablehandler_ie.js
- * 	Manage table operations (IE specific).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Manage table operations (IE specific).
  */
 
 FCKTableHandler.GetSelectedCells = function()
@@ -22,14 +26,15 @@
 	var aCells = new Array() ;
 
 	var oRange = FCK.EditorDocument.selection.createRange() ;
-	var oParent = oRange.parentElement() ;
-	
-	if ( oParent && oParent.tagName == "TD" )
+//	var oParent = oRange.parentElement() ;
+	var oParent = FCKSelection.GetParentElement() ;
+
+	if ( oParent && oParent.tagName.Equals( 'TD', 'TH' ) )
 		aCells[0] = oParent ;
 	else
 	{
-		var oParent = FCKSelection.MoveToAncestorNode( "TABLE" ) ;
-		
+		oParent = FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
+
 		if ( oParent )
 		{
 			// Loops throw all cells checking if the cell is, or part of it, is inside the selection
@@ -38,8 +43,8 @@
 			{
 				var oCellRange = FCK.EditorDocument.selection.createRange() ;
 				oCellRange.moveToElementText( oParent.cells[i] ) ;
-				
-				if ( oRange.inRange( oCellRange ) 
+
+				if ( oRange.inRange( oCellRange )
 					|| ( oRange.compareEndPoints('StartToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('StartToEnd',oCellRange) <= 0 )
 					|| ( oRange.compareEndPoints('EndToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('EndToEnd',oCellRange) <= 0 ) )
 				{
@@ -48,6 +53,6 @@
 			}
 		}
 	}
-	
+
 	return aCells ;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbaritems.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbaritems.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbaritems.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbaritems.js
- * 	Toolbar items definitions.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Toolbar items definitions.
  */
 
 var FCKToolbarItems = new Object() ;
@@ -34,77 +38,77 @@
 
 	switch ( itemName )
 	{
-		case 'Source'			: oItem = new FCKToolbarButton( 'Source'	, FCKLang.Source, null, FCK_TOOLBARITEM_ICONTEXT, true, true ) ; break ;
-		case 'DocProps'			: oItem = new FCKToolbarButton( 'DocProps'	, FCKLang.DocProps ) ; break ;
-		case 'Templates'		: oItem = new FCKToolbarButton( 'Templates'	, FCKLang.Templates ) ; break ;
-		case 'Save'				: oItem = new FCKToolbarButton( 'Save'		, FCKLang.Save, null, null, true ) ; break ;
-		case 'NewPage'			: oItem = new FCKToolbarButton( 'NewPage'	, FCKLang.NewPage, null, null, true  ) ; break ;
-		case 'Preview'			: oItem = new FCKToolbarButton( 'Preview'	, FCKLang.Preview, null, null, true  ) ; break ;
-		case 'About'			: oItem = new FCKToolbarButton( 'About'		, FCKLang.About, null, null, true  ) ; break ;
+		case 'Source'			: oItem = new FCKToolbarButton( 'Source'	, FCKLang.Source, null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ; break ;
+		case 'DocProps'			: oItem = new FCKToolbarButton( 'DocProps'	, FCKLang.DocProps, null, null, null, null, 2 ) ; break ;
+		case 'Save'				: oItem = new FCKToolbarButton( 'Save'		, FCKLang.Save, null, null, true, null, 3 ) ; break ;
+		case 'NewPage'			: oItem = new FCKToolbarButton( 'NewPage'	, FCKLang.NewPage, null, null, true, null, 4  ) ; break ;
+		case 'Preview'			: oItem = new FCKToolbarButton( 'Preview'	, FCKLang.Preview, null, null, true, null, 5  ) ; break ;
+		case 'Templates'		: oItem = new FCKToolbarButton( 'Templates'	, FCKLang.Templates, null, null, null, null, 6 ) ; break ;
+		case 'About'			: oItem = new FCKToolbarButton( 'About'		, FCKLang.About, null, null, true, null, 47  ) ; break ;
 
-		case 'Cut'				: oItem = new FCKToolbarButton( 'Cut'		, FCKLang.Cut, null, null, false, true ) ; break ;
-		case 'Copy'				: oItem = new FCKToolbarButton( 'Copy'		, FCKLang.Copy, null, null, false, true ) ; break ;
-		case 'Paste'			: oItem = new FCKToolbarButton( 'Paste'		, FCKLang.Paste, null, null, false, true ) ; break ;
-		case 'PasteText'		: oItem = new FCKToolbarButton( 'PasteText'	, FCKLang.PasteText, null, null, false, true ) ; break ;
-		case 'PasteWord'		: oItem = new FCKToolbarButton( 'PasteWord'	, FCKLang.PasteWord, null, null, false, true ) ; break ;
-		case 'Print'			: oItem = new FCKToolbarButton( 'Print'		, FCKLang.Print, null, null, false, true ) ; break ;
-		case 'SpellCheck'		: oItem = new FCKToolbarButton( 'SpellCheck', FCKLang.SpellCheck ) ; break ;
-		case 'Undo'				: oItem = new FCKToolbarButton( 'Undo'		, FCKLang.Undo, null, null, false, true ) ; break ;
-		case 'Redo'				: oItem = new FCKToolbarButton( 'Redo'		, FCKLang.Redo, null, null, false, true ) ; break ;
-		case 'SelectAll'		: oItem = new FCKToolbarButton( 'SelectAll'	, FCKLang.SelectAll ) ; break ;
-		case 'RemoveFormat'		: oItem = new FCKToolbarButton( 'RemoveFormat', FCKLang.RemoveFormat, null, null, false, true ) ; break ;
+		case 'Cut'				: oItem = new FCKToolbarButton( 'Cut'		, FCKLang.Cut, null, null, false, true, 7 ) ; break ;
+		case 'Copy'				: oItem = new FCKToolbarButton( 'Copy'		, FCKLang.Copy, null, null, false, true, 8 ) ; break ;
+		case 'Paste'			: oItem = new FCKToolbarButton( 'Paste'		, FCKLang.Paste, null, null, false, true, 9 ) ; break ;
+		case 'PasteText'		: oItem = new FCKToolbarButton( 'PasteText'	, FCKLang.PasteText, null, null, false, true, 10 ) ; break ;
+		case 'PasteWord'		: oItem = new FCKToolbarButton( 'PasteWord'	, FCKLang.PasteWord, null, null, false, true, 11 ) ; break ;
+		case 'Print'			: oItem = new FCKToolbarButton( 'Print'		, FCKLang.Print, null, null, false, true, 12 ) ; break ;
+		case 'SpellCheck'		: oItem = new FCKToolbarButton( 'SpellCheck', FCKLang.SpellCheck, null, null, null, null, 13 ) ; break ;
+		case 'Undo'				: oItem = new FCKToolbarButton( 'Undo'		, FCKLang.Undo, null, null, false, true, 14 ) ; break ;
+		case 'Redo'				: oItem = new FCKToolbarButton( 'Redo'		, FCKLang.Redo, null, null, false, true, 15 ) ; break ;
+		case 'SelectAll'		: oItem = new FCKToolbarButton( 'SelectAll'	, FCKLang.SelectAll, null, null, true, null, 18 ) ; break ;
+		case 'RemoveFormat'		: oItem = new FCKToolbarButton( 'RemoveFormat', FCKLang.RemoveFormat, null, null, false, true, 19 ) ; break ;
+		case 'FitWindow'		: oItem = new FCKToolbarButton( 'FitWindow'	, FCKLang.FitWindow, null, null, true, true, 66 ) ; break ;
 
-		case 'Bold'				: oItem = new FCKToolbarButton( 'Bold'		, FCKLang.Bold, null, null, false, true ) ; break ;
-		case 'Italic'			: oItem = new FCKToolbarButton( 'Italic'	, FCKLang.Italic, null, null, false, true  ) ; break ;
-		case 'Underline'		: oItem = new FCKToolbarButton( 'Underline'	, FCKLang.Underline, null, null, false, true ) ; break ;
-		case 'StrikeThrough'	: oItem = new FCKToolbarButton( 'StrikeThrough'	, FCKLang.StrikeThrough, null, null, false, true ) ; break ;
-		case 'Subscript'		: oItem = new FCKToolbarButton( 'Subscript'		, FCKLang.Subscript, null, null, false, true ) ; break ;
-		case 'Superscript'		: oItem = new FCKToolbarButton( 'Superscript'	, FCKLang.Superscript, null, null, false, true ) ; break ;
+		case 'Bold'				: oItem = new FCKToolbarButton( 'Bold'		, FCKLang.Bold, null, null, false, true, 20 ) ; break ;
+		case 'Italic'			: oItem = new FCKToolbarButton( 'Italic'	, FCKLang.Italic, null, null, false, true, 21 ) ; break ;
+		case 'Underline'		: oItem = new FCKToolbarButton( 'Underline'	, FCKLang.Underline, null, null, false, true, 22 ) ; break ;
+		case 'StrikeThrough'	: oItem = new FCKToolbarButton( 'StrikeThrough'	, FCKLang.StrikeThrough, null, null, false, true, 23 ) ; break ;
+		case 'Subscript'		: oItem = new FCKToolbarButton( 'Subscript'		, FCKLang.Subscript, null, null, false, true, 24 ) ; break ;
+		case 'Superscript'		: oItem = new FCKToolbarButton( 'Superscript'	, FCKLang.Superscript, null, null, false, true, 25 ) ; break ;
 
-		case 'OrderedList'		: oItem = new FCKToolbarButton( 'InsertOrderedList'		, FCKLang.NumberedListLbl, FCKLang.NumberedList, null, false, true ) ; break ;
-		case 'UnorderedList'	: oItem = new FCKToolbarButton( 'InsertUnorderedList'	, FCKLang.BulletedListLbl, FCKLang.BulletedList, null, false, true ) ; break ;
-		case 'Outdent'			: oItem = new FCKToolbarButton( 'Outdent'	, FCKLang.DecreaseIndent, null, null, false, true ) ; break ;
-		case 'Indent'			: oItem = new FCKToolbarButton( 'Indent'	, FCKLang.IncreaseIndent, null, null, false, true ) ; break ;
+		case 'OrderedList'		: oItem = new FCKToolbarButton( 'InsertOrderedList'		, FCKLang.NumberedListLbl, FCKLang.NumberedList, null, false, true, 26 ) ; break ;
+		case 'UnorderedList'	: oItem = new FCKToolbarButton( 'InsertUnorderedList'	, FCKLang.BulletedListLbl, FCKLang.BulletedList, null, false, true, 27 ) ; break ;
+		case 'Outdent'			: oItem = new FCKToolbarButton( 'Outdent'	, FCKLang.DecreaseIndent, null, null, false, true, 28 ) ; break ;
+		case 'Indent'			: oItem = new FCKToolbarButton( 'Indent'	, FCKLang.IncreaseIndent, null, null, false, true, 29 ) ; break ;
 
-		case 'Link'				: oItem = new FCKToolbarButton( 'Link'		, FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true ) ; break ;
-		case 'Unlink'			: oItem = new FCKToolbarButton( 'Unlink'	, FCKLang.RemoveLink, null, null, false, true ) ; break ;
-		case 'Anchor'			: oItem = new FCKToolbarButton( 'Anchor'	, FCKLang.Anchor ) ; break ;
+		case 'Link'				: oItem = new FCKToolbarButton( 'Link'		, FCKLang.InsertLinkLbl, FCKLang.InsertLink, null, false, true, 34 ) ; break ;
+		case 'Unlink'			: oItem = new FCKToolbarButton( 'Unlink'	, FCKLang.RemoveLink, null, null, false, true, 35 ) ; break ;
+		case 'Anchor'			: oItem = new FCKToolbarButton( 'Anchor'	, FCKLang.Anchor, null, null, null, null, 36 ) ; break ;
 
-		case 'Image'			: oItem = new FCKToolbarButton( 'Image'			, FCKLang.InsertImageLbl, FCKLang.InsertImage ) ; break ;
-		case 'Flash'			: oItem = new FCKToolbarButton( 'Flash'			, FCKLang.InsertFlashLbl, FCKLang.InsertFlash ) ; break ;
-		case 'Table'			: oItem = new FCKToolbarButton( 'Table'			, FCKLang.InsertTableLbl, FCKLang.InsertTable ) ; break ;
-		case 'SpecialChar'		: oItem = new FCKToolbarButton( 'SpecialChar'	, FCKLang.InsertSpecialCharLbl, FCKLang.InsertSpecialChar ) ; break ;
-		case 'Smiley'			: oItem = new FCKToolbarButton( 'Smiley'		, FCKLang.InsertSmileyLbl, FCKLang.InsertSmiley ) ; break ;
-		case 'PageBreak'		: oItem = new FCKToolbarButton( 'PageBreak'		, FCKLang.PageBreakLbl, FCKLang.PageBreak ) ; break ;
-		case 'UniversalKey'		: oItem = new FCKToolbarButton( 'UniversalKey'	, FCKLang.UniversalKeyboard ) ; break ;
+		case 'Image'			: oItem = new FCKToolbarButton( 'Image'			, FCKLang.InsertImageLbl, FCKLang.InsertImage, null, false, true, 37 ) ; break ;
+		case 'Flash'			: oItem = new FCKToolbarButton( 'Flash'			, FCKLang.InsertFlashLbl, FCKLang.InsertFlash, null, false, true, 38 ) ; break ;
+		case 'Table'			: oItem = new FCKToolbarButton( 'Table'			, FCKLang.InsertTableLbl, FCKLang.InsertTable, null, false, true, 39 ) ; break ;
+		case 'SpecialChar'		: oItem = new FCKToolbarButton( 'SpecialChar'	, FCKLang.InsertSpecialCharLbl, FCKLang.InsertSpecialChar, null, false, true, 42 ) ; break ;
+		case 'Smiley'			: oItem = new FCKToolbarButton( 'Smiley'		, FCKLang.InsertSmileyLbl, FCKLang.InsertSmiley, null, false, true, 41 ) ; break ;
+		case 'PageBreak'		: oItem = new FCKToolbarButton( 'PageBreak'		, FCKLang.PageBreakLbl, FCKLang.PageBreak, null, false, true, 43 ) ; break ;
 
-		case 'Rule'				: oItem = new FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, FCKLang.InsertLine, null, false, true ) ; break ;
+		case 'Rule'				: oItem = new FCKToolbarButton( 'InsertHorizontalRule', FCKLang.InsertLineLbl, FCKLang.InsertLine, null, false, true, 40 ) ; break ;
 
-		case 'JustifyLeft'		: oItem = new FCKToolbarButton( 'JustifyLeft'	, FCKLang.LeftJustify, null, null, false, true ) ; break ;
-		case 'JustifyCenter'	: oItem = new FCKToolbarButton( 'JustifyCenter'	, FCKLang.CenterJustify, null, null, false, true ) ; break ;
-		case 'JustifyRight'		: oItem = new FCKToolbarButton( 'JustifyRight'	, FCKLang.RightJustify, null, null, false, true ) ; break ;
-		case 'JustifyFull'		: oItem = new FCKToolbarButton( 'JustifyFull'	, FCKLang.BlockJustify, null, null, false, true ) ; break ;
+		case 'JustifyLeft'		: oItem = new FCKToolbarButton( 'JustifyLeft'	, FCKLang.LeftJustify, null, null, false, true, 30 ) ; break ;
+		case 'JustifyCenter'	: oItem = new FCKToolbarButton( 'JustifyCenter'	, FCKLang.CenterJustify, null, null, false, true, 31 ) ; break ;
+		case 'JustifyRight'		: oItem = new FCKToolbarButton( 'JustifyRight'	, FCKLang.RightJustify, null, null, false, true, 32 ) ; break ;
+		case 'JustifyFull'		: oItem = new FCKToolbarButton( 'JustifyFull'	, FCKLang.BlockJustify, null, null, false, true, 33 ) ; break ;
 
 		case 'Style'			: oItem = new FCKToolbarStyleCombo() ; break ;
 		case 'FontName'			: oItem = new FCKToolbarFontsCombo() ; break ;
 		case 'FontSize'			: oItem = new FCKToolbarFontSizeCombo() ; break ;
 		case 'FontFormat'		: oItem = new FCKToolbarFontFormatCombo() ; break ;
 
-		case 'TextColor'		: oItem = new FCKToolbarPanelButton( 'TextColor', FCKLang.TextColor ) ; break ;
-		case 'BGColor'			: oItem = new FCKToolbarPanelButton( 'BGColor'	, FCKLang.BGColor ) ; break ;
+		case 'TextColor'		: oItem = new FCKToolbarPanelButton( 'TextColor', FCKLang.TextColor, null, null, 45 ) ; break ;
+		case 'BGColor'			: oItem = new FCKToolbarPanelButton( 'BGColor'	, FCKLang.BGColor, null, null, 46 ) ; break ;
 
-		case 'Find'				: oItem = new FCKToolbarButton( 'Find'		, FCKLang.Find ) ; break ;
-		case 'Replace'			: oItem = new FCKToolbarButton( 'Replace'	, FCKLang.Replace ) ; break ;
+		case 'Find'				: oItem = new FCKToolbarButton( 'Find'		, FCKLang.Find, null, null, null, null, 16 ) ; break ;
+		case 'Replace'			: oItem = new FCKToolbarButton( 'Replace'	, FCKLang.Replace, null, null, null, null, 17 ) ; break ;
 
-		case 'Form'				: oItem = new FCKToolbarButton( 'Form'			, FCKLang.Form ) ; break ;
-		case 'Checkbox'			: oItem = new FCKToolbarButton( 'Checkbox'		, FCKLang.Checkbox ) ; break ;
-		case 'Radio'			: oItem = new FCKToolbarButton( 'Radio'			, FCKLang.RadioButton ) ; break ;
-		case 'TextField'		: oItem = new FCKToolbarButton( 'TextField'		, FCKLang.TextField ) ; break ;
-		case 'Textarea'			: oItem = new FCKToolbarButton( 'Textarea'		, FCKLang.Textarea ) ; break ;
-		case 'HiddenField'		: oItem = new FCKToolbarButton( 'HiddenField'	, FCKLang.HiddenField ) ; break ;
-		case 'Button'			: oItem = new FCKToolbarButton( 'Button'		, FCKLang.Button ) ; break ;
-		case 'Select'			: oItem = new FCKToolbarButton( 'Select'		, FCKLang.SelectionField ) ; break ;
-		case 'ImageButton'		: oItem = new FCKToolbarButton( 'ImageButton'	, FCKLang.ImageButton ) ; break ;
+		case 'Form'				: oItem = new FCKToolbarButton( 'Form'			, FCKLang.Form, null, null, null, null, 48 ) ; break ;
+		case 'Checkbox'			: oItem = new FCKToolbarButton( 'Checkbox'		, FCKLang.Checkbox, null, null, null, null, 49 ) ; break ;
+		case 'Radio'			: oItem = new FCKToolbarButton( 'Radio'			, FCKLang.RadioButton, null, null, null, null, 50 ) ; break ;
+		case 'TextField'		: oItem = new FCKToolbarButton( 'TextField'		, FCKLang.TextField, null, null, null, null, 51 ) ; break ;
+		case 'Textarea'			: oItem = new FCKToolbarButton( 'Textarea'		, FCKLang.Textarea, null, null, null, null, 52 ) ; break ;
+		case 'HiddenField'		: oItem = new FCKToolbarButton( 'HiddenField'	, FCKLang.HiddenField, null, null, null, null, 56 ) ; break ;
+		case 'Button'			: oItem = new FCKToolbarButton( 'Button'		, FCKLang.Button, null, null, null, null, 54 ) ; break ;
+		case 'Select'			: oItem = new FCKToolbarButton( 'Select'		, FCKLang.SelectionField, null, null, null, null, 53 ) ; break ;
+		case 'ImageButton'		: oItem = new FCKToolbarButton( 'ImageButton'	, FCKLang.ImageButton, null, null, null, null, 55 ) ; break ;
 
 		default:
 			alert( FCKLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbarset.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbarset.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktoolbarset.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,92 +1,246 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktoolbarset.js
- * 	Defines the FCKToolbarSet object that is used to load and draw the 
- * 	toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKToolbarSet object that is used to load and draw the
+ * toolbar.
  */
 
-var FCKToolbarSet = FCK.ToolbarSet = new Object() ;
+function FCKToolbarSet_Create( overhideLocation )
+{
+	var oToolbarSet ;
 
-document.getElementById( 'ExpandHandle' ).title		= FCKLang.ToolbarExpand ;
-document.getElementById( 'CollapseHandle' ).title	= FCKLang.ToolbarCollapse ;
+	var sLocation = overhideLocation || FCKConfig.ToolbarLocation ;
+	switch ( sLocation )
+	{
+		case 'In' :
+				document.getElementById( 'xToolbarRow' ).style.display = '' ;
+				oToolbarSet = new FCKToolbarSet( document ) ;
+			break ;
 
-FCKToolbarSet.Toolbars = new Array() ;
+//		case 'OutTop' :
+			// Not supported.
 
-// Array of toolbat items that are active only on WYSIWYG mode.
-FCKToolbarSet.ItemsWysiwygOnly = new Array() ;
+		default :
+			FCK.Events.AttachEvent( 'OnBlur', FCK_OnBlur ) ;
+			FCK.Events.AttachEvent( 'OnFocus', FCK_OnFocus ) ;
 
-// Array of toolbar items that are sensitive to the cursor position.
-FCKToolbarSet.ItemsContextSensitive = new Array() ;
+			var eToolbarTarget ;
 
-FCKToolbarSet.Expand = function()
-{
-	document.getElementById( 'Collapsed' ).style.display = 'none' ;
-	document.getElementById( 'Expanded' ).style.display = '' ;
-	
-	if ( ! FCKBrowserInfo.IsIE )
-	{
-		// I had to use "setTimeout" because Gecko was not responding in a right
-		// way when calling window.onresize() directly.
-		window.setTimeout( "window.onresize()", 1 ) ;
+			// Out:[TargetWindow]([TargetId])
+			var oOutMatch = sLocation.match( /^Out:(.+)\((\w+)\)$/ ) ;
+			if ( oOutMatch )
+			{
+				eToolbarTarget = eval( 'parent.' + oOutMatch[1] ).document.getElementById( oOutMatch[2] ) ;
+			}
+			else
+			{
+				// Out:[TargetId]
+				oOutMatch = sLocation.match( /^Out:(\w+)$/ ) ;
+				if ( oOutMatch )
+					eToolbarTarget = parent.document.getElementById( oOutMatch[1] ) ;
+			}
+
+			if ( !eToolbarTarget )
+			{
+				alert( 'Invalid value for "ToolbarLocation"' ) ;
+				return this._Init( 'In' ) ;
+			}
+
+			// If it is a shared toolbar, it may be already available in the target element.
+			oToolbarSet = eToolbarTarget.__FCKToolbarSet ;
+			if ( oToolbarSet )
+				break ;
+
+			// Create the IFRAME that will hold the toolbar inside the target element.
+			var eToolbarIFrame = FCKTools.GetElementDocument( eToolbarTarget ).createElement( 'iframe' ) ;
+			eToolbarIFrame.frameBorder = 0 ;
+			eToolbarIFrame.width = '100%' ;
+			eToolbarIFrame.height = '10' ;
+			eToolbarTarget.appendChild( eToolbarIFrame ) ;
+			eToolbarIFrame.unselectable = 'on' ;
+
+			// Write the basic HTML for the toolbar (copy from the editor main page).
+			var eTargetDocument = eToolbarIFrame.contentWindow.document ;
+			eTargetDocument.open() ;
+			eTargetDocument.write( '<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">' + document.getElementById( 'xToolbarSpace' ).innerHTML + '</body></html>' ) ;
+			eTargetDocument.close() ;
+
+			eTargetDocument.oncontextmenu = FCKTools.CancelEvent ;
+
+			// Load external resources (must be done here, otherwise Firefox will not
+			// have the document DOM ready to be used right away.
+			FCKTools.AppendStyleSheet( eTargetDocument, FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+			oToolbarSet = eToolbarTarget.__FCKToolbarSet = new FCKToolbarSet( eTargetDocument ) ;
+			oToolbarSet._IFrame = eToolbarIFrame ;
+
+			if ( FCK.IECleanup )
+				FCK.IECleanup.AddItem( eToolbarTarget, FCKToolbarSet_Target_Cleanup ) ;
 	}
+
+	oToolbarSet.CurrentInstance = FCK ;
+
+	FCK.AttachToOnSelectionChange( oToolbarSet.RefreshItemsState ) ;
+
+	return oToolbarSet ;
 }
 
-FCKToolbarSet.Collapse = function()
+function FCK_OnBlur( editorInstance )
 {
-	document.getElementById( 'Collapsed' ).style.display = '' ;
-	document.getElementById( 'Expanded' ).style.display = 'none' ;
-	
-	if ( ! FCKBrowserInfo.IsIE )
-	{
-		// I had to use "setTimeout" because Gecko was not responding in a right
-		// way when calling window.onresize() directly.
-		window.setTimeout( "window.onresize()", 1 ) ;
-	}
+	var eToolbarSet = editorInstance.ToolbarSet ;
+
+	if ( eToolbarSet.CurrentInstance == editorInstance )
+		eToolbarSet.Disable() ;
 }
 
-FCKToolbarSet.Restart = function()
+function FCK_OnFocus( editorInstance )
 {
+	var oToolbarset = editorInstance.ToolbarSet ;
+	var oInstance = editorInstance || FCK ;
+
+	// Unregister the toolbar window from the current instance.
+	oToolbarset.CurrentInstance.FocusManager.RemoveWindow( oToolbarset._IFrame.contentWindow ) ;
+
+	// Set the new current instance.
+	oToolbarset.CurrentInstance = oInstance ;
+
+	// Register the toolbar window in the current instance.
+	oInstance.FocusManager.AddWindow( oToolbarset._IFrame.contentWindow, true ) ;
+
+	oToolbarset.Enable() ;
+}
+
+function FCKToolbarSet_Cleanup()
+{
+	this._TargetElement = null ;
+	this._IFrame = null ;
+}
+
+function FCKToolbarSet_Target_Cleanup()
+{
+	this.__FCKToolbarSet = null ;
+}
+
+var FCKToolbarSet = function( targetDocument )
+{
+	this._Document = targetDocument ;
+
+	// Get the element that will hold the elements structure.
+	this._TargetElement	= targetDocument.getElementById( 'xToolbar' ) ;
+
+	// Setup the expand and collapse handlers.
+	var eExpandHandle	= targetDocument.getElementById( 'xExpandHandle' ) ;
+	var eCollapseHandle	= targetDocument.getElementById( 'xCollapseHandle' ) ;
+
+	eExpandHandle.title		= FCKLang.ToolbarExpand ;
+	eExpandHandle.onclick	= FCKToolbarSet_Expand_OnClick ;
+
+	eCollapseHandle.title	= FCKLang.ToolbarCollapse ;
+	eCollapseHandle.onclick	= FCKToolbarSet_Collapse_OnClick ;
+
+	// Set the toolbar state at startup.
 	if ( !FCKConfig.ToolbarCanCollapse || FCKConfig.ToolbarStartExpanded )
 		this.Expand() ;
 	else
 		this.Collapse() ;
-	
-	document.getElementById( 'CollapseHandle' ).style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
+
+	// Enable/disable the collapse handler
+	eCollapseHandle.style.display = FCKConfig.ToolbarCanCollapse ? '' : 'none' ;
+
+	if ( FCKConfig.ToolbarCanCollapse )
+		eCollapseHandle.style.display = '' ;
+	else
+		targetDocument.getElementById( 'xTBLeftBorder' ).style.display = '' ;
+
+	// Set the default properties.
+	this.Toolbars = new Array() ;
+	this.IsLoaded = false ;
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( this, FCKToolbarSet_Cleanup ) ;
 }
 
-FCKToolbarSet.Load = function( toolbarSetName )
+function FCKToolbarSet_Expand_OnClick()
 {
-	this.DOMElement = document.getElementById( 'eToolbar' ) ;
-	
+	FCK.ToolbarSet.Expand() ;
+}
+
+function FCKToolbarSet_Collapse_OnClick()
+{
+	FCK.ToolbarSet.Collapse() ;
+}
+
+FCKToolbarSet.prototype.Expand = function()
+{
+	this._ChangeVisibility( false ) ;
+}
+
+FCKToolbarSet.prototype.Collapse = function()
+{
+	this._ChangeVisibility( true ) ;
+}
+
+FCKToolbarSet.prototype._ChangeVisibility = function( collapse )
+{
+	this._Document.getElementById( 'xCollapsed' ).style.display = collapse ? '' : 'none' ;
+	this._Document.getElementById( 'xExpanded' ).style.display = collapse ? 'none' : '' ;
+
+	if ( FCKBrowserInfo.IsGecko )
+	{
+		// I had to use "setTimeout" because Gecko was not responding in a right
+		// way when calling window.onresize() directly.
+		FCKTools.RunFunction( window.onresize ) ;
+	}
+}
+
+FCKToolbarSet.prototype.Load = function( toolbarSetName )
+{
+	this.Name = toolbarSetName ;
+
+	this.Items = new Array() ;
+
+	// Reset the array of toolbat items that are active only on WYSIWYG mode.
+	this.ItemsWysiwygOnly = new Array() ;
+
+	// Reset the array of toolbar items that are sensitive to the cursor position.
+	this.ItemsContextSensitive = new Array() ;
+
+	// Cleanup the target element.
+	this._TargetElement.innerHTML = '' ;
+
 	var ToolbarSet = FCKConfig.ToolbarSets[toolbarSetName] ;
-	
-	if (! ToolbarSet)
+
+	if ( !ToolbarSet )
 	{
 		alert( FCKLang.UnknownToolbarSet.replace( /%1/g, toolbarSetName ) ) ;
 		return ;
 	}
-	
+
 	this.Toolbars = new Array() ;
-	
-	for ( var x = 0 ; x < ToolbarSet.length ; x++ ) 
+
+	for ( var x = 0 ; x < ToolbarSet.length ; x++ )
 	{
 		var oToolbarItems = ToolbarSet[x] ;
-		
+
 		var oToolbar ;
-		
+
 		if ( typeof( oToolbarItems ) == 'string' )
 		{
 			if ( oToolbarItems == '/' )
@@ -95,11 +249,11 @@
 		else
 		{
 			oToolbar = new FCKToolbar() ;
-			
-			for ( var j = 0 ; j < oToolbarItems.length ; j++ ) 
+
+			for ( var j = 0 ; j < oToolbarItems.length ; j++ )
 			{
 				var sItem = oToolbarItems[j] ;
-				
+
 				if ( sItem == '-')
 					oToolbar.AddSeparator() ;
 				else
@@ -109,58 +263,95 @@
 					{
 						oToolbar.AddItem( oItem ) ;
 
+						this.Items.push( oItem ) ;
+
 						if ( !oItem.SourceView )
-							this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length] = oItem ;
-						
+							this.ItemsWysiwygOnly.push( oItem ) ;
+
 						if ( oItem.ContextSensitive )
-							this.ItemsContextSensitive[this.ItemsContextSensitive.length] = oItem ;
+							this.ItemsContextSensitive.push( oItem ) ;
 					}
 				}
 			}
-			
-			oToolbar.AddTerminator() ;
+
+			// oToolbar.AddTerminator() ;
 		}
 
+		oToolbar.Create( this._TargetElement ) ;
+
 		this.Toolbars[ this.Toolbars.length ] = oToolbar ;
 	}
+
+	FCKTools.DisableSelection( this._Document.getElementById( 'xCollapseHandle' ).parentNode ) ;
+
+	if ( FCK.Status != FCK_STATUS_COMPLETE )
+		FCK.Events.AttachEvent( 'OnStatusChange', this.RefreshModeState ) ;
+	else
+		this.RefreshModeState() ;
+
+	this.IsLoaded = true ;
+	this.IsEnabled = true ;
+
+	FCKTools.RunFunction( this.OnLoad ) ;
 }
 
-FCKToolbarSet.RefreshModeState = function()
+FCKToolbarSet.prototype.Enable = function()
 {
+	if ( this.IsEnabled )
+		return ;
+
+	this.IsEnabled = true ;
+
+	var aItems = this.Items ;
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].RefreshState() ;
+}
+
+FCKToolbarSet.prototype.Disable = function()
+{
+	if ( !this.IsEnabled )
+		return ;
+
+	this.IsEnabled = false ;
+
+	var aItems = this.Items ;
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].Disable() ;
+}
+
+FCKToolbarSet.prototype.RefreshModeState = function( editorInstance )
+{
+	if ( FCK.Status != FCK_STATUS_COMPLETE )
+		return ;
+
+	var oToolbarSet = editorInstance ? editorInstance.ToolbarSet : this ;
+	var aItems = oToolbarSet.ItemsWysiwygOnly ;
+
 	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
 	{
 		// Enable all buttons that are available on WYSIWYG mode only.
-		for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
-			FCKToolbarSet.ItemsWysiwygOnly[i].Enable() ;
+		for ( var i = 0 ; i < aItems.length ; i++ )
+			aItems[i].Enable() ;
 
 		// Refresh the buttons state.
-		FCKToolbarSet.RefreshItemsState() ;
+		oToolbarSet.RefreshItemsState( editorInstance ) ;
 	}
 	else
 	{
 		// Refresh the buttons state.
-		FCKToolbarSet.RefreshItemsState() ;
+		oToolbarSet.RefreshItemsState( editorInstance ) ;
 
 		// Disable all buttons that are available on WYSIWYG mode only.
-		for ( var i = 0 ; i < FCKToolbarSet.ItemsWysiwygOnly.length ; i++ )
-			FCKToolbarSet.ItemsWysiwygOnly[i].Disable() ;
-	}	
+		for ( var j = 0 ; j < aItems.length ; j++ )
+			aItems[j].Disable() ;
+	}
 }
 
-FCKToolbarSet.RefreshItemsState = function()
+FCKToolbarSet.prototype.RefreshItemsState = function( editorInstance )
 {
 
-	for ( var i = 0 ; i < FCKToolbarSet.ItemsContextSensitive.length ; i++ )
-		FCKToolbarSet.ItemsContextSensitive[i].RefreshState() ;
-/*
-	TODO: Delete this commented block on stable version.
-	for ( var i = 0 ; i < FCKToolbarSet.Toolbars.length ; i++ )
-	{
-		var oToolbar = FCKToolbarSet.Toolbars[i] ;
-		for ( var j = 0 ; j < oToolbar.Items.length ; j++ )
-		{
-			oToolbar.Items[j].RefreshState() ;
-		}
-	}
-*/
+	var aItems = ( editorInstance ? editorInstance.ToolbarSet : this ).ItemsContextSensitive ;
+
+	for ( var i = 0 ; i < aItems.length ; i++ )
+		aItems[i].RefreshState() ;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,177 +1,166 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktools.js
- * 	Utility functions.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions.
  */
 
+// Constant for the Gecko Bogus Node.
+//var GECKO_BOGUS = '<br _moz_editor_bogus_node="TRUE">' ;
+var GECKO_BOGUS = '<br type="_moz">' ;
+
 var FCKTools = new Object() ;
 
-//**
-// FCKTools.GetLinkedFieldValue: Gets the value of the hidden INPUT element
-// that is associated to the editor. This element has its ID set to the 
-// editor's instance name so the user reffers to the instance name when getting
-// the posted data.
-FCKTools.GetLinkedFieldValue = function()
+FCKTools.CreateBogusBR = function( targetDocument )
 {
-	return FCK.LinkedField.value ;
+	var eBR = targetDocument.createElement( 'br' ) ;
+//	eBR.setAttribute( '_moz_editor_bogus_node', 'TRUE' ) ;
+	eBR.setAttribute( 'type', '_moz' ) ;
+	return eBR ;
 }
 
-//**
-// FCKTools.AttachToLinkedFieldFormSubmit: attaches a function call to the 
-// submit event of the linked field form. This function us generally used to
-// update the linked field value before submitting the form.
-FCKTools.AttachToLinkedFieldFormSubmit = function( functionPointer )
+// Returns a reference to the appended style sheet or an array with all the appended references
+FCKTools.AppendStyleSheet = function( documentElement, cssFileUrlOrArray )
 {
-	// Gets the linked field form
-	var oForm = FCK.LinkedField.form ;
-	
-	// Return now if no form is available
-	if (!oForm) return ;
-
-	// Attaches the functionPointer call to the onsubmit event
-	if ( FCKBrowserInfo.IsIE )
-		oForm.attachEvent( "onsubmit", functionPointer ) ;
+	if ( typeof( cssFileUrlOrArray ) == 'string' )
+		return this._AppendStyleSheet( documentElement, cssFileUrlOrArray ) ;
 	else
-		oForm.addEventListener( 'submit', functionPointer, true ) ;
-	
-	//**
-	// Attaches the functionPointer call to the submit method 
-	// This is done because IE doesn't fire onsubmit when the submit method is called
-	// BEGIN --
-	
-	// Creates a Array in the form object that will hold all Attached function call
-	// (in the case there are more than one editor in the same page)
-	if (! oForm.updateFCKeditor) oForm.updateFCKeditor = new Array() ;
-	
-	// Adds the function pointer to the array of functions to call when "submit" is called
-	oForm.updateFCKeditor[oForm.updateFCKeditor.length] = functionPointer ;
-
-	// Switches the original submit method with a new one that first call all functions
-	// on the above array and the call the original submit
-	// IE sees it oForm.submit function as an 'object'.
-	if (! oForm.originalSubmit && ( typeof( oForm.submit ) == 'function' || ( !oForm.submit.tagName && !oForm.submit.length ) ) )
 	{
-		// Creates a copy of the original submit
-		oForm.originalSubmit = oForm.submit ;
-		
-		// Creates our replacement for the submit
-		oForm.submit = FCKTools_SubmitReplacer ;
+		var aStyleSheeArray = new Array() ;
+
+		for ( var i = 0 ; i < cssFileUrlOrArray.length ; i++ )
+			aStyleSheeArray.push(this._AppendStyleSheet( documentElement, cssFileUrlOrArray[i] ) ) ;
+
+		return aStyleSheeArray ;
 	}
-	// END --
 }
 
-function FCKTools_SubmitReplacer()
+FCKTools.GetElementDocument = function ( element )
 {
-	if (this.updateFCKeditor)
-	{
-		// Calls all functions in the functions array
-		for (var i = 0 ; i < this.updateFCKeditor.length ; i++)
-			this.updateFCKeditor[i]() ;
-	}
-	// Calls the original "submit"
-	this.originalSubmit() ;
+	return element.ownerDocument || element.document ;
 }
 
-//**
-// FCKTools.AddSelectOption: Adds a option to a SELECT element.
-FCKTools.AddSelectOption = function( targetDocument, selectElement, optionText, optionValue )
+// Get the window object where the element is placed in.
+FCKTools.GetElementWindow = function( element )
 {
-	var oOption = targetDocument.createElement("OPTION") ;
+	return this.GetDocumentWindow( this.GetElementDocument( element ) ) ;
+}
 
-	oOption.text	= optionText ;
-	oOption.value	= optionValue ;	
+FCKTools.GetDocumentWindow = function( document )
+{
+	// With Safari, there is not way to retrieve the window from the document, so we must fix it.
+	if ( FCKBrowserInfo.IsSafari && !document.parentWindow )
+		this.FixDocumentParentWindow( window.top ) ;
 
-	selectElement.options.add(oOption) ;
-
-	return oOption ;
+	return document.parentWindow || document.defaultView ;
 }
 
-FCKTools.RemoveAllSelectOptions = function( selectElement )
+/*
+	This is a Safari specific function that fix the reference to the parent
+	window from the document object.
+*/
+FCKTools.FixDocumentParentWindow = function( targetWindow )
 {
-	for ( var i = selectElement.options.length - 1 ; i >= 0 ; i-- )
-	{
-		selectElement.options.remove(i) ;
-	}
+	targetWindow.document.parentWindow = targetWindow ;
+
+	for ( var i = 0 ; i < targetWindow.frames.length ; i++ )
+		FCKTools.FixDocumentParentWindow( targetWindow.frames[i] ) ;
 }
 
-FCKTools.SelectNoCase = function( selectElement, value, defaultValue )
+FCKTools.HTMLEncode = function( text )
 {
-	var sNoCaseValue = value.toString().toLowerCase() ;
-	
-	for ( var i = 0 ; i < selectElement.options.length ; i++ )
-	{
-		if ( sNoCaseValue == selectElement.options[i].value.toLowerCase() )
-		{
-			selectElement.selectedIndex = i ;
-			return ;
-		}
-	}
-	
-	if ( defaultValue != null ) FCKTools.SelectNoCase( selectElement, defaultValue ) ;
+	if ( !text )
+		return '' ;
+
+	text = text.replace( /&/g, '&amp;' ) ;
+	text = text.replace( /</g, '&lt;' ) ;
+	text = text.replace( />/g, '&gt;' ) ;
+
+	return text ;
 }
 
-FCKTools.HTMLEncode = function( text )
+FCKTools.HTMLDecode = function( text )
 {
 	if ( !text )
 		return '' ;
 
-	text = text.replace( /&/g, "&amp;" ) ;
-	text = text.replace( /"/g, "&quot;" ) ;
-	text = text.replace( /</g, "&lt;" ) ;
-	text = text.replace( />/g, "&gt;" ) ;
-	text = text.replace( /'/g, "&#39;" ) ;
+	text = text.replace( /&gt;/g, '>' ) ;
+	text = text.replace( /&lt;/g, '<' ) ;
+	text = text.replace( /&amp;/g, '&' ) ;
 
 	return text ;
 }
 
-//**
-// FCKTools.GetResultingArray: Gets a array from a string (where the elements 
-// are separated by a character), a fuction (that returns a array) or a array.
-FCKTools.GetResultingArray = function( arraySource, separator )
+/**
+ * Adds an option to a SELECT element.
+ */
+FCKTools.AddSelectOption = function( selectElement, optionText, optionValue )
 {
-	switch ( typeof( arraySource ) )
-	{
-		case "string" :
-			return arraySource.split( separator ) ;
-		case "function" :
-			return separator() ;
-		default :
-			if ( isArray( arraySource ) ) return arraySource ;
-			else return new Array() ;
-	}
+	var oOption = FCKTools.GetElementDocument( selectElement ).createElement( "OPTION" ) ;
+
+	oOption.text	= optionText ;
+	oOption.value	= optionValue ;
+
+	selectElement.options.add(oOption) ;
+
+	return oOption ;
 }
 
-FCKTools.GetElementPosition = function( el )
+FCKTools.RunFunction = function( func, thisObject, paramsArray, timerWindow )
 {
-	// Initializes the Coordinates object that will be returned by the function.
-	var c = { X:0, Y:0 } ;
-	
-	// Loop throw the offset chain.
-	while ( el )
-	{
-		c.X += el.offsetLeft ;
-		c.Y += el.offsetTop ;
-		
-		el = el.offsetParent ;
-	}
-	
-	// Return the Coordinates object
-	return c ;
+	if ( func )
+		this.SetTimeout( func, 0, thisObject, paramsArray, timerWindow ) ;
 }
 
+FCKTools.SetTimeout = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+	return ( timerWindow || window ).setTimeout(
+		function()
+		{
+			if ( paramsArray )
+				func.apply( thisObject, [].concat( paramsArray ) ) ;
+			else
+				func.apply( thisObject ) ;
+		},
+		milliseconds ) ;
+}
+
+FCKTools.SetInterval = function( func, milliseconds, thisObject, paramsArray, timerWindow )
+{
+	return ( timerWindow || window ).setInterval(
+		function()
+		{
+			func.apply( thisObject, paramsArray || [] ) ;
+		},
+		milliseconds ) ;
+}
+
+FCKTools.ConvertStyleSizeToHtml = function( size )
+{
+	return size.EndsWith( '%' ) ? size : parseInt( size, 10 ) ;
+}
+
+FCKTools.ConvertHtmlSizeToStyle = function( size )
+{
+	return size.EndsWith( '%' ) ? size : ( size + 'px' ) ;
+}
+
 // START iCM MODIFICATIONS
 // Amended to accept a list of one or more ascensor tag names
 // Amended to check the element itself before working back up through the parent hierarchy
@@ -192,95 +181,45 @@
 }
 // END iCM MODIFICATIONS
 
-FCKTools.Pause = function( miliseconds )
+FCKTools.CreateEventListener = function( func, params )
 {
-	var oStart = new Date() ;
+	var f = function()
+	{
+		var aAllParams = [] ;
 
-	while (true)
-	{ 
-		var oNow = new Date() ;
-		if ( miliseconds < oNow - oStart ) 
-			return ;
+		for ( var i = 0 ; i < arguments.length ; i++ )
+			aAllParams.push( arguments[i] ) ;
+
+		func.apply( this, aAllParams.concat( params ) ) ;
 	}
-}
 
-FCKTools.ConvertStyleSizeToHtml = function( size )
-{
-	return size.endsWith( '%' ) ? size : parseInt( size ) ;
+	return f ;
 }
 
-FCKTools.ConvertHtmlSizeToStyle = function( size )
+FCKTools.IsStrictMode = function( document )
 {
-	return size.endsWith( '%' ) ? size : ( size + 'px' ) ;
+	// There is no compatMode in Safari, but it seams that it always behave as
+	// CSS1Compat, so let's assume it as the default.
+	return ( 'CSS1Compat' == ( document.compatMode || 'CSS1Compat' ) ) ;
 }
-// START iCM MODIFICATIONS
-/*
-// Transfers the supplied attributes to the supplied node
-FCKTools.SetElementAttributes = function( oElement, oAttributes ) 
-{
-	for ( var i = 0; i < oAttributes.length; i++ ) 
-	{
-		if ( oAttributes[i].specified ) // Needed for IE which always returns all attributes whether set or not
-			oElement.setAttribute( oAttributes[i].nodeName, oAttributes[i].nodeValue, 0 ) ;
-	}
-}
 
-// Get immediate block node (P, H1, for example) for the supplied node - the supplied node may itself be a block node in which
-// case it will be returned. If no block node found, returns null.
-FCKTools.GetParentBlockNode = function( oNode )
+// Transforms a "arguments" object to an array.
+FCKTools.ArgumentsToArray = function( args, startIndex, maxLength )
 {
-	if ( oNode.nodeName.toUpperCase() == "BODY" )
-		return null ;
-	else if ( oNode.nodeType == 1 && FCKRegexLib.BlockElements.test(oNode.tagName) )
-		return oNode ;
-	else
-		return FCKTools.GetParentBlockNode( oNode.parentNode ) ;
-}
+	startIndex = startIndex || 0 ;
+	maxLength = maxLength || args.length ;
 
-// Run through any children of the supplied node. If there are none, or they only comprise 
-// empty text nodes and BR nodes, then the node is effectively empty.
-// Sometimes (on Gecko) a seemingly empty node is coming back with several children that are solely
-// empty text nodes and BRs e.g. the first item in an OL list, for example, when 
-// UseBROnCarriageReturn is set to false. 
-// Seems to be due to the use of the <br _moz_editor_bogus_node="TRUE"> (GECKO_BOGUS) as fillers both
-// in fck_gecko_1.js when html is empty and in ENTER key handler ? If normal BR tags are
-// used instead this doesn't seem to happen....
-FCKTools.NodeIsEmpty = function( oNode )
-{
-	var oSibling = oNode.childNodes[0] ;
-	while ( oSibling )
-	{
-		if ( ( oSibling.nodeType != 1 && oSibling.nodeType != 3 ) || ( oSibling.nodeType == 1 && oSibling.nodeName.toUpperCase() != "BR" ) || ( oSibling.nodeType == 3 && oSibling.nodeValue && oSibling.nodeValue.trim() != '' ) )
-			return false ;
-		
-		oSibling = oSibling.nextSibling ;
-	}
+	var argsArray = new Array() ;
 
-	return true ;
+	for ( var i = startIndex ; i < startIndex + maxLength && i < args.length ; i++ )
+		argsArray.push( args[i] ) ;
+
+	return argsArray ;
 }
 
-// Returns a document fragment that contains a copy of the specified range of nodes
-FCKTools.GetDocumentFragment = function( oParentNode, oFromNode, oToNode, bIncludeFromNode, bIncludeToNode, bClone )
-{	
-	if ( typeof bIncludeFromNode == "undefined" )  bIncludeFromNode = true ;
-	if ( typeof bIncludeToNode == "undefined" )  bIncludeToNode = true ;
-	if ( typeof bClone == "undefined" )  bClone = true ;
-
-	var oFragment = FCK.EditorDocument.createDocumentFragment() ;
-	
-	var oNode = oFromNode ;
-	while ( oNode && oNode != oToNode )
-	{
-		if ( oNode != oFromNode || bIncludeFromNode )
-			oFragment.appendChild( bClone ? oNode.cloneNode( true ) : oNode ) ;
-			
-		oNode = oNode.nextSibling ;
-	}
-
-	if ( oNode && (oFromNode != oToNode && bIncludeToNode) )
-		oFragment.appendChild( bClone ? oNode.cloneNode( true ) : oNode ) ; // Include To Node
-
-	return oFragment ;
+FCKTools.CloneObject = function( sourceObject )
+{
+	var fCloneCreator = function() {} ;
+	fCloneCreator.prototype = sourceObject ;
+	return new fCloneCreator ;
 }
-*/
-// END iCM MODIFICATIONS

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +1,42 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktools_gecko.js
- * 	Utility functions. (Gecko version).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions. (Gecko version).
  */
 
-// Constant for the Gecko Bogus Node.
-var GECKO_BOGUS = '<br _moz_editor_bogus_node="TRUE">' ;
+FCKTools.CancelEvent = function( e )
+{
+	if ( e )
+		e.preventDefault() ;
+}
 
+FCKTools.DisableSelection = function( element )
+{
+	if ( FCKBrowserInfo.IsGecko )
+		element.style.MozUserSelect	= 'none' ;	// Gecko only.
+	else
+		element.style.userSelect	= 'none' ;	// CSS3 (not supported yet).
+}
+
 // Appends a CSS file to a document.
-FCKTools.AppendStyleSheet = function( documentElement, cssFileUrl )
+FCKTools._AppendStyleSheet = function( documentElement, cssFileUrl )
 {
 	var e = documentElement.createElement( 'LINK' ) ;
 	e.rel	= 'stylesheet' ;
@@ -47,35 +62,37 @@
 {
 	// Create the array that will hold all Ids.
 	var aIds = new Array() ;
-	
+
 	// Define a recursive function that search for the Ids.
 	var fGetIds = function( parent )
 	{
 		for ( var i = 0 ; i < parent.childNodes.length ; i++ )
 		{
 			var sId = parent.childNodes[i].id ;
-			
+
 			// Check if the Id is defined for the element.
 			if ( sId && sId.length > 0 ) aIds[ aIds.length ] = sId ;
-			
+
 			// Recursive call.
 			fGetIds( parent.childNodes[i] ) ;
 		}
 	}
-	
+
 	// Start the recursive calls.
 	fGetIds( parentElement ) ;
 
 	return aIds ;
 }
 
+// Replaces a tag with its contents. For example "<span>My <b>tag</b></span>"
+// will be replaced with "My <b>tag</b>".
 FCKTools.RemoveOuterTags = function( e )
 {
 	var oFragment = e.ownerDocument.createDocumentFragment() ;
-			
+
 	for ( var i = 0 ; i < e.childNodes.length ; i++ )
-		oFragment.appendChild( e.childNodes[i] ) ;
-			
+		oFragment.appendChild( e.childNodes[i].cloneNode(true) ) ;
+
 	e.parentNode.replaceChild( oFragment, e ) ;
 }
 
@@ -90,165 +107,129 @@
 	}
 	return null ;
 }
-// START iCM Modifications
-/*
-// Starting at the specified node, find the first inline node of the sequence
-// For example, assume we have the following elements : <p>Some text <span>some more text</span> and <a href="href">some link</a> yet some more text</p>
-// If the "some link" text node is the one specified, then the "Some text" text node will be the first inline node returned.
-FCKTools.GetFirstInlineNode = function( oNode )
+
+FCKTools.GetScrollPosition = function( relativeWindow )
 {
-	if ( FCKRegexLib.BlockElements.test( oNode.nodeName ) )
-		return oNode ;
-	else if ( oNode.previousSibling && !FCKRegexLib.BlockElements.test( oNode.previousSibling.nodeName ) )
-		return FCKTools.GetFirstInlineNode( oNode.previousSibling ) ;
-	else if ( oNode.parentNode && !FCKRegexLib.BlockElements.test( oNode.parentNode.nodeName ) && oNode.parentNode.nodeName.toUpperCase() != "BODY" )
-		return FCKTools.GetFirstInlineNode( oNode.parentNode ) ;
-	else 
-		return oNode ;
+	return { X : relativeWindow.pageXOffset, Y : relativeWindow.pageYOffset } ;
 }
 
-// Starting at the specified node, find the last inline node of the sequence
-// For example, assume we have the following elements : <p>Some text <span>some more text</span> and <a href="href">some link</a> yet some more text</p>
-// If the "some link" text node is the one specified, then the " yet some more text" text node will be the last inline node returned.
-FCKTools.GetLastInlineNode = function( oNode )
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
 {
-	if ( FCKRegexLib.BlockElements.test( oNode.nodeName ) )
-		return oNode ;
-	else if ( oNode.nextSibling && !FCKRegexLib.BlockElements.test( oNode.nextSibling.nodeName ) )
-		return FCKTools.GetLastInlineNode( oNode.nextSibling ) ;
-	else if ( oNode.parentNode && !FCKRegexLib.BlockElements.test( oNode.parentNode.nodeName ) && oNode.parentNode.nodeName.toUpperCase() != "BODY" )
-		return FCKTools.GetLastInlineNode( oNode.parentNode ) ;
-	else
-		return oNode ;
+	sourceObject.addEventListener( eventName, listener, false ) ;
 }
 
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.removeEventListener( eventName, listener, false ) ;
+}
 
-// Split the supplied parent at the specified child and (optionally) offset.
-// Ensure that enclosing block elements are created where missing but that existing 
-// block elements (table for example) don't get incorrectly nested. 
-FCKTools.SplitNode = function( oParentBlockNode, oChildNode, nOffset )
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
 {
-	if ( typeof nOffset == "undefined" ) nOffset = 0 ;
+	sourceObject.addEventListener(
+		eventName,
+		function( e )
+		{
+			listener.apply( sourceObject, [ e ].concat( paramsArray || [] ) ) ;
+		},
+		false
+	) ;
+}
 
-	var oFragment = FCK.EditorDocument.createDocumentFragment() ;
-	var oRange = FCK.EditorDocument.createRange() ;
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+	return { Width : win.innerWidth, Height : win.innerHeight } ;
+}
 
-	if ( FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+FCKTools.SaveStyles = function( element )
+{
+	var oSavedStyles = new Object() ;
+
+	if ( element.className.length > 0 )
 	{
-		// Treat OL/UL parents differently as want to split at the specified
-		// child LI node to create to OL/UL lists.
-		oStartNode = oParentBlockNode.firstChild ;
-		oEndNode = oParentBlockNode.lastChild ;
+		oSavedStyles.Class = element.className ;
+		element.className = '' ;
 	}
-	else
-	{
-		// Locate the inline nodes adjacent to the specified child node so that these can
-		// be kept together.
-		oStartNode = FCKTools.GetFirstInlineNode( oChildNode ) ;
-		oEndNode = FCKTools.GetLastInlineNode( oChildNode ) ;
-	}
 
-	// Create a new tag which holds the content of the affected node(s) located before (but not including) the child node and offset
-	if ( FCKRegexLib.BlockElements.test( oStartNode.nodeName ) && !FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+	var sInlineStyle = element.getAttribute( 'style' ) ;
+
+	if ( sInlineStyle && sInlineStyle.length > 0 )
 	{
-		// First element of the bunch is already a block element so we don't want to wrap it with a new block element.
-		// Just use this first node provided it is not the same as the last node (to prevent duplication), otherwise
-		// create a new empty P element.
-		if ( oStartNode != oEndNode )
-		{
-			oBlockNode1 = oStartNode.cloneNode( true ) ;
-		}
-		else
-		{
-			oBlockNode1 = FCK.EditorDocument.createElement( "P" ) ;
-			oBlockNode1.innerHTML = GECKO_BOGUS ;
-			
-			if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
-				FCKTools.SetElementAttributes( oBlockNode1, oParentBlockNode.attributes ) ;  // Transfer across any class attributes, etc
-		}
+		oSavedStyles.Inline = sInlineStyle ;
+		element.setAttribute( 'style', '', 0 ) ;	// 0 : Case Insensitive
 	}
+
+	return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+	element.className = savedStyles.Class || '' ;
+
+	if ( savedStyles.Inline )
+		element.setAttribute( 'style', savedStyles.Inline, 0 ) ;	// 0 : Case Insensitive
 	else
-	{
-		// First element of the bunch is not a block element (or it is a LI element which is a special case).
-		// So ensure all of the inline nodes before the selection are wrapped with a suitable block element.
-		var oBlockNode1 = FCK.EditorDocument.createElement( FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) ? "P" : oParentBlockNode.tagName ) ;
-		oRange.setStartBefore( oStartNode ) ;
-		if ( nOffset == 0 )
-			oRange.setEndBefore( oChildNode ) ;
-		else
-			oRange.setEnd( oChildNode, nOffset ) ;
-		oBlockNode1.appendChild( oRange.cloneContents() ) ;
-		oBlockNode1.innerHTML = oBlockNode1.innerHTML.replace(/[\x00-\x1F]/g, "") ; // Prevent any control characters returned within the innerHTML from causing problems
-		if ( FCKTools.NodeIsEmpty( oBlockNode1 ) )
-			oBlockNode1.innerHTML = GECKO_BOGUS ;		// Ensure it has some content, required for Gecko
-		else
-			oBlockNode1.innerHTML = oBlockNode1.innerHTML.replace( FCKRegexLib.EmptyElement, "" ) ; // Strip out any empty tags that may have been generated by the split
-		if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
-			FCKTools.SetElementAttributes( oBlockNode1, oParentBlockNode.attributes ) ; 	// Transfer across any class attributes, etc
-	}
+		element.removeAttribute( 'style', 0 ) ;
+}
 
-	// Create a new tag which holds the content of the affected node(s) located after (and including) the child node
-	if ( FCKRegexLib.BlockElements.test( oEndNode.nodeName ) && !FCKRegexLib.ListElements.test( oParentBlockNode.nodeName ) )
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+	targetWindow.$ = function( id )
 	{
-		// Last element of the bunch is already a block element so we don't want to wrap it with a new block element.
-		oBlockNode2 = oEndNode.cloneNode( true ) ;
-	}
-	else
-	{
-		// Last element of the bunch is not a block element (or it is a LI element which is a special case).
-		// So ensure all of the inline nodes after and including the child/offset are wrapped with a suitable block element.
-		var oBlockNode2 = FCK.EditorDocument.createElement( FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) ? "P" : oParentBlockNode.tagName );
-		oRange.setEndAfter( oEndNode );
-		if ( nOffset == 0 )
-			oRange.setStartBefore( oChildNode ) ;
-		else
-			oRange.setStart( oChildNode, nOffset );
-		oBlockNode2.appendChild( oRange.cloneContents() ) ;
-		oBlockNode2.innerHTML = oBlockNode2.innerHTML.replace(/[\x00-\x1F]/g, "") ;  // Prevent any control characters returned within the innerHTML from causing problems
-		if ( FCKTools.NodeIsEmpty( oBlockNode2 ) ) 
-			oBlockNode2.innerHTML = GECKO_BOGUS ; 			// Ensure it has some content, required for Gecko
-		else
-			oBlockNode2.innerHTML = oBlockNode2.innerHTML.replace( FCKRegexLib.EmptyElement, "" ) ; // Strip out any empty tags that may have been generated by the split
-		if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) )
-			FCKTools.SetElementAttributes( oBlockNode2, oParentBlockNode.attributes ) ; 	// Transfer across any class attributes, etc
-	}
-	
-	// Insert the resulting nodes into a document fragment
-	oFragment.appendChild( oBlockNode1 );
-	oFragment.appendChild( oBlockNode2 );
-	
-	// Replace the affected nodes with the new nodes (fragment)
-	FCKTools.ReplaceNodes( oParentBlockNode, oStartNode, oEndNode, oFragment ) ;	
-	
-	// Return the second node so it can be used for setting cursor position, etc
-	return oBlockNode2 ;
+		return this.document.getElementById( id ) ;
+	} ;
 }
 
-// Function that replaces the specified range of nodes (inclusive) within the supplied parent
-// with the nodes stored in the supplied document fragment.
-FCKTools.ReplaceNodes = function( oParentBlockNode, oStartNode, oEndNode, oFragment )
+FCKTools.AppendElement = function( target, elementName )
 {
-	var oRange = FCK.EditorDocument.createRange() ;
-	
-	// Delete the affected node(s)
-	if ( !FCKRegexLib.SpecialBlockElements.test( oParentBlockNode.nodeName ) && (oParentBlockNode.firstChild == oStartNode) && (oParentBlockNode.lastChild == oEndNode) )
+	return target.appendChild( target.ownerDocument.createElement( elementName ) ) ;
+}
+
+// Get the coordinates of an element.
+//		@el : The element to get the position.
+//		@relativeWindow: The window to which we want the coordinates relative to.
+FCKTools.GetElementPosition = function( el, relativeWindow )
+{
+	// Initializes the Coordinates object that will be returned by the function.
+	var c = { X:0, Y:0 } ;
+
+	var oWindow = relativeWindow || window ;
+
+	var oOwnerWindow = FCKTools.GetElementWindow( el ) ;
+
+	// Loop throw the offset chain.
+	while ( el )
 	{
-		// Entire parent block node is to be replaced so insert the two new block elements before it 
-		// and then remove the old node
-		oRange.selectNode ( oParentBlockNode );
+		var sPosition = oOwnerWindow.getComputedStyle(el, '').position ;
+
+		// Check for non "static" elements.
+		// 'FCKConfig.FloatingPanelsZIndex' -- Submenus are under a positioned IFRAME.
+		if ( sPosition && sPosition != 'static' && el.style.zIndex != FCKConfig.FloatingPanelsZIndex )
+			break ;
+
+		c.X += el.offsetLeft - el.scrollLeft ;
+		c.Y += el.offsetTop - el.scrollTop  ;
+
+		if ( el.offsetParent )
+			el = el.offsetParent ;
+		else
+		{
+			if ( oOwnerWindow != oWindow )
+			{
+				el = oOwnerWindow.frameElement ;
+				if ( el )
+					oOwnerWindow = FCKTools.GetElementWindow( el ) ;
+			}
+			else
+			{
+				c.X += el.scrollLeft ;
+				c.Y += el.scrollTop  ;
+				break ;
+			}
+		}
 	}
-	else
-	{
-		// Only part of the parent block node is to be replaced so insert the two new block elements
-		// before the first inline node of the affected content and then remove the old nodes
-		oRange.setEndAfter( oEndNode ) ;
-		oRange.setStartBefore( oStartNode ) ;
-	}
-	
-	// Insert the replacement nodes
-	oRange.deleteContents() ;
-	oRange.insertNode( oFragment ) ;
-}
-*/
-// END iCM Modifications
 
+	// Return the Coordinates object
+	return c ;
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fcktools_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,37 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcktools_ie.js
- * 	Utility functions. (IE version).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions. (IE version).
  */
 
-// Appends a CSS file to a document.
-FCKTools.AppendStyleSheet = function( documentElement, cssFileUrl )
+FCKTools.CancelEvent = function( e )
 {
-	return documentElement.createStyleSheet( cssFileUrl ) ;
+	return false ;
 }
 
+// Appends one or more CSS files to a document.
+FCKTools._AppendStyleSheet = function( documentElement, cssFileUrl )
+{
+	return documentElement.createStyleSheet( cssFileUrl ).owningElement ;
+}
+
 // Removes all attributes and values from the element.
 FCKTools.ClearElementAttributes = function( element )
 {
@@ -50,13 +59,13 @@
 FCKTools.CreateXmlObject = function( object )
 {
 	var aObjs ;
-	
+
 	switch ( object )
 	{
 		case 'XmlHttp' :
 			aObjs = [ 'MSXML2.XmlHttp', 'Microsoft.XmlHttp' ] ;
 			break ;
-				
+
 		case 'DOMDocument' :
 			aObjs = [ 'MSXML2.DOMDocument', 'Microsoft.XmlDom' ] ;
 			break ;
@@ -65,13 +74,141 @@
 	for ( var i = 0 ; i < 2 ; i++ )
 	{
 		try { return new ActiveXObject( aObjs[i] ) ; }
-		catch (e) 
+		catch (e)
 		{}
 	}
-	
+
 	if ( FCKLang.NoActiveX )
 	{
 		alert( FCKLang.NoActiveX ) ;
 		FCKLang.NoActiveX = null ;
 	}
+	return null ;
+}
+
+FCKTools.DisableSelection = function( element )
+{
+	element.unselectable = 'on' ;
+
+	var e, i = 0 ;
+	// The extra () is to avoid a warning with strict error checking. This is ok.
+	while ( (e = element.all[ i++ ]) )
+	{
+		switch ( e.tagName )
+		{
+			case 'IFRAME' :
+			case 'TEXTAREA' :
+			case 'INPUT' :
+			case 'SELECT' :
+				/* Ignore the above tags */
+				break ;
+			default :
+				e.unselectable = 'on' ;
+		}
+	}
+}
+
+FCKTools.GetScrollPosition = function( relativeWindow )
+{
+	var oDoc = relativeWindow.document ;
+
+	// Try with the doc element.
+	var oPos = { X : oDoc.documentElement.scrollLeft, Y : oDoc.documentElement.scrollTop } ;
+
+	if ( oPos.X > 0 || oPos.Y > 0 )
+		return oPos ;
+
+	// If no scroll, try with the body.
+	return { X : oDoc.body.scrollLeft, Y : oDoc.body.scrollTop } ;
+}
+
+FCKTools.AddEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.attachEvent( 'on' + eventName, listener ) ;
+}
+
+FCKTools.RemoveEventListener = function( sourceObject, eventName, listener )
+{
+	sourceObject.detachEvent( 'on' + eventName, listener ) ;
+}
+
+// Listeners attached with this function cannot be detached.
+FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray )
+{
+	// Ok... this is a closures party, but is the only way to make it clean of memory leaks.
+	var o = new Object() ;
+	o.Source = sourceObject ;
+	o.Params = paramsArray || [] ;	// Memory leak if we have DOM objects here.
+	o.Listener = function( ev )
+	{
+		return listener.apply( o.Source, [ ev ].concat( o.Params ) ) ;
+	}
+
+	if ( FCK.IECleanup )
+		FCK.IECleanup.AddItem( null, function() { o.Source = null ; o.Params = null ; } ) ;
+
+	sourceObject.attachEvent( 'on' + eventName, o.Listener ) ;
+
+	sourceObject = null ;	// Memory leak cleaner (because of the above closure).
+	paramsArray = null ;	// Memory leak cleaner (because of the above closure).
+}
+
+// Returns and object with the "Width" and "Height" properties.
+FCKTools.GetViewPaneSize = function( win )
+{
+	var oSizeSource ;
+
+	var oDoc = win.document.documentElement ;
+	if ( oDoc && oDoc.clientWidth )				// IE6 Strict Mode
+		oSizeSource = oDoc ;
+	else
+		oSizeSource = top.document.body ;		// Other IEs
+
+	if ( oSizeSource )
+		return { Width : oSizeSource.clientWidth, Height : oSizeSource.clientHeight } ;
+	else
+		return { Width : 0, Height : 0 } ;
+}
+
+FCKTools.SaveStyles = function( element )
+{
+	var oSavedStyles = new Object() ;
+
+	if ( element.className.length > 0 )
+	{
+		oSavedStyles.Class = element.className ;
+		element.className = '' ;
+	}
+
+	var sInlineStyle = element.style.cssText ;
+
+	if ( sInlineStyle.length > 0 )
+	{
+		oSavedStyles.Inline = sInlineStyle ;
+		element.style.cssText = '' ;
+	}
+
+	return oSavedStyles ;
+}
+
+FCKTools.RestoreStyles = function( element, savedStyles )
+{
+	element.className		= savedStyles.Class || '' ;
+	element.style.cssText	= savedStyles.Inline || '' ;
+}
+
+FCKTools.RegisterDollarFunction = function( targetWindow )
+{
+	targetWindow.$ = targetWindow.document.getElementById ;
+}
+
+FCKTools.AppendElement = function( target, elementName )
+{
+	return target.appendChild( this.GetElementDocument( target ).createElement( elementName ) ) ;
+}
+
+// This function may be used by Regex replacements.
+FCKTools.ToLowerCase = function( strValue )
+{
+	return strValue.toLowerCase() ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +1,27 @@
-var FCKUndo = new Object() ;
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Fake implementation to ignore calls on Gecko.
+ */
 
+var FCKUndo = new Object() ;
+
 FCKUndo.SaveUndoStep = function()
 {}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckundo_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,5 +1,28 @@
-var FCKUndo = new Object() ;
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * IE specific implementation for the Undo/Redo system.
+ */
 
+var FCKUndo = new Object() ;
+
 FCKUndo.SavedData = new Array() ;
 FCKUndo.CurrentIndex = -1 ;
 FCKUndo.TypesCount = FCKUndo.MaxTypes = 25 ;
@@ -7,6 +30,9 @@
 
 FCKUndo.SaveUndoStep = function()
 {
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+		return ;
+
 	// Shrink the array to the current level.
 	FCKUndo.SavedData = FCKUndo.SavedData.slice( 0, FCKUndo.CurrentIndex + 1 ) ;
 
@@ -77,7 +103,7 @@
 FCKUndo._ApplyUndoLevel = function(level)
 {
 	var oData = FCKUndo.SavedData[ level ] ;
-	
+
 	if ( !oData )
 		return ;
 
@@ -85,13 +111,13 @@
 	FCK.SetInnerHtml( oData[0] ) ;
 //	FCK.EditorDocument.body.innerHTML = oData[0] ;
 
-	if ( oData[1] ) 
+	if ( oData[1] )
 	{
 		var oRange = FCK.EditorDocument.selection.createRange() ;
 		oRange.moveToBookmark( oData[1] ) ;
 		oRange.select() ;
 	}
-	
-	FCKUndo.TypesCount = 0 ; 
+
+	FCKUndo.TypesCount = 0 ;
 	FCKUndo.Typing = false ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckurlparams.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckurlparams.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckurlparams.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,32 +1,39 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckurlparams.js
- * 	Defines the FCKURLParams object that is used to get all parameters
- * 	passed by the URL QueryString (after the "?").
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKURLParams object that is used to get all parameters
+ * passed by the URL QueryString (after the "?").
  */
 
 // #### URLParams: holds all URL passed parameters (like ?Param1=Value1&Param2=Value2)
 var FCKURLParams = new Object() ;
 
-var aParams = document.location.search.substr(1).split('&') ;
-for ( var i = 0 ; i < aParams.length ; i++ )
+(function()
 {
-	var aParam = aParams[i].split('=') ;
-	var sParamName  = aParam[0] ;
-	var sParamValue = aParam[1] ;
+	var aParams = document.location.search.substr(1).split('&') ;
+	for ( var i = 0 ; i < aParams.length ; i++ )
+	{
+		var aParam = aParams[i].split('=') ;
+		var sParamName  = decodeURIComponent( aParam[0] ) ;
+		var sParamValue = decodeURIComponent( aParam[1] ) ;
 
-	FCKURLParams[ sParamName ] = sParamValue ;
-}
\ No newline at end of file
+		FCKURLParams[ sParamName ] = sParamValue ;
+	}
+})();
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxhtml.js
- * 	Defines the FCKXHtml object, responsible for the XHTML operations.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKXHtml object, responsible for the XHTML operations.
  */
 
 var FCKXHtml = new Object() ;
@@ -23,6 +27,17 @@
 
 FCKXHtml.GetXHTML = function( node, includeNode, format )
 {
+	FCKXHtmlEntities.Initialize() ;
+	
+	// Set the correct entity to use for empty blocks.
+	this._NbspEntity = ( FCKConfig.ProcessHTMLEntities? 'nbsp' : '#160' ) ;
+
+	// Save the current IsDirty state. The XHTML processor may change the
+	// original HTML, dirtying it.
+	var bIsDirty = FCK.IsDirty() ;
+
+	this._CreateNode = FCKConfig.ForceStrongEm ? FCKXHtml_CreateNode_StrongEm : FCKXHtml_CreateNode_Normal ;
+
 	// Special blocks are blocks of content that remain untouched during the
 	// process. It is used for SCRIPTs and STYLEs.
 	FCKXHtml.SpecialBlocks = new Array() ;
@@ -43,10 +58,14 @@
 	// Get the resulting XHTML as a string.
 	var sXHTML = this._GetMainXmlString() ;
 
+	this.XML = null ;
+
 	// Strip the "XHTML" root node.
-	sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).trim() ;
-	
+	sXHTML = sXHTML.substr( 7, sXHTML.length - 15 ).Trim() ;
+
 	// Remove the trailing <br> added by Gecko.
+	// REMOVE: Maybe the following is not anymore necessary because a similar
+	// check is made on _AppendNode
 	if ( FCKBrowserInfo.IsGecko )
 		sXHTML = sXHTML.replace( /<br\/>$/, '' ) ;
 
@@ -66,20 +85,35 @@
 		sXHTML = sXHTML.replace( oRegex, FCKXHtml.SpecialBlocks[i] ) ;
 	}
 
-	this.XML = null ;
+	// Replace entities marker with the ampersand.
+	sXHTML = sXHTML.replace( FCKRegexLib.GeckoEntitiesMarker, '&' ) ;
 
-	return sXHTML
+	// Restore the IsDirty state if it was not dirty.
+	if ( !bIsDirty )
+		FCK.ResetIsDirty() ;
+
+	return sXHTML ;
 }
 
 FCKXHtml._AppendAttribute = function( xmlNode, attributeName, attributeValue )
 {
 	try
 	{
+		if ( attributeValue == undefined || attributeValue == null )
+			attributeValue = '' ;
+		else if ( attributeValue.replace )
+		{
+			if ( FCKConfig.ForceSimpleAmpersand )
+				attributeValue = attributeValue.replace( /&/g, '___FCKAmp___' ) ;
+
+			// Entities must be replaced in the attribute values.
+			attributeValue = attributeValue.replace( FCKXHtmlEntities.EntitiesRegex, FCKXHtml_GetEntity ) ;
+		}
+
 		// Create the attribute.
 		var oXmlAtt = this.XML.createAttribute( attributeName ) ;
+		oXmlAtt.value = attributeValue ;
 
-		oXmlAtt.value = attributeValue ? attributeValue : '' ;
-
 		// Set the attribute in the node.
 		xmlNode.attributes.setNamedItem( oXmlAtt ) ;
 	}
@@ -89,102 +123,133 @@
 
 FCKXHtml._AppendChildNodes = function( xmlNode, htmlNode, isBlockElement )
 {
+	// Trim block elements. This is also needed to avoid Firefox leaving extra
+	// BRs at the end of them.
+	if ( isBlockElement )
+		FCKDomTools.TrimNode( htmlNode, true ) ;
+
 	var iCount = 0 ;
-	
-	if ( htmlNode.hasChildNodes() )
+
+	var oNode = htmlNode.firstChild ;
+
+	while ( oNode )
 	{
-		// Get all children nodes.
-		var oChildren = htmlNode.childNodes ;
+		if ( this._AppendNode( xmlNode, oNode ) )
+			iCount++ ;
 
-		for ( var i = 0 ; i < oChildren.length ; i++ )
-		{
-			if ( this._AppendNode( xmlNode, oChildren[i] ) )
-				iCount++ ;
-		}
+		oNode = oNode.nextSibling ;
 	}
-	
+
 	if ( iCount == 0 )
 	{
 		if ( isBlockElement && FCKConfig.FillEmptyBlocks )
 		{
-			this._AppendEntity( xmlNode, 'nbsp' ) ;
-			return ;
+			this._AppendEntity( xmlNode, this._NbspEntity ) ;
+			return xmlNode ;
 		}
 
+		var sNodeName = xmlNode.nodeName ;
+
+		// Some inline elements are required to have something inside (span, strong, etc...).
+		if ( FCKListsLib.InlineChildReqElements[ sNodeName ] )
+			return null ;
+
 		// We can't use short representation of empty elements that are not marked
 		// as empty in th XHTML DTD.
-		if ( !FCKRegexLib.EmptyElements.test( htmlNode.nodeName ) )
+		if ( !FCKListsLib.EmptyElements[ sNodeName ] )
 			xmlNode.appendChild( this.XML.createTextNode('') ) ;
 	}
+
+	return xmlNode ;
 }
 
 FCKXHtml._AppendNode = function( xmlNode, htmlNode )
 {
+	if ( !htmlNode )
+		return false ;
+
 	switch ( htmlNode.nodeType )
 	{
 		// Element Node.
 		case 1 :
+
+			// Here we found an element that is not the real element, but a
+			// fake one (like the Flash placeholder image), so we must get the real one.
 			if ( htmlNode.getAttribute('_fckfakelement') )
 				return FCKXHtml._AppendNode( xmlNode, FCK.GetRealElement( htmlNode ) ) ;
-		
+
 			// Mozilla insert custom nodes in the DOM.
 			if ( FCKBrowserInfo.IsGecko && htmlNode.hasAttribute('_moz_editor_bogus_node') )
 				return false ;
-			
-			if ( htmlNode.getAttribute('_fckdelete') )
+
+			// This is for elements that are instrumental to FCKeditor and
+			// must be removed from the final HTML.
+			if ( htmlNode.getAttribute('_fcktemp') )
 				return false ;
 
-			// Create the Element.
-			var sNodeName = htmlNode.nodeName ;
+			// Get the element name.
+			var sNodeName = htmlNode.tagName.toLowerCase()  ;
 
+			if ( FCKBrowserInfo.IsIE )
+			{
+				// IE doens't include the scope name in the nodeName. So, add the namespace.
+				if ( htmlNode.scopeName && htmlNode.scopeName != 'HTML' && htmlNode.scopeName != 'FCK' )
+					sNodeName = htmlNode.scopeName.toLowerCase() + ':' + sNodeName ;
+			}
+			else
+			{
+				if ( sNodeName.StartsWith( 'fck:' ) )
+					sNodeName = sNodeName.Remove( 0,4 ) ;
+			}
+
 			// Check if the node name is valid, otherwise ignore this tag.
+			// If the nodeName starts with a slash, it is a orphan closing tag.
+			// On some strange cases, the nodeName is empty, even if the node exists.
 			if ( !FCKRegexLib.ElementName.test( sNodeName ) )
 				return false ;
 
-			sNodeName = sNodeName.toLowerCase() ;
-
-			if ( FCKBrowserInfo.IsGecko && sNodeName == 'br' && htmlNode.hasAttribute('type') && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
+			// Remove the <br> if it is a bogus node.
+			if ( sNodeName == 'br' && htmlNode.getAttribute( 'type', 2 ) == '_moz' )
 				return false ;
 
 			// The already processed nodes must be marked to avoid then to be duplicated (bad formatted HTML).
 			// So here, the "mark" is checked... if the element is Ok, then mark it.
 			if ( htmlNode._fckxhtmljob && htmlNode._fckxhtmljob == FCKXHtml.CurrentJobNum )
 				return false ;
-			else
-				htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum ;
 
-			// If the nodeName starts with a slash, it is a orphan closing tag.
-			// On some strange cases, the nodeName is empty, even if the node exists.
-//			if ( sNodeName.length == 0 || sNodeName.substr(0,1) == '/' )
-//				break ;
+			var oNode = this._CreateNode( sNodeName ) ;
 
-			var oNode = this._CreateNode( sNodeName ) ;
-			
 			// Add all attributes.
 			FCKXHtml._AppendAttributes( xmlNode, htmlNode, oNode, sNodeName ) ;
 
+			htmlNode._fckxhtmljob = FCKXHtml.CurrentJobNum ;
+
 			// Tag specific processing.
 			var oTagProcessor = FCKXHtml.TagProcessors[ sNodeName ] ;
 
 			if ( oTagProcessor )
-			{
-				oNode = oTagProcessor( oNode, htmlNode ) ;
-				if ( !oNode ) break ;
-			}
+				oNode = oTagProcessor( oNode, htmlNode, xmlNode ) ;
 			else
-				this._AppendChildNodes( oNode, htmlNode, FCKRegexLib.BlockElements.test( sNodeName ) ) ;
+				oNode = this._AppendChildNodes( oNode, htmlNode, Boolean( FCKListsLib.NonEmptyBlockElements[ sNodeName ] ) ) ;
 
+			if ( !oNode )
+				return false ;
+
 			xmlNode.appendChild( oNode ) ;
 
 			break ;
 
 		// Text Node.
 		case 3 :
-			this._AppendTextNode( xmlNode, htmlNode.nodeValue.replaceNewLineChars(' ') ) ;
-			break ;
+			return this._AppendTextNode( xmlNode, htmlNode.nodeValue.ReplaceNewLineChars(' ') ) ;
 
 		// Comment
 		case 8 :
+			// IE catches the <!DOTYPE ... > as a comment, but it has no
+			// innerHTML, so we can catch it, and ignore it.
+			if ( FCKBrowserInfo.IsIE && !htmlNode.innerHTML )
+				break ;
+
 			try { xmlNode.appendChild( this.XML.createComment( htmlNode.nodeValue ) ) ; }
 			catch (e) { /* Do nothing... probably this is a wrong format comment. */ }
 			break ;
@@ -197,158 +262,205 @@
 	return true ;
 }
 
-if ( FCKConfig.ForceStrongEm )
+function FCKXHtml_CreateNode_StrongEm( nodeName )
 {
-	FCKXHtml._CreateNode = function( nodeName )
+	switch ( nodeName )
 	{
-		switch ( nodeName )
-		{
-			case 'b' :
-				nodeName = 'strong' ;
-				break ;
-			case 'i' :
-				nodeName = 'em' ;
-				break ;
-		}
-		return this.XML.createElement( nodeName ) ;
+		case 'b' :
+			nodeName = 'strong' ;
+			break ;
+		case 'i' :
+			nodeName = 'em' ;
+			break ;
 	}
+	return this.XML.createElement( nodeName ) ;
 }
-else
+
+function FCKXHtml_CreateNode_Normal( nodeName )
 {
-	FCKXHtml._CreateNode = function( nodeName )
-	{
-		return this.XML.createElement( nodeName ) ;
-	}
+	return this.XML.createElement( nodeName ) ;
 }
 
 // Append an item to the SpecialBlocks array and returns the tag to be used.
 FCKXHtml._AppendSpecialItem = function( item )
 {
-	return '___FCKsi___' + FCKXHtml.SpecialBlocks.addItem( item ) ;
+	return '___FCKsi___' + FCKXHtml.SpecialBlocks.AddItem( item ) ;
 }
 
-//if ( FCKConfig.ProcessHTMLEntities )
-//{
-	FCKXHtml._AppendTextNode = function( targetNode, textValue )
-	{
-		// We can't just replace the special chars with entities and create a
-		// text node with it. We must split the text isolating the special chars
-		// and add each piece a time.
-		var asPieces = textValue.match( FCKXHtmlEntities.EntitiesRegex ) ;
+FCKXHtml._AppendEntity = function( xmlNode, entity )
+{
+	xmlNode.appendChild( this.XML.createTextNode( '#?-:' + entity + ';' ) ) ;
+}
 
-		if ( asPieces )
-		{
-			for ( var i = 0 ; i < asPieces.length ; i++ )
-			{
-				if ( asPieces[i].length == 1 )
-				{
-					var sEntity = FCKXHtmlEntities.Entities[ asPieces[i] ] ;
-					if ( sEntity != null )
-					{
-						this._AppendEntity( targetNode, sEntity ) ;
-						continue ;
-					}
-				}
-				targetNode.appendChild( this.XML.createTextNode( asPieces[i] ) ) ;
-			}
-		}
-	}
-//}
-//else
-//{
-//	FCKXHtml._AppendTextNode = function( targetNode, textValue )
-//	{
-//		targetNode.appendChild( this.XML.createTextNode( textValue ) ) ;
-//	}
-//}
+FCKXHtml._AppendTextNode = function( targetNode, textValue )
+{
+	var bHadText = textValue.length > 0 ;
+	if ( bHadText )
+		targetNode.appendChild( this.XML.createTextNode( textValue.replace( FCKXHtmlEntities.EntitiesRegex, FCKXHtml_GetEntity ) ) ) ;
+	return bHadText ;
+}
 
-// An object that hold tag specific operations.
-FCKXHtml.TagProcessors = new Object() ;
-
-FCKXHtml.TagProcessors['img'] = function( node )
+// Retrieves a entity (internal format) for a given character.
+function FCKXHtml_GetEntity( character )
 {
-	// The "ALT" attribute is required in XHTML.
-	if ( ! node.attributes.getNamedItem( 'alt' ) )
-		FCKXHtml._AppendAttribute( node, 'alt', '' ) ;
-
-	return node ;
+	// We cannot simply place the entities in the text, because the XML parser
+	// will translate & to &amp;. So we use a temporary marker which is replaced
+	// in the end of the processing.
+	var sEntity = FCKXHtmlEntities.Entities[ character ] || ( '#' + character.charCodeAt(0) ) ;
+	return '#?-:' + sEntity + ';' ;
 }
 
-FCKXHtml.TagProcessors['script'] = function( node, htmlNode )
+// Remove part of an attribute from a node according to a regExp
+FCKXHtml._RemoveAttribute = function( xmlNode, regX, sAttribute )
 {
-	// The "TYPE" attribute is required in XHTML.
-	if ( ! node.attributes.getNamedItem( 'type' ) )
-		FCKXHtml._AppendAttribute( node, 'type', 'text/javascript' ) ;
+	var oAtt = xmlNode.attributes.getNamedItem( sAttribute ) ;
 
-	node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.text ) ) ) ;
+	if ( oAtt && regX.test( oAtt.nodeValue ) )
+	{
+		var sValue = oAtt.nodeValue.replace( regX, '' ) ;
 
-	return node ;
+		if ( sValue.length == 0 )
+			xmlNode.attributes.removeNamedItem( sAttribute ) ;
+		else
+			oAtt.nodeValue = sValue ;
+	}
 }
 
-FCKXHtml.TagProcessors['style'] = function( node, htmlNode )
+// An object that hold tag specific operations.
+FCKXHtml.TagProcessors =
 {
-	// The "_fcktemp" attribute is used to mark the <STYLE> used by the editor
-	// to set some behaviors.
-	if ( htmlNode.getAttribute( '_fcktemp' ) )
-		return null ;
+	img : function( node, htmlNode )
+	{
+		// The "ALT" attribute is required in XHTML.
+		if ( ! node.attributes.getNamedItem( 'alt' ) )
+			FCKXHtml._AppendAttribute( node, 'alt', '' ) ;
 
-	// The "TYPE" attribute is required in XHTML.
-	if ( ! node.attributes.getNamedItem( 'type' ) )
-		FCKXHtml._AppendAttribute( node, 'type', 'text/css' ) ;
+		var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+		if ( sSavedUrl != null )
+			FCKXHtml._AppendAttribute( node, 'src', sSavedUrl ) ;
 
-	node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.innerHTML ) ) ) ;
+		return node ;
+	},
 
-	return node ;
-}
+	a : function( node, htmlNode )
+	{
+		// Firefox may create empty tags when deleting the selection in some special cases (SF-BUG 1556878).
+		if ( htmlNode.innerHTML.Trim().length == 0 && !htmlNode.name )
+			return false ;
 
-FCKXHtml.TagProcessors['title'] = function( node, htmlNode )
-{
-	node.appendChild( FCKXHtml.XML.createTextNode( FCK.EditorDocument.title ) ) ;
+		var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ;
+		if ( sSavedUrl != null )
+			FCKXHtml._AppendAttribute( node, 'href', sSavedUrl ) ;
 
-	return node ;
-}
 
-FCKXHtml.TagProcessors['base'] = function( node, htmlNode )
-{
-	// The "_fcktemp" attribute is used to mark the <BASE> tag when the editor
-	// automatically sets it using the FCKConfig.BaseHref configuration.
-	if ( htmlNode.getAttribute( '_fcktemp' ) )
-		return null ;
+		// Anchors with content has been marked with an additional class, now we must remove it.
+		if ( FCKBrowserInfo.IsIE )
+		{
+			FCKXHtml._RemoveAttribute( node, FCKRegexLib.FCK_Class, 'class' ) ;
 
-	// IE duplicates the BODY inside the <BASE /> tag (don't ask me why!).
-	// This tag processor does nothing... in this way, no child nodes are added
-	// (also because the BASE tag must be empty).
-	return node ;
-}
+			// Buggy IE, doesn't copy the name of changed anchors.
+			if ( htmlNode.name )
+				FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;
+		}
 
-FCKXHtml.TagProcessors['link'] = function( node, htmlNode )
-{
-	// The "_fcktemp" attribute is used to mark the fck_internal.css <LINK>
-	// reference.
-	if ( htmlNode.getAttribute( '_fcktemp' ) )
-		return null ;
+		node = FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
 
-	return node ;
-}
+		return node ;
+	},
 
-FCKXHtml.TagProcessors['table'] = function( node, htmlNode )
-{
-	// There is a trick to show table borders when border=0. We add to the
-	// table class the FCK__ShowTableBorders rule. So now we must remove it.
+	script : function( node, htmlNode )
+	{
+		// The "TYPE" attribute is required in XHTML.
+		if ( ! node.attributes.getNamedItem( 'type' ) )
+			FCKXHtml._AppendAttribute( node, 'type', 'text/javascript' ) ;
 
-	var oClassAtt = node.attributes.getNamedItem( 'class' ) ;
+		node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.text ) ) ) ;
 
-	if ( oClassAtt && FCKRegexLib.TableBorderClass.test( oClassAtt.nodeValue ) )
+		return node ;
+	},
+
+	style : function( node, htmlNode )
 	{
-		var sClass = oClassAtt.nodeValue.replace( FCKRegexLib.TableBorderClass, '' ) ;
+		// The "TYPE" attribute is required in XHTML.
+		if ( ! node.attributes.getNamedItem( 'type' ) )
+			FCKXHtml._AppendAttribute( node, 'type', 'text/css' ) ;
 
-		if ( sClass.length == 0 )
-			node.attributes.removeNamedItem( 'class' ) ;
-		else
-			FCKXHtml._AppendAttribute( node, 'class', sClass ) ;
+		node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( htmlNode.innerHTML ) ) ) ;
+
+		return node ;
+	},
+
+	title : function( node, htmlNode )
+	{
+		node.appendChild( FCKXHtml.XML.createTextNode( FCK.EditorDocument.title ) ) ;
+
+		return node ;
+	},
+
+	table : function( node, htmlNode )
+	{
+		// There is a trick to show table borders when border=0. We add to the
+		// table class the FCK__ShowTableBorders rule. So now we must remove it.
+
+		if ( FCKBrowserInfo.IsIE )
+			FCKXHtml._RemoveAttribute( node, FCKRegexLib.FCK_Class, 'class' ) ;
+
+		node = FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+		return node ;
+	},
+
+	// Fix nested <ul> and <ol>.
+	ol : function( node, htmlNode, targetNode )
+	{
+		if ( htmlNode.innerHTML.Trim().length == 0 )
+			return false ;
+
+		var ePSibling = targetNode.lastChild ;
+
+		if ( ePSibling && ePSibling.nodeType == 3 )
+			ePSibling = ePSibling.previousSibling ;
+
+		if ( ePSibling && ePSibling.nodeName.toUpperCase() == 'LI' )
+		{
+			htmlNode._fckxhtmljob = null ;
+			FCKXHtml._AppendNode( ePSibling, htmlNode ) ;
+			return false ;
+		}
+
+		node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+		return node ;
+	},
+
+	span : function( node, htmlNode )
+	{
+		// Firefox may create empty tags when deleting the selection in some special cases (SF-BUG 1084404).
+		if ( htmlNode.innerHTML.length == 0 )
+			return false ;
+
+		node = FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
+
+		return node ;
+	},
+
+	// IE loses contents of iframes, and Gecko does give it back HtmlEncoded
+	// Note: Opera does lose the content and doesn't provide it in the innerHTML string
+	iframe : function( node, htmlNode )
+	{
+		var sHtml = htmlNode.innerHTML ;
+
+		// Gecko does give back the encoded html
+		if ( FCKBrowserInfo.IsGecko )
+			sHtml = FCKTools.HTMLDecode( sHtml );
+		
+		// Remove the saved urls here as the data won't be processed as nodes
+		sHtml = sHtml.replace( /\s_fcksavedurl="[^"]*"/g, '' ) ;
+
+		node.appendChild( FCKXHtml.XML.createTextNode( FCKXHtml._AppendSpecialItem( sHtml ) ) ) ;
+
+		return node ;
 	}
+} ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode, false ) ;
-
-	return node ;
-}
\ No newline at end of file
+FCKXHtml.TagProcessors.ul = FCKXHtml.TagProcessors.ol ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_gecko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxhtml_gecko.js
- * 	Defines the FCKXHtml object, responsible for the XHTML operations.
- * 	Gecko specific.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKXHtml object, responsible for the XHTML operations.
+ * Gecko specific.
  */
 
 FCKXHtml._GetMainXmlString = function()
@@ -24,33 +28,24 @@
 	var oSerializer = new XMLSerializer() ;
 
 	// Return the serialized XML as a string.
-	// Due to a BUG on Gecko, the special chars sequence "#?-:" must be replaced with "&"
-	// for the XHTML entities.
-	return oSerializer.serializeToString( this.MainNode ).replace( FCKRegexLib.GeckoEntitiesMarker, '&' ) ;
+	return oSerializer.serializeToString( this.MainNode ) ;
 }
 
-// There is a BUG on Gecko... createEntityReference returns null.
-// So we use a trick to append entities on it.
-FCKXHtml._AppendEntity = function( xmlNode, entity )
-{
-	xmlNode.appendChild( this.XML.createTextNode( '#?-:' + entity + ';' ) ) ;
-}
-
 FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node )
 {
 	var aAttributes = htmlNode.attributes ;
-	
+
 	for ( var n = 0 ; n < aAttributes.length ; n++ )
 	{
 		var oAttribute = aAttributes[n] ;
-		
+
 		if ( oAttribute.specified )
 		{
 			var sAttName = oAttribute.nodeName.toLowerCase() ;
 			var sAttValue ;
 
-			// The "_fckxhtmljob" attribute is used to mark the already processed elements.
-			if ( sAttName == '_fckxhtmljob' )
+			// Ignore any attribute starting with "_fck".
+			if ( sAttName.StartsWith( '_fck' ) )
 				continue ;
 			// There is a bug in Mozilla that returns '_moz_xxx' attributes as specified.
 			else if ( sAttName.indexOf( '_moz' ) == 0 )
@@ -65,9 +60,6 @@
 			else
 				sAttValue = htmlNode.getAttribute( sAttName, 2 ) ;	// We must use getAttribute to get it exactly as it is defined.
 
-			if ( FCKConfig.ForceSimpleAmpersand && sAttValue.replace )
-				sAttValue = sAttValue.replace( /&/g, '___FCKAmp___' ) ;
-			
 			this._AppendAttribute( node, sAttName, sAttValue ) ;
 		}
 	}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_ie.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtml_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxhtml_ie.js
- * 	Defines the FCKXHtml object, responsible for the XHTML operations.
- * 	IE specific.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKXHtml object, responsible for the XHTML operations.
+ * IE specific.
  */
 
 FCKXHtml._GetMainXmlString = function()
@@ -23,11 +27,6 @@
 	return this.MainNode.xml ;
 }
 
-FCKXHtml._AppendEntity = function( xmlNode, entity )
-{
-	xmlNode.appendChild( this.XML.createEntityReference( entity ) ) ;
-}
-
 FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node, nodeName )
 {
 	var aAttributes = htmlNode.attributes ;
@@ -41,13 +40,13 @@
 			var sAttName = oAttribute.nodeName.toLowerCase() ;
 			var sAttValue ;
 
-			// The "_fckxhtmljob" attribute is used to mark the already processed elements.
-			if ( sAttName == '_fckxhtmljob' )
+			// Ignore any attribute starting with "_fck".
+			if ( sAttName.StartsWith( '_fck' ) )
 				continue ;
 			// The following must be done because of a bug on IE regarding the style
 			// attribute. It returns "null" for the nodeValue.
 			else if ( sAttName == 'style' )
-				sAttValue = htmlNode.style.cssText ;
+				sAttValue = htmlNode.style.cssText.replace( FCKRegexLib.StyleProperties, FCKTools.ToLowerCase ) ;
 			// There are two cases when the oAttribute.nodeValue must be used:
 			//		- for the "class" attribute
 			//		- for events attributes (on IE only).
@@ -58,14 +57,17 @@
 			// XHTML doens't support attribute minimization like "CHECKED". It must be trasformed to cheched="checked".
 			else if ( oAttribute.nodeValue === true )
 				sAttValue = sAttName ;
-			// We must use getAttribute to get it exactly as it is defined.
-			else if ( ! (sAttValue = htmlNode.getAttribute( sAttName, 2 ) ) )
-				sAttValue = oAttribute.nodeValue ;
-
-			if ( FCKConfig.ForceSimpleAmpersand && sAttValue.replace )
-				sAttValue = sAttValue.replace( /&/g, '___FCKAmp___' ) ;
-
-			this._AppendAttribute( node, sAttName, sAttValue ) ;
+			else
+			{
+				// We must use getAttribute to get it exactly as it is defined.
+				// There are some rare cases that IE throws an error here, so we must try/catch.
+				try
+				{
+					sAttValue = htmlNode.getAttribute( sAttName, 2 ) ;
+				}
+				catch (e) {}
+			}
+			this._AppendAttribute( node, sAttName, sAttValue || oAttribute.nodeValue ) ;
 		}
 	}
 }
@@ -95,7 +97,7 @@
 	if ( node.attributes.length == 0 )
 		node = FCKXHtml.XML.createDocumentFragment() ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+	node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
 
 	return node ;
 }
@@ -109,6 +111,9 @@
 	if ( htmlNode.value && !node.attributes.getNamedItem( 'value' ) )
 		FCKXHtml._AppendAttribute( node, 'value', htmlNode.value ) ;
 
+	if ( !node.attributes.getNamedItem( 'type' ) )
+		FCKXHtml._AppendAttribute( node, 'type', 'text' ) ;
+
 	return node ;
 }
 
@@ -118,30 +123,11 @@
 	if ( htmlNode.selected && !node.attributes.getNamedItem( 'selected' ) )
 		FCKXHtml._AppendAttribute( node, 'selected', 'selected' ) ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+	node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
 
 	return node ;
 }
 
-// There is a BUG in IE regarding the ABBR tag.
-FCKXHtml.TagProcessors['abbr'] = function( node, htmlNode )
-{
-	var oNextNode = htmlNode.nextSibling ;
-
-	while ( true )
-	{
-		if ( oNextNode && oNextNode.nodeName != '/ABBR' )
-		{
-			FCKXHtml._AppendNode( node, oNextNode ) ;
-			oNextNode = oNextNode.nextSibling ;
-		}
-		else
-			break ;
-	}
-
-	return node ;
-}
-
 // IE ignores the "COORDS" and "SHAPE" attribute so we must add it manually.
 FCKXHtml.TagProcessors['area'] = function( node, htmlNode )
 {
@@ -154,9 +140,9 @@
 
 	if ( ! node.attributes.getNamedItem( 'shape' ) )
 	{
-		var sCoords = htmlNode.getAttribute( 'shape', 2 ) ;
-		if ( sCoords && sCoords.length > 0 )
-			FCKXHtml._AppendAttribute( node, 'shape', sCoords ) ;
+		var sShape = htmlNode.getAttribute( 'shape', 2 ) ;
+		if ( sShape && sShape.length > 0 )
+			FCKXHtml._AppendAttribute( node, 'shape', sShape ) ;
 	}
 
 	return node ;
@@ -167,31 +153,42 @@
 	if ( htmlNode.htmlFor.length > 0 )
 		FCKXHtml._AppendAttribute( node, 'for', htmlNode.htmlFor ) ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+	node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
 
 	return node ;
 }
 
 FCKXHtml.TagProcessors['form'] = function( node, htmlNode )
 {
-	if ( htmlNode.acceptCharset.length > 0 && htmlNode.acceptCharset != 'UNKNOWN' )
+	if ( htmlNode.acceptCharset && htmlNode.acceptCharset.length > 0 && htmlNode.acceptCharset != 'UNKNOWN' )
 		FCKXHtml._AppendAttribute( node, 'accept-charset', htmlNode.acceptCharset ) ;
 
-	if ( htmlNode.name ) 
-		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ; 
+	if ( htmlNode.name )
+		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+	node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
 
 	return node ;
 }
 
 // IE doens't hold the name attribute as an attribute for the <TEXTAREA> and <SELECT> tags.
 FCKXHtml.TagProcessors['textarea'] = FCKXHtml.TagProcessors['select'] = function( node, htmlNode )
-{ 
-	if ( htmlNode.name ) 
-		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ; 
+{
+	if ( htmlNode.name )
+		FCKXHtml._AppendAttribute( node, 'name', htmlNode.name ) ;
 
-	FCKXHtml._AppendChildNodes( node, htmlNode ) ; 
- 
-	return node ; 
-} 
\ No newline at end of file
+	node = FCKXHtml._AppendChildNodes( node, htmlNode ) ;
+
+	return node ;
+}
+
+// On very rare cases, IE is loosing the "align" attribute for DIV. (right align and apply bulleted list)
+FCKXHtml.TagProcessors['div'] = function( node, htmlNode )
+{
+	if ( htmlNode.align.length > 0 )
+		FCKXHtml._AppendAttribute( node, 'align', htmlNode.align ) ;
+
+	node = FCKXHtml._AppendChildNodes( node, htmlNode, true ) ;
+
+	return node ;
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtmlentities.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtmlentities.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/_source/internals/fckxhtmlentities.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,322 +1,345 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxhtmlentities.js
- * 	This file define the HTML entities handled by the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file define the HTML entities handled by the editor.
  */
 
 var FCKXHtmlEntities = new Object() ;
 
-if ( FCKConfig.ProcessHTMLEntities )
+FCKXHtmlEntities.Initialize = function()
 {
-	FCKXHtmlEntities.Entities = {
-		// Latin-1 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',
+	if ( FCKXHtmlEntities.Entities )
+		return ;
 
-		// Symbols and Greek Letters 
+	var sChars = '' ;
+	var oEntities, e ;
 
-		'Æ’':'fnof',
-		'•':'bull',
-		'…':'hellip',
-		'′':'prime',
-		'″':'Prime',
-		'‾':'oline',
-		'⁄':'frasl',
-		'℘':'weierp',
-		'â„‘':'image',
-		'ℜ':'real',
-		'â„¢':'trade',
-		'ℵ':'alefsym',
-		'←':'larr',
-		'↑':'uarr',
-		'→':'rarr',
-		'↓':'darr',
-		'↔':'harr',
-		'↵':'crarr',
-		'⇐':'lArr',
-		'⇑':'uArr',
-		'⇒':'rArr',
-		'⇓':'dArr',
-		'⇔':'hArr',
-		'∀':'forall',
-		'∂':'part',
-		'∃':'exist',
-		'∅':'empty',
-		'∇':'nabla',
-		'∈':'isin',
-		'∉':'notin',
-		'∋':'ni',
-		'∏':'prod',
-		'∑':'sum',
-		'−':'minus',
-		'∗':'lowast',
-		'√':'radic',
-		'∝':'prop',
-		'∞':'infin',
-		'∠':'ang',
-		'∧':'and',
-		'∨':'or',
-		'∩':'cap',
-		'∪':'cup',
-		'∫':'int',
-		'∴':'there4',
-		'∼':'sim',
-		'≅':'cong',
-		'≈':'asymp',
-		'≠':'ne',
-		'≡':'equiv',
-		'≤':'le',
-		'≥':'ge',
-		'⊂':'sub',
-		'⊃':'sup',
-		'⊄':'nsub',
-		'⊆':'sube',
-		'⊇':'supe',
-		'⊕':'oplus',
-		'⊗':'otimes',
-		'⊥':'perp',
-		'â‹…':'sdot',
-		'â—Š':'loz',
-		'â™ ':'spades',
-		'♣':'clubs',
-		'♥':'hearts',
-		'♦':'diams',
+	if ( FCKConfig.ProcessHTMLEntities )
+	{
+		FCKXHtmlEntities.Entities = {
+			// Latin-1 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',
 
-		// Other Special Characters 
+			// Symbols
 
-		'"':'quot',
-	//	'&':'amp',		// This entity is automatically handled by the XHTML parser.
-	//	'<':'lt',		// This entity is automatically handled by the XHTML parser.
-	//	'>':'gt',		// This entity is automatically handled by the XHTML parser.
-		'ˆ':'circ',
-		'˜':'tilde',
-		' ':'ensp',
-		' ':'emsp',
-		' ':'thinsp',
-		'‌':'zwnj',
-		'‍':'zwj',
-		'‎':'lrm',
-		'‏':'rlm',
-		'–':'ndash',
-		'—':'mdash',
-		'‘':'lsquo',
-		'’':'rsquo',
-		'‚':'sbquo',
-		'“':'ldquo',
-		'”':'rdquo',
-		'„':'bdquo',
-		'†':'dagger',
-		'‡':'Dagger',
-		'‰':'permil',
-		'‹':'lsaquo',
-		'›':'rsaquo',
-		'€':'euro'
-	} ;
+			'Æ’':'fnof',
+			'•':'bull',
+			'…':'hellip',
+			'′':'prime',
+			'″':'Prime',
+			'‾':'oline',
+			'⁄':'frasl',
+			'℘':'weierp',
+			'â„‘':'image',
+			'ℜ':'real',
+			'â„¢':'trade',
+			'ℵ':'alefsym',
+			'←':'larr',
+			'↑':'uarr',
+			'→':'rarr',
+			'↓':'darr',
+			'↔':'harr',
+			'↵':'crarr',
+			'⇐':'lArr',
+			'⇑':'uArr',
+			'⇒':'rArr',
+			'⇓':'dArr',
+			'⇔':'hArr',
+			'∀':'forall',
+			'∂':'part',
+			'∃':'exist',
+			'∅':'empty',
+			'∇':'nabla',
+			'∈':'isin',
+			'∉':'notin',
+			'∋':'ni',
+			'∏':'prod',
+			'∑':'sum',
+			'−':'minus',
+			'∗':'lowast',
+			'√':'radic',
+			'∝':'prop',
+			'∞':'infin',
+			'∠':'ang',
+			'∧':'and',
+			'∨':'or',
+			'∩':'cap',
+			'∪':'cup',
+			'∫':'int',
+			'∴':'there4',
+			'∼':'sim',
+			'≅':'cong',
+			'≈':'asymp',
+			'≠':'ne',
+			'≡':'equiv',
+			'≤':'le',
+			'≥':'ge',
+			'⊂':'sub',
+			'⊃':'sup',
+			'⊄':'nsub',
+			'⊆':'sube',
+			'⊇':'supe',
+			'⊕':'oplus',
+			'⊗':'otimes',
+			'⊥':'perp',
+			'â‹…':'sdot',
+			'â—Š':'loz',
+			'â™ ':'spades',
+			'♣':'clubs',
+			'♥':'hearts',
+			'♦':'diams',
 
-	FCKXHtmlEntities.Chars = '' ;
+			// Other Special Characters
 
-	// Process Base Entities.
-	for ( var e in FCKXHtmlEntities.Entities )
-		FCKXHtmlEntities.Chars += e ;
+			'"':'quot',
+		//	'&':'amp',		// This entity is automatically handled by the XHTML parser.
+		//	'<':'lt',		// This entity is automatically handled by the XHTML parser.
+		//	'>':'gt',		// This entity is automatically handled by the XHTML parser.
+			'ˆ':'circ',
+			'˜':'tilde',
+			' ':'ensp',
+			' ':'emsp',
+			' ':'thinsp',
+			'‌':'zwnj',
+			'‍':'zwj',
+			'‎':'lrm',
+			'‏':'rlm',
+			'–':'ndash',
+			'—':'mdash',
+			'‘':'lsquo',
+			'’':'rsquo',
+			'‚':'sbquo',
+			'“':'ldquo',
+			'”':'rdquo',
+			'„':'bdquo',
+			'†':'dagger',
+			'‡':'Dagger',
+			'‰':'permil',
+			'‹':'lsaquo',
+			'›':'rsaquo',
+			'€':'euro'
+		} ;
 
-	// Include Latin Letters Entities.
-	if ( FCKConfig.IncludeLatinEntities )
-	{
-		var oEntities = {
-			'À':'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 ( var e in oEntities )
+		// Process Base Entities.
+		for ( e in FCKXHtmlEntities.Entities )
+			sChars += e ;
+
+		// Include Latin Letters Entities.
+		if ( FCKConfig.IncludeLatinEntities )
 		{
-			FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
-			FCKXHtmlEntities.Chars += e ;
+			oEntities = {
+				'À':'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 oEntities )
+			{
+				FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
+				sChars += e ;
+			}
+
+			oEntities = null ;
 		}
-		
-		oEntities = null ;
-	}
 
-	// Include Greek Letters Entities.
-	if ( FCKConfig.IncludeGreekEntities )
-	{
-		var oEntities = {
-			'Α':'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'
-		} ;
+		// Include Greek Letters Entities.
+		if ( FCKConfig.IncludeGreekEntities )
+		{
+			oEntities = {
+				'Α':'Alpha',
+				'Î’':'Beta',
+				'Γ':'Gamma',
+				'Δ':'Delta',
+				'Ε':'Epsilon',
+				'Ζ':'Zeta',
+				'Η':'Eta',
+				'Θ':'Theta',
+				'Ι':'Iota',
+				'Κ':'Kappa',
+				'Λ':'Lambda',
+				'Μ':'Mu',
+				'Ν':'Nu',
+				'Ξ':'Xi',
+				'Ο':'Omicron',
+				'Π':'Pi',
+				'Ρ':'Rho',
+				'Σ':'Sigma',
+				'Τ':'Tau',
+				'Î¥':'Upsilon',
+				'Φ':'Phi',
+				'Χ':'Chi',
+				'Ψ':'Psi',
+				'Ω':'Omega',
+				'α':'alpha',
+				'β':'beta',
+				'γ':'gamma',
+				'δ':'delta',
+				'ε':'epsilon',
+				'ζ':'zeta',
+				'η':'eta',
+				'θ':'theta',
+				'ι':'iota',
+				'κ':'kappa',
+				'λ':'lambda',
+				'μ':'mu',
+				'ν':'nu',
+				'ξ':'xi',
+				'ο':'omicron',
+				'Ï€':'pi',
+				'ρ':'rho',
+				'Ï‚':'sigmaf',
+				'σ':'sigma',
+				'Ï„':'tau',
+				'Ï…':'upsilon',
+				'φ':'phi',
+				'χ':'chi',
+				'ψ':'psi',
+				'ω':'omega'
+			} ;
 
-		for ( var e in oEntities )
-		{
-			FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
-			FCKXHtmlEntities.Chars += e ;
+			for ( e in oEntities )
+			{
+				FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
+				sChars += e ;
+			}
+
+			oEntities = null ;
 		}
+	}
+	else
+	{
+		FCKXHtmlEntities.Entities = {} ;
 
-		oEntities = null ;
+		// Even if we are not processing the entities, we must render the &nbsp;
+		// correctly. As we don't want HTML entities, let's use its numeric
+		// representation (&#160).
+		sChars = ' ' ;
 	}
 
-	// Create and Compile the Regex used to separate the entities from the text.
-	FCKXHtmlEntities.EntitiesRegex = new RegExp('','') ;
-	FCKXHtmlEntities.EntitiesRegex.compile( '[' + FCKXHtmlEntities.Chars + ']|[^' + FCKXHtmlEntities.Chars + ']+', 'g' ) ;
-}
-else
-{
-	// Even if we are not processing the entities, we must respect the &nbsp;.
-	FCKXHtmlEntities.Entities = { ' ':'nbsp' } ;
-	FCKXHtmlEntities.EntitiesRegex = /[ ]|[^ ]+/g ;
+	// Create the Regex used to find entities in the text.
+	var sRegexPattern = '[' + sChars + ']' ;
+
+	if ( FCKConfig.ProcessNumericEntities )
+		sRegexPattern = '[^ -~]|' + sRegexPattern ;
+
+	var sAdditional = FCKConfig.AdditionalNumericEntities ;
+
+	if ( sAdditional && sAdditional.length > 0 )
+		sRegexPattern += '|' + FCKConfig.AdditionalNumericEntities ;
+
+	FCKXHtmlEntities.EntitiesRegex = new RegExp( sRegexPattern, 'g' ) ;
 }
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.htc
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.htc	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/hiddenfield.htc	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +0,0 @@
-<public:component lightweight="true">
-
-<public:attach event="oncontentready" onevent="ShowField()" />
-<public:attach event="ondoubleclick" onevent="EditField()" />
-
-<script language="javascript">
-
-var bIsHiddenField = this.type == 'hidden' ;
-
-function ShowField()
-{
-	if ( bIsHiddenField ) 
-	{
-		this.runtimeStyle.width				= '20px' ;
-		this.runtimeStyle.height			= '20px' ;
-		this.runtimeStyle.border			= '1px dotted #FF0000' ;
-		this.runtimeStyle.backgroundImage	= 'url(css/behaviors/hiddenfield.gif)' ;
-		this.runtimeStyle.fontSize			= '99px' ;
-	}
-}
-
-function EditField()
-{
-	if ( bIsHiddenField ) 
-		alert( this.outerHTML ) ;
-}
-
-</script>
-
-</public:component>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/showtableborders.htc
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/showtableborders.htc	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/css/behaviors/showtableborders.htc	2007-06-01 20:54:16 UTC (rev 76138)
@@ -4,8 +4,8 @@
 <public:attach event="onpropertychange" onevent="OnPropertyChange()" />
 
 <script language="javascript">
+
 var oClassRegex = /\s*FCK__ShowTableBorders/ ;
-var FCKConfig = window.parent.FCKConfig ;
 
 function ShowBorders()
 {
@@ -28,7 +28,7 @@
 function OnPropertyChange()
 {
 	if ( event.propertyName == 'border' || event.propertyName == 'className' )
-		ShowBorders() ;
+		ShowBorders.call(this) ;
 }
 
 </script>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_editorarea.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_editorarea.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_editorarea.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,49 +1,73 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_editorarea.css
- * 	This is the default CSS file used by the editor area. It defines the
- * 	initial font of the editor and background color.
- * 
- * 	A user can configure the editor to use another CSS file. Just change
- * 	the value of the FCKConfig.EditorAreaCSS key in the configuration
- * 	file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 default CSS file used by the editor area. It defines the
+ * initial font of the editor and background color.
+ *
+ * A user can configure the editor to use another CSS file. Just change
+ * the value of the FCKConfig.EditorAreaCSS key in the configuration
+ * file.
  */
 
+/*
+    The "body" styles should match your editor web site, mainly regarding
+    background color and font family and size.
+*/
+
 body
 {
-	font-family: Arial, Verdana, Sans-Serif;
-	font-size: 12px;
+	background-color: #ffffff;
 	padding: 5px 5px 5px 5px;
 	margin: 0px;
-	border-style: none;
-	background-color: #ffffff;
 }
 
-/* 
-	Just uncomment the following block if you want to avoid spaces between 
+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 */
+}
+
+/*
+	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
+p, ul, li
 {
 	margin-top: 0px;
 	margin-bottom: 0px;
 }
 */
 
+/*
+    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/editor/css/fck_internal.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_internal.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_internal.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,31 +1,43 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_internal.css
- * 	This CSS Style Sheet defines rules used by the editor for its internal use.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 CSS Style Sheet defines rules used by the editor for its internal use.
  */
 
-TABLE.FCK__ShowTableBorders, TABLE.FCK__ShowTableBorders TD
+/* Fix to allow putting the caret at the end of the
+content in Firefox if clicking below the content */
+html
 {
-	border: #d3d3d3 1px solid ;
+	min-height: 100%;
 }
 
-FORM
+
+table.FCK__ShowTableBorders, table.FCK__ShowTableBorders td, table.FCK__ShowTableBorders th
 {
+	border: #d3d3d3 1px solid;
+}
+
+form
+{
 	border: 1px dotted #FF0000;
-	padding: 2px ;
+	padding: 2px;
 }
 
 .FCK__Flash
@@ -34,19 +46,43 @@
 	background-position: center center;
 	background-image: url(images/fck_flashlogo.gif);
 	background-repeat: no-repeat;
-	width: 80px ;
-	height: 80px ;
+	width: 80px;
+	height: 80px;
 }
 
+/* Empty anchors images */
 .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 ;
+	width: 16px;
+	height: 15px;
+	vertical-align: middle;
 }
 
+/* Anchors with content */
+.FCK__AnchorC
+{
+	border: 1px dotted #00F;
+	background-position: 1 center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
+/* Any anchor for non-IE, if we combine it
+   with the previous rule IE ignores all. */
+a[name]
+{
+	border: 1px dotted #00F;
+	background-position: 0 center;
+	background-image: url(images/fck_anchor.gif);
+	background-repeat: no-repeat;
+	padding-left: 18px;
+}
+
 .FCK__PageBreak
 {
 	background-position: center center;
@@ -58,7 +94,18 @@
 	width: 100%;
 	border-top: #999999 1px dotted;
 	border-bottom: #999999 1px dotted;
-	border-right:0px;
-	border-left:0px;
+	border-right: 0px;
+	border-left: 0px;
 	height: 5px;
-}
\ No newline at end of file
+}
+
+/* Hidden fields */
+.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;
+}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_showtableborders_gecko.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_showtableborders_gecko.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/css/fck_showtableborders_gecko.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,42 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_showtableborders_gecko.css
- * 	This CSS Style Sheet defines the rules to show table borders on Gecko.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 CSS Style Sheet defines the rules to show table borders on Gecko.
  */
 
-TABLE[border="0"], TABLE[border="0"] TD
+/* For tables with the "border" attribute set to "0" */
+table[border="0"],
+table[border="0"] > tr > td, table[border="0"] > tr > th,
+table[border="0"] > tbody > tr > td, table[border="0"] > tbody > tr > th,
+table[border="0"] > thead > tr > td, table[border="0"] > thead > tr > th,
+table[border="0"] > tfoot > tr > td, table[border="0"] > tfoot > tr > th
 {
-	border: #d3d3d3 1px solid
+	border: #d3d3d3 1px dotted ;
 }
+
+/* For tables with no "border" attribute set */
+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
+{
+	border: #d3d3d3 1px dotted ;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/css/images/fck_hiddenfield.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/css/images/fck_hiddenfield.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +1,30 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_dialog_common.css
- * 	This is the CSS file used for interface details in some dialog
- * 	windows.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 CSS file used for interface details in some dialog
+ * windows.
  */
 
 .ImagePreviewArea
 {
 	border: #000000 1px solid;
-	padding: 5px;
 	overflow: auto;
 	width: 100%;
 	height: 170px;
@@ -58,7 +61,7 @@
 	width: 16px;
 	height: 16px;
 	background-repeat: no-repeat;
-	border: 1px none;
+	border: none 1px;
 	font-size: 1px ;
 }
 
@@ -69,7 +72,7 @@
 
 .BtnOver
 {
-	border: 1px outset;
+	border: outset 1px;
 	cursor: pointer;
 	cursor: hand;
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/fck_dialog_common.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,28 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_dialog_common.js
- * 	Useful functions used by almost all dialog window pages.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Useful functions used by almost all dialog window pages.
  */
 
+var GECKO_BOGUS = '<br type="_moz">' ;
+
 // Gets a element by its Id. Used for shorter coding.
 function GetE( elementId )
 {
@@ -45,9 +51,9 @@
 	if ( oAtt == null || !oAtt.specified )
 		return valueIfNull ? valueIfNull : '' ;
 
-	var oValue ;
-	
-	if ( !( oValue = element.getAttribute( attName, 2 ) ) )
+	var oValue = element.getAttribute( attName, 2 ) ;
+
+	if ( oValue == null )
 		oValue = oAtt.nodeValue ;
 
 	return ( oValue == null ? valueIfNull : oValue ) ;
@@ -56,31 +62,30 @@
 // Functions used by text fiels to accept numbers only.
 function IsDigit( e )
 {
-	e = e || event ;
+	if ( !e )
+		e = event ;
+
 	var iCode = ( e.keyCode || e.charCode ) ;
 
-	event.returnValue =
-		(
+	return (
 			( iCode >= 48 && iCode <= 57 )		// Numbers
 			|| (iCode >= 37 && iCode <= 40)		// Arrows
 			|| iCode == 8						// Backspace
 			|| iCode == 46						// Delete
-		) ;
-
-	return event.returnValue ;
+	) ;
 }
 
-String.prototype.trim = function()
+String.prototype.Trim = function()
 {
 	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
 }
 
-String.prototype.startsWith = function( value )
+String.prototype.StartsWith = function( value )
 {
 	return ( this.substr( 0, value.length ) == value ) ;
 }
 
-String.prototype.remove = function( start, length )
+String.prototype.Remove = function( start, length )
 {
 	var s = '' ;
 
@@ -91,4 +96,59 @@
 		s += this.substring( start + length , this.length ) ;
 
 	return s ;
+}
+
+String.prototype.ReplaceAll = function( searchArray, replaceArray )
+{
+	var replaced = this ;
+
+	for ( var i = 0 ; i < searchArray.length ; i++ )
+	{
+		replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
+	}
+
+	return replaced ;
+}
+
+function OpenFileBrowser( url, width, height )
+{
+	// oEditor must be defined.
+
+	var iLeft = ( oEditor.FCKConfig.ScreenWidth  - width ) / 2 ;
+	var iTop  = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;
+
+	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;
+	sOptions += ",width=" + width ;
+	sOptions += ",height=" + height ;
+	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 ) ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/moz-bindings.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/moz-bindings.xml	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/common/moz-bindings.xml	2007-06-01 20:54:16 UTC (rev 76138)
@@ -7,6 +7,7 @@
 			</constructor>
 			<method name="CheckIsDigit">
 				<body>
+					<![CDATA[
 					var iCode = keyCode ;
 
 					var bAccepted =
@@ -18,7 +19,8 @@
 						) ;
 
 					return bAccepted ;
-			   </body>
+					]]>
+				</body>
 			</method>
 		</implementation>
 		<events>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about/lgpl.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about/lgpl.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about/lgpl.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,434 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>GNU Lesser General Public License</title>
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-		<STYLE>
-			BODY { FONT-SIZE: 12px }
-		</STYLE>
-	</head>
-	<body>
-		<H3>GNU Lesser General Public License</H3>
-		<TT>
-			<P>Version 2.1, February 1999</P>
-			<BLOCKQUOTE>
-				<P>Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 
-					330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute 
-					verbatim copies of this license document, but changing it is not allowed.</P>
-				<P>[This is the first released version of the Lesser GPL. It also counts as the 
-					successor of the GNU Library Public License, version 2, hence the version 
-					number 2.1.]</P>
-			</BLOCKQUOTE>
-			<H4>Preamble</H4>
-			<P>The licenses for most software are designed to take away your freedom to share 
-				and change it. By contrast, the GNU General Public Licenses are intended to 
-				guarantee your freedom to share and change free software--to make sure the 
-				software is free for all its users.
-			</P>
-			<P>This license, the Lesser General Public License, applies to some specially 
-				designated software packages--typically libraries--of the Free Software 
-				Foundation and other authors who decide to use it. You can use it too, but we 
-				suggest you first think carefully about whether this license or the ordinary 
-				General Public License is the better strategy to use in any particular case, 
-				based on the explanations below.
-			</P>
-			<P>When we speak of free software, we are referring to freedom of use, not price. 
-				Our General Public Licenses are designed to make sure that you have the freedom 
-				to distribute copies of free software (and charge for this service if you 
-				wish); that you receive source code or can get it if you want it; that you can 
-				change the software and use pieces of it in new free programs; and that you are 
-				informed that you can do these things.</P>
-			<P>To protect your rights, we need to make restrictions that forbid distributors to 
-				deny you these rights or to ask you to surrender these rights. These 
-				restrictions translate to certain responsibilities for you if you distribute 
-				copies of the library or if you modify it.
-			</P>
-			<P>For example, if you distribute copies of the library, whether gratis or for a 
-				fee, you must give the recipients all the rights that we gave you. You must 
-				make sure that they, too, receive or can get the source code. If you link other 
-				code with the library, you must provide complete object files to the 
-				recipients, so that they can relink them with the library after making changes 
-				to the library and recompiling it. And you must show them these terms so they 
-				know their rights.
-			</P>
-			<P>We protect your rights with a two-step method: (1) we copyright the library, and 
-				(2) we offer you this license, which gives you legal permission to copy, 
-				distribute and/or modify the library.
-			</P>
-			<P>To protect each distributor, we want to make it very clear that there is no 
-				warranty for the free library. Also, if the library is modified by someone else 
-				and passed on, the recipients should know that what they have is not the 
-				original version, so that the original author's reputation will not be affected 
-				by problems that might be introduced by others.
-			</P>
-			<P>Finally, software patents pose a constant threat to the existence of any free 
-				program. We wish to make sure that a company cannot effectively restrict the 
-				users of a free program by obtaining a restrictive license from a patent 
-				holder. Therefore, we insist that any patent license obtained for a version of 
-				the library must be consistent with the full freedom of use specified in this 
-				license.
-			</P>
-			<P>Most GNU software, including some libraries, is covered by the ordinary GNU 
-				General Public License. This license, the GNU Lesser General Public License, 
-				applies to certain designated libraries, and is quite different from the 
-				ordinary General Public License. We use this license for certain libraries in 
-				order to permit linking those libraries into non-free programs.
-			</P>
-			<P>When a program is linked with a library, whether statically or using a shared 
-				library, the combination of the two is legally speaking a combined work, a 
-				derivative of the original library. The ordinary General Public License 
-				therefore permits such linking only if the entire combination fits its criteria 
-				of freedom. The Lesser General Public License permits more lax criteria for 
-				linking other code with the library.
-			</P>
-			<P>We call this license the "Lesser" General Public License because it does Less to 
-				protect the user's freedom than the ordinary General Public License. It also 
-				provides other free software developers Less of an advantage over competing 
-				non-free programs. These disadvantages are the reason we use the ordinary 
-				General Public License for many libraries. However, the Lesser license provides 
-				advantages in certain special circumstances.
-			</P>
-			<P>For example, on rare occasions, there may be a special need to encourage the 
-				widest possible use of a certain library, so that it becomes a de-facto 
-				standard. To achieve this, non-free programs must be allowed to use the 
-				library. A more frequent case is that a free library does the same job as 
-				widely used non-free libraries. In this case, there is little to gain by 
-				limiting the free library to free software only, so we use the Lesser General 
-				Public License.
-			</P>
-			<P>In other cases, permission to use a particular library in non-free programs 
-				enables a greater number of people to use a large body of free software. For 
-				example, permission to use the GNU C Library in non-free programs enables many 
-				more people to use the whole GNU operating system, as well as its variant, the 
-				GNU/Linux operating system.
-			</P>
-			<P>Although the Lesser General Public License is Less protective of the users' 
-				freedom, it does ensure that the user of a program that is linked with the 
-				Library has the freedom and the wherewithal to run that program using a 
-				modified version of the Library.
-			</P>
-			<P>The precise terms and conditions for copying, distribution and modification 
-				follow. Pay close attention to the difference between a "work based on the 
-				library" and a "work that uses the library". The former contains code derived 
-				from the library, whereas the latter must be combined with the library in order 
-				to run.
-			</P>
-			<H4>TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</H4>
-			<P><STRONG>0.</STRONG> This License Agreement applies to any software library or 
-				other program which contains a notice placed by the copyright holder or other 
-				authorized party saying it may be distributed under the terms of this Lesser 
-				General Public License (also called "this License"). Each licensee is addressed 
-				as "you".</P>
-			<P>A "library" means a collection of software functions and/or data prepared so as 
-				to be conveniently linked with application programs (which use some of those 
-				functions and data) to form executables.
-			</P>
-			<P>The "Library", below, refers to any such software library or work which has been 
-				distributed under these terms. A "work based on the Library" means either the 
-				Library or any derivative work under copyright law: that is to say, a work 
-				containing the Library or a portion of it, either verbatim or with 
-				modifications and/or translated straightforwardly into another language. 
-				(Hereinafter, translation is included without limitation in the term 
-				"modification".)
-			</P>
-			<P>"Source code" for a work means the preferred form of the work for making 
-				modifications to it. For a library, complete source code means all the source 
-				code for all modules it contains, plus any associated interface definition 
-				files, plus the scripts used to control compilation and installation of the 
-				library.</P>
-			<P>Activities other than copying, distribution and modification are not covered by 
-				this License; they are outside its scope. The act of running a program using 
-				the Library is not restricted, and output from such a program is covered only 
-				if its contents constitute a work based on the Library (independent of the use 
-				of the Library in a tool for writing it). Whether that is true depends on what 
-				the Library does and what the program that uses the Library does.
-			</P>
-			<P><STRONG>1.</STRONG> You may copy and distribute verbatim copies of the Library's 
-				complete source code as you receive it, in any medium, provided that you 
-				conspicuously and appropriately publish on each copy an appropriate copyright 
-				notice and disclaimer of warranty; keep intact all the notices that refer to 
-				this License and to the absence of any warranty; and distribute a copy of this 
-				License along with the Library.
-			</P>
-			<P>You may charge a fee for the physical act of transferring a copy, and you may at 
-				your option offer warranty protection in exchange for a fee.
-			</P>
-			<P><STRONG>2.</STRONG> You may modify your copy or copies of the Library or any 
-				portion of it, thus forming a work based on the Library, and copy and 
-				distribute such modifications or work under the terms of Section 1 above, 
-				provided that you also meet all of these conditions:
-			</P>
-			<BLOCKQUOTE>
-				<P>a) The modified work must itself be a software library.
-				</P>
-				<P>b) You must cause the files modified to carry prominent notices stating that you 
-					changed the files and the date of any change.</P>
-				<P>c) You must cause the whole of the work to be licensed at no charge to all third 
-					parties under the terms of this License.
-				</P>
-				<P>d) If a facility in the modified Library refers to a function or a table of data 
-					to be supplied by an application program that uses the facility, other than as 
-					an argument passed when the facility is invoked, then you must make a good 
-					faith effort to ensure that, in the event an application does not supply such 
-					function or table, the facility still operates, and performs whatever part of 
-					its purpose remains meaningful.
-				</P>
-				<P>(For example, a function in a library to compute square roots has a purpose that 
-					is entirely well-defined independent of the application. Therefore, Subsection 
-					2d requires that any application-supplied function or table used by this 
-					function must be optional: if the application does not supply it, the square 
-					root function must still compute square roots.)
-				</P>
-				<P>These requirements apply to the modified work as a whole. If identifiable 
-					sections of that work are not derived from the Library, and can be reasonably 
-					considered independent and separate works in themselves, then this License, and 
-					its terms, do not apply to those sections when you distribute them as separate 
-					works. But when you distribute the same sections as part of a whole which is a 
-					work based on the Library, the distribution of the whole must be on the terms 
-					of this License, whose permissions for other licensees extend to the entire 
-					whole, and thus to each and every part regardless of who wrote it.
-				</P>
-				<P>Thus, it is not the intent of this section to claim rights or contest your 
-					rights to work written entirely by you; rather, the intent is to exercise the 
-					right to control the distribution of derivative or collective works based on 
-					the Library.
-				</P>
-				<P>In addition, mere aggregation of another work not based on the Library with the 
-					Library (or with a work based on the Library) on a volume of a storage or 
-					distribution medium does not bring the other work under the scope of this 
-					License.
-				</P>
-			</BLOCKQUOTE>
-			<P><STRONG>3.</STRONG> You may opt to apply the terms of the ordinary GNU General 
-				Public License instead of this License to a given copy of the Library. To do 
-				this, you must alter all the notices that refer to this License, so that they 
-				refer to the ordinary GNU General Public License, version 2, instead of to this 
-				License. (If a newer version than version 2 of the ordinary GNU General Public 
-				License has appeared, then you can specify that version instead if you wish.) 
-				Do not make any other change in these notices.
-			</P>
-			<P>Once this change is made in a given copy, it is irreversible for that copy, so 
-				the ordinary GNU General Public License applies to all subsequent copies and 
-				derivative works made from that copy.
-			</P>
-			<P>This option is useful when you wish to copy part of the code of the Library into 
-				a program that is not a library.
-			</P>
-			<P><STRONG>4.</STRONG> You may copy and distribute the Library (or a portion or 
-				derivative of it, under Section 2) in object code or executable form under the 
-				terms of Sections 1 and 2 above provided that you accompany it with the 
-				complete corresponding machine-readable source code, which must be distributed 
-				under the terms of Sections 1 and 2 above on a medium customarily used for 
-				software interchange.
-			</P>
-			<P>If distribution of object code is made by offering access to copy from a 
-				designated place, then offering equivalent access to copy the source code from 
-				the same place satisfies the requirement to distribute the source code, even 
-				though third parties are not compelled to copy the source along with the object 
-				code.</P>
-			<P><STRONG>5.</STRONG> A program that contains no derivative of any portion of the 
-				Library, but is designed to work with the Library by being compiled or linked 
-				with it, is called a "work that uses the Library". Such a work, in isolation, 
-				is not a derivative work of the Library, and therefore falls outside the scope 
-				of this License.
-			</P>
-			<P>However, linking a "work that uses the Library" with the Library creates an 
-				executable that is a derivative of the Library (because it contains portions of 
-				the Library), rather than a "work that uses the library". The executable is 
-				therefore covered by this License. Section 6 states terms for distribution of 
-				such executables.
-			</P>
-			<P>When a "work that uses the Library" uses material from a header file that is 
-				part of the Library, the object code for the work may be a derivative work of 
-				the Library even though the source code is not. Whether this is true is 
-				especially significant if the work can be linked without the Library, or if the 
-				work is itself a library. The threshold for this to be true is not precisely 
-				defined by law.
-			</P>
-			<P>If such an object file uses only numerical parameters, data structure layouts 
-				and accessors, and small macros and small inline functions (ten lines or less 
-				in length), then the use of the object file is unrestricted, regardless of 
-				whether it is legally a derivative work. (Executables containing this object 
-				code plus portions of the Library will still fall under Section 6.)
-			</P>
-			<P>Otherwise, if the work is a derivative of the Library, you may distribute the 
-				object code for the work under the terms of Section 6. Any executables 
-				containing that work also fall under Section 6, whether or not they are linked 
-				directly with the Library itself.
-			</P>
-			<P><STRONG>6.</STRONG> As an exception to the Sections above, you may also combine 
-				or link a "work that uses the Library" with the Library to produce a work 
-				containing portions of the Library, and distribute that work under terms of 
-				your choice, provided that the terms permit modification of the work for the 
-				customer's own use and reverse engineering for debugging such modifications.
-			</P>
-			<P>You must give prominent notice with each copy of the work that the Library is 
-				used in it and that the Library and its use are covered by this License. You 
-				must supply a copy of this License. If the work during execution displays 
-				copyright notices, you must include the copyright notice for the Library among 
-				them, as well as a reference directing the user to the copy of this License. 
-				Also, you must do one of these things:
-			</P>
-			<BLOCKQUOTE>
-				<P>a) Accompany the work with the complete corresponding machine-readable source 
-					code for the Library including whatever changes were used in the work (which 
-					must be distributed under Sections 1 and 2 above); and, if the work is an 
-					executable linked with the Library, with the complete machine-readable "work 
-					that uses the Library", as object code and/or source code, so that the user can 
-					modify the Library and then relink to produce a modified executable containing 
-					the modified Library. (It is understood that the user who changes the contents 
-					of definitions files in the Library will not necessarily be able to recompile 
-					the application to use the modified definitions.)
-				</P>
-				<P>b) Use a suitable shared library mechanism for linking with the Library. A 
-					suitable mechanism is one that (1) uses at run time a copy of the library 
-					already present on the user's computer system, rather than copying library 
-					functions into the executable, and (2) will operate properly with a modified 
-					version of the library, if the user installs one, as long as the modified 
-					version is interface-compatible with the version that the work was made with.
-				</P>
-				<P>c) Accompany the work with a written offer, valid for at least three years, to 
-					give the same user the materials specified in Subsection 6a, above, for a 
-					charge no more than the cost of performing this distribution.
-				</P>
-				<P>d) If distribution of the work is made by offering access to copy from a 
-					designated place, offer equivalent access to copy the above specified materials 
-					from the same place.
-				</P>
-				<P>e) Verify that the user has already received a copy of these materials or that 
-					you have already sent this user a copy.</P>
-			</BLOCKQUOTE>
-			<P>For an executable, the required form of the "work that uses the Library" must 
-				include any data and utility programs needed for reproducing the executable 
-				from it. However, as a special exception, the materials to be distributed need 
-				not include anything that is normally distributed (in either source or binary 
-				form) with the major components (compiler, kernel, and so on) of the operating 
-				system on which the executable runs, unless that component itself accompanies 
-				the executable.
-			</P>
-			<P>It may happen that this requirement contradicts the license restrictions of 
-				other proprietary libraries that do not normally accompany the operating 
-				system. Such a contradiction means you cannot use both them and the Library 
-				together in an executable that you distribute.
-			</P>
-			<P><STRONG>7.</STRONG> You may place library facilities that are a work based on 
-				the Library side-by-side in a single library together with other library 
-				facilities not covered by this License, and distribute such a combined library, 
-				provided that the separate distribution of the work based on the Library and of 
-				the other library facilities is otherwise permitted, and provided that you do 
-				these two things:
-			</P>
-			<BLOCKQUOTE>
-				<P>a) Accompany the combined library with a copy of the same work based on the 
-					Library, uncombined with any other library facilities. This must be distributed 
-					under the terms of the Sections above.
-				</P>
-				<P>b) Give prominent notice with the combined library of the fact that part of it 
-					is a work based on the Library, and explaining where to find the accompanying 
-					uncombined form of the same work.</P>
-			</BLOCKQUOTE>
-			<P><STRONG>8.</STRONG> You may not copy, modify, sublicense, link with, or 
-				distribute the Library except as expressly provided under this License. Any 
-				attempt otherwise to copy, modify, sublicense, link with, or distribute the 
-				Library is void, and will automatically terminate your rights under this 
-				License. However, parties who have received copies, or rights, from you under 
-				this License will not have their licenses terminated so long as such parties 
-				remain in full compliance.
-			</P>
-			<P><STRONG>9.</STRONG> You are not required to accept this License, since you have 
-				not signed it. However, nothing else grants you permission to modify or 
-				distribute the Library or its derivative works. These actions are prohibited by 
-				law if you do not accept this License. Therefore, by modifying or distributing 
-				the Library (or any work based on the Library), you indicate your acceptance of 
-				this License to do so, and all its terms and conditions for copying, 
-				distributing or modifying the Library or works based on it.
-			</P>
-			<P><STRONG>10.</STRONG> Each time you redistribute the Library (or any work based 
-				on the Library), the recipient automatically receives a license from the 
-				original licensor to copy, distribute, link with or modify the Library subject 
-				to these terms and conditions. You may not impose any further restrictions on 
-				the recipients' exercise of the rights granted herein. You are not responsible 
-				for enforcing compliance by third parties with this License.
-			</P>
-			<P><STRONG>11.</STRONG> If, as a consequence of a court judgment or allegation of 
-				patent infringement or for any other reason (not limited to patent issues), 
-				conditions are imposed on you (whether by court order, agreement or otherwise) 
-				that contradict the conditions of this License, they do not excuse you from the 
-				conditions of this License. If you cannot distribute so as to satisfy 
-				simultaneously your obligations under this License and any other pertinent 
-				obligations, then as a consequence you may not distribute the Library at all. 
-				For example, if a patent license would not permit royalty-free redistribution 
-				of the Library by all those who receive copies directly or indirectly through 
-				you, then the only way you could satisfy both it and this License would be to 
-				refrain entirely from distribution of the Library.
-			</P>
-			<P>If any portion of this section is held invalid or unenforceable under any 
-				particular circumstance, the balance of the section is intended to apply, and 
-				the section as a whole is intended to apply in other circumstances.
-			</P>
-			<P>It is not the purpose of this section to induce you to infringe any patents or 
-				other property right claims or to contest validity of any such claims; this 
-				section has the sole purpose of protecting the integrity of the free software 
-				distribution system which is implemented by public license practices. Many 
-				people have made generous contributions to the wide range of software 
-				distributed through that system in reliance on consistent application of that 
-				system; it is up to the author/donor to decide if he or she is willing to 
-				distribute software through any other system and a licensee cannot impose that 
-				choice.
-			</P>
-			<P>This section is intended to make thoroughly clear what is believed to be a 
-				consequence of the rest of this License.
-			</P>
-			<P><STRONG>12.</STRONG> If the distribution and/or use of the Library is restricted 
-				in certain countries either by patents or by copyrighted interfaces, the 
-				original copyright holder who places the Library under this License may add an 
-				explicit geographical distribution limitation excluding those countries, so 
-				that distribution is permitted only in or among countries not thus excluded. In 
-				such case, this License incorporates the limitation as if written in the body 
-				of this License.
-			</P>
-			<P><STRONG>13.</STRONG> The Free Software Foundation may publish revised and/or new 
-				versions of the Lesser General Public License from time to time. Such new 
-				versions will be similar in spirit to the present version, but may differ in 
-				detail to address new problems or concerns.</P>
-			<P>Each version is given a distinguishing version number. If the Library specifies 
-				a version number of this License which applies to it and "any later version", 
-				you have the option of following the terms and conditions either of that 
-				version or of any later version published by the Free Software Foundation. If 
-				the Library does not specify a license version number, you may choose any 
-				version ever published by the Free Software Foundation.
-			</P>
-			<P><STRONG>14.</STRONG> If you wish to incorporate parts of the Library into other 
-				free programs whose distribution conditions are incompatible with these, write 
-				to the author to ask for permission. For software which is copyrighted by the 
-				Free Software Foundation, write to the Free Software Foundation; we sometimes 
-				make exceptions for this. Our decision will be guided by the two goals of 
-				preserving the free status of all derivatives of our free software and of 
-				promoting the sharing and reuse of software generally.
-			</P>
-			<P>NO WARRANTY
-			</P>
-			<P><STRONG>15. </STRONG>BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 
-				WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT 
-				WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 
-				PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR 
-				IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-				MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE 
-				QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE 
-				DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR 
-				CORRECTION.
-			</P>
-			<P><STRONG>16.</STRONG> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO 
-				IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 
-				REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 
-				INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT 
-				OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS 
-				OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 
-				PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN 
-				IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
-				DAMAGES.
-			</P>
-			<H4><STRONG>END OF TERMS AND CONDITIONS</STRONG></H4>
-		</TT>
-	</body>
-</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_about.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,34 +1,39 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_about.html
- * 	"About" dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * "About" dialog window.
 -->
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta name="robots" content="noindex, nofollow">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script language="javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 var FCKLang	= oEditor.FCKLang ;
 
 window.parent.AddTab( 'About', FCKLang.DlgAboutAboutTab ) ;
-window.parent.AddTab( 'License', 'License' ) ;
+window.parent.AddTab( 'License', FCKLang.DlgAboutLicenseTab ) ;
 window.parent.AddTab( 'BrowserInfo', FCKLang.DlgAboutBrowserInfoTab ) ;
 
 // Function called when a dialog tag is selected.
@@ -59,72 +64,78 @@
 	window.parent.SetAutoSize( true ) ;
 }
 
-		</script>
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<div id="divAbout">
-			<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
-				<tr>
-					<td>
-						<img alt="" src="fck_about/logo_fckeditor.gif" width="236" height="41" align="left">
-						<table width="80" border="0" cellspacing="0" cellpadding="5" bgcolor="#ffffff" align="right">
-							<tr>
-								<td align="center" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid">
-									<span fckLang="DlgAboutVersion">version</span>
-									<br>
-									<b>2.1.1</b></td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-				<tr height="100%">
-					<td align="center">
-						&nbsp;<br>
-						<span style="FONT-SIZE: 14px" dir="ltr">Support <b>Open Source</b> software.<br>
-							<b><a href="http://www.fckeditor.net/donate/?about" target="_blank" title="Click to go to the donation page">
-									What about a donation today?</a></b> </span>
-						<br><br><br>
-						<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 &copy; 2003-2005 <a href="#" onclick="SendEMail();">Frederico Caldeira 
-							Knabben</a>
-					</td>
-				</tr>
-				<tr>
-					<td align="center">
-						<img alt="" src="fck_about/logo_fredck.gif" width="87" height="36">
-					</td>
-				</tr>
-			</table>
-		</div>
-		<div id="divLicense" style="DISPLAY: none">
-			<table height="100%" width="100%">
-				<tr>
-					<td>
-						<span fckLang="DlgAboutLicense">Licensed under the terms of the GNU Lesser General 
-							Public License</span>
-						<br>
-						<a href="http://www.opensource.org/licenses/lgpl-license.php" target="_blank">http://www.opensource.org/licenses/lgpl-license.php</a>
-						<br>
-					</td>
-				</tr>
-				<tr>
-					<td height="100%">
-						<iframe height="100%" width="100%" src="fck_about/lgpl.html"></iframe>
-					</td>
-				</tr>
-			</table>
-		</div>
-		<div id="divInfo" style="DISPLAY: none" dir="ltr">
-			<table align="center" width="80%" border="0">
-				<tr>
-					<td>
-						<script language="javascript">
+	</script>
+</head>
+<body style="overflow: hidden">
+	<div id="divAbout">
+		<table cellpadding="0" cellspacing="0" border="0" width="100%" style="height: 100%">
+			<tr>
+				<td>
+					<img alt="" src="fck_about/logo_fckeditor.gif" width="236" height="41" align="left" />
+					<table width="80" border="0" cellspacing="0" cellpadding="5" bgcolor="#ffffff" align="right">
+						<tr>
+							<td align="center" nowrap="nowrap" style="border-right: #000000 1px solid; border-top: #000000 1px solid;
+								border-left: #000000 1px solid; border-bottom: #000000 1px solid">
+								<span fcklang="DlgAboutVersion">version</span>
+								<br />
+								<b>2.4.2</b><br />
+								Build 14978</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr style="height: 100%">
+				<td align="center">
+					&nbsp;<br />
+					<span style="font-size: 14px" dir="ltr">
+						<br />
+						<b><a href="http://www.fckeditor.net/?about" target="_blank" title="Visit the FCKeditor web site">
+							Support <b>Open Source</b> Software</a></b> </span>
+					<br />
+					<br />
+					<br />
+					<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 &copy; 2003-2007 <a href="#" onclick="SendEMail();">Frederico Caldeira Knabben</a>
+				</td>
+			</tr>
+			<tr>
+				<td align="center">
+					<img alt="" src="fck_about/logo_fredck.gif" width="87" height="36" />
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divLicense" style="display: none">
+			<p>
+				Licensed under the terms of any of the following licenses at your
+				choice:
+			</p>
+			<ul>
+				<li style="margin-bottom:15px">
+					<b>GNU General Public License</b> Version 2 or later (the "GPL")<br />
+					<a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a>
+				</li>
+				<li style="margin-bottom:15px">
+					<b>GNU Lesser General Public License</b> Version 2.1 or later (the "LGPL")<br />
+					<a href="http://www.gnu.org/licenses/lgpl.html" target="_blank">http://www.gnu.org/licenses/lgpl.html</a>
+				</li>
+				<li>
+					<b>Mozilla Public License</b> Version 1.1 or later (the "MPL")<br />
+					<a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html</a>
+			   </li>
+			</ul>
+	</div>
+	<div id="divInfo" style="display: none" dir="ltr">
+		<table align="center" width="80%" border="0">
+			<tr>
+				<td>
+					<script type="text/javascript">
 <!--
-document.write( '<b>User Agent<\/b><br>' + window.navigator.userAgent + '<br><br>' ) ;
-document.write( '<b>Browser<\/b><br>' + window.navigator.appName + ' ' + window.navigator.appVersion + '<br><br>' ) ;
-document.write( '<b>Platform<\/b><br>' + window.navigator.platform + '<br><br>' ) ;
+document.write( '<b>User Agent<\/b><br />' + window.navigator.userAgent + '<br /><br />' ) ;
+document.write( '<b>Browser<\/b><br />' + window.navigator.appName + ' ' + window.navigator.appVersion + '<br /><br />' ) ;
+document.write( '<b>Platform<\/b><br />' + window.navigator.platform + '<br /><br />' ) ;
 
 var sUserLang = '?' ;
 
@@ -133,12 +144,12 @@
 else if ( window.navigator.userLanguage )
 	sUserLang = window.navigator.userLanguage.toLowerCase() ;
 
-document.write( '<b>User Language<\/b><br>' + sUserLang ) ;
+document.write( '<b>User Language<\/b><br />' + sUserLang ) ;
 //-->
-						</script>
-					</td>
-				</tr>
-			</table>
-		</div>
-	</body>
+					</script>
+				</td>
+			</tr>
+		</table>
+	</div>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_anchor.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_anchor.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_anchor.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_anchor.html
- * 	Anchor dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Anchor dialog window.
 -->
 <html>
 	<head>
@@ -27,6 +31,9 @@
 
 var oEditor	= window.parent.InnerDialogLoaded() ;
 var FCK		= oEditor.FCK ;
+var FCKBrowserInfo = oEditor.FCKBrowserInfo ;
+var FCKTools = oEditor.FCKTools ;
+var FCKRegexLib = oEditor.FCKRegexLib ;
 
 // Gets the document DOM
 var oDOM = oEditor.FCK.EditorDocument ;
@@ -42,6 +49,14 @@
 		oFakeImage = null ;
 }
 
+//Search for a real anchor
+if ( !oFakeImage )
+{
+	oAnchor = FCK.Selection.MoveToAncestorNode( 'A' ) ;
+	if ( oAnchor )
+		FCK.Selection.SelectNode( oAnchor ) ;
+}
+
 window.onload = function()
 {
 	// First of all, translate the dialog box texts
@@ -57,26 +72,140 @@
 
 function Ok()
 {
-	if ( GetE('txtName').value.length == 0 )
+	var sNewName = GetE('txtName').value ;
+
+	// Remove any illegal character in a name attribute:
+	// A name should start with a letter, but the validator passes anyway.
+	sNewName = sNewName.replace( /[^\w-_\.:]/g, '_' ) ;
+
+	if ( sNewName.length == 0 )
 	{
+		// Remove the anchor if the user leaves the name blank
+		if ( oAnchor )
+		{
+			RemoveAnchor() ;
+			return true ;
+		}
+
 		alert( oEditor.FCKLang.DlgAnchorErrorName ) ;
 		return false ;
 	}
-	
+
 	oEditor.FCKUndo.SaveUndoStep() ;
-	
-	oAnchor		= FCK.EditorDocument.createElement( 'DIV' ) ;
-	oAnchor.innerHTML = '<a name="' + GetE('txtName').value + '"><\/a>' ;
-	oAnchor = oAnchor.firstChild ;
 
-	oFakeImage	= oEditor.FCKDocumentProcessors_CreateFakeImage( 'FCK__Anchor', oAnchor ) ;
-	oFakeImage.setAttribute( '_fckanchor', 'true', 0 ) ;
-	oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
+	if ( oAnchor )	// Modifying an existent anchor.
+	{
+		ReadjustLinksToAnchor( oAnchor.name, sNewName );
 
-//	oEditor.FCK.InsertHtml( '<a name="' + GetE('txtName').value + '"><\/a>' ) ;
+		// Buggy explorer, bad bad browser. http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/
+		// Instead of just replacing the .name for the existing anchor (in order to preserve the content), we must remove the .name
+		// and assign .name, although it won't appear until it's specially processed in fckxhtml.js
+
+		// We remove the previous name
+		oAnchor.removeAttribute( 'name' ) ;
+		// Now we set it, but later we must process it specially
+		oAnchor.name = sNewName ;
+
+		return true ;
+	}
+
+	// Create a new anchor preserving the current selection
+	oAnchor = oEditor.FCK.CreateLink( '#' ) ;
+	if ( !oAnchor )
+	{
+		// Nothing was selected, so now just create a normal A
+		oAnchor = oEditor.FCK.CreateElement( 'a' ) ;
+	}
+	else
+	{
+		// Remove the fake href
+		oAnchor.removeAttribute( 'href' ) ;
+	}
+	// Set the name
+	oAnchor.name = sNewName ;
+
+	// IE does require special processing to show the Anchor's image
+	// Opera doesn't allow to select empty anchors
+	if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera )
+	{
+		if ( oAnchor.innerHTML != '' )
+		{
+			if ( FCKBrowserInfo.IsIE )
+				oAnchor.className += ' FCK__AnchorC' ;
+		}
+		else
+		{
+			// Create a fake image for both IE and Opera
+			var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ;
+			oImg.setAttribute( '_fckanchor', 'true', 0 ) ;
+
+			oAnchor.parentNode.insertBefore( oImg, oAnchor ) ;
+			oAnchor.parentNode.removeChild( oAnchor ) ;
+		}
+
+	}
+
 	return true ;
 }
 
+// Removes the current anchor from the document
+function RemoveAnchor()
+{
+	// If it's also a link, then just remove the name and exit
+	if ( oAnchor.href.length != 0 )
+	{
+		oAnchor.removeAttribute( 'name' ) ;
+		// Remove temporary class for IE
+		if ( FCKBrowserInfo.IsIE )
+			oAnchor.className = oAnchor.className.replace( FCKRegexLib.FCK_Class, '' ) ;
+		return ;
+	}
+
+	// We need to remove the anchor
+	// If we got a fake image, then just remove it and we're done
+	if ( oFakeImage )
+	{
+		oFakeImage.parentNode.removeChild( oFakeImage ) ;
+		return ;
+	}
+	// Empty anchor, so just remove it
+	if ( oAnchor.innerHTML.length == 0 )
+	{
+		oAnchor.parentNode.removeChild( oAnchor ) ;
+		return ;
+	}
+	// Anchor with content, leave the content
+	FCKTools.RemoveOuterTags( oAnchor ) ;
+}
+
+// Checks all the links in the current page pointing to the current name and changes them to the new name
+function ReadjustLinksToAnchor( sCurrent, sNew )
+{
+	var oDoc = FCK.EditorDocument ;
+
+	var aLinks = oDoc.getElementsByTagName( 'A' ) ;
+
+	var sReference = '#' + sCurrent ;
+	// The url of the document, so we check absolute and partial references.
+	var sFullReference = oDoc.location.href.replace( /(#.*$)/, '') ;
+	sFullReference += sReference ;
+
+	var oLink ;
+	var i = aLinks.length - 1 ;
+	while ( i >= 0 && ( oLink = aLinks[i--] ) )
+	{
+		var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
+		if ( sHRef == null )
+			sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
+
+		if ( sHRef == sReference || sHRef == sFullReference )
+		{
+			oLink.href = '#' + sNew ;
+			SetAttribute( oLink, '_fcksavedurl', '#' + sNew ) ;
+		}
+	}
+}
+
 		</script>
 	</head>
 	<body style="OVERFLOW: hidden" scroll="no">
@@ -95,4 +224,4 @@
 			</tr>
 		</table>
 	</body>
-</html>
\ No newline at end of file
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_button.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_button.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_button.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,33 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_button.html
- * 	Button dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Button dialog window.
 -->
-<html>
-	<head>
-		<title>Button Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Button Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -66,38 +70,38 @@
 	return true ;
 }
 
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<table height="100%" width="100%">
-			<tr>
-				<td align="center">
-					<table border="0" cellpadding="0" cellspacing="0" width="80%">
-						<tr>
-							<td colSpan="">
-								<span fckLang="DlgCheckboxName">Name</span><br>
-								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgButtonText">Text (Value)</span><br>
-								<input type="text" id="txtValue" style="WIDTH: 100%">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgButtonType">Type</span><br>
-								<select id="txtType">
-									<option value="button" selected>Button</option>
-									<option value="submit">Submit</option>
-									<option value="reset">Reset</option>
-								</select>
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>
\ No newline at end of file
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table border="0" cellpadding="0" cellspacing="0" width="80%">
+					<tr>
+						<td colspan="">
+							<span fcklang="DlgCheckboxName">Name</span><br />
+							<input type="text" size="20" id="txtName" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonText">Text (Value)</span><br />
+							<input type="text" id="txtValue" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgButtonType">Type</span><br />
+							<select id="txtType">
+								<option fcklang="DlgButtonTypeBtn" value="button" selected="selected">Button</option>
+								<option fcklang="DlgButtonTypeSbm" value="submit">Submit</option>
+								<option fcklang="DlgButtonTypeRst" value="reset">Reset</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_checkbox.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_checkbox.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_checkbox.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_checkbox.html
- * 	Checkbox dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Checkbox dialog window.
 -->
 <html>
 	<head>
@@ -40,7 +44,7 @@
 	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'checkbox' )
 	{
 		GetE('txtName').value		= oActiveEl.name ;
-		GetE('txtValue').value		= oActiveEl.value ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
 		GetE('txtSelected').checked	= oActiveEl.checked ;
 	}
 	else
@@ -58,15 +62,18 @@
 		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
 	}
 
-	oActiveEl.name = GetE('txtName').value ;
-	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+	if ( GetE('txtName').value.length > 0 )
+		oActiveEl.name = GetE('txtName').value ;
 
-	if ( GetE('txtSelected').checked )
-	{
-		SetAttribute( oActiveEl, 'checked', 'checked' ) ;
-		oActiveEl.checked = GetE('txtSelected').checked ;
-	}
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
 
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
 	return true ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_colorselector.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_colorselector.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_colorselector.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_colorselector.html
- * 	Color Selection dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Color Selection dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <html>
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
@@ -31,17 +35,17 @@
 			.ColorCell		{ height: 15px ; width: 15px ; }
 		</style>
 		<script type="text/javascript">
-		
+
 var oEditor = window.parent.InnerDialogLoaded() ;
 
 function OnLoad()
 {
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage(document) ;
-	
+
 	CreateColorTable() ;
-	
-	window.parent.SetOkButton( true ) ;	
+
+	window.parent.SetOkButton( true ) ;
 	window.parent.SetAutoSize( true ) ;
 }
 
@@ -56,17 +60,17 @@
 	// This function combines two ranges of three values from the color array into a row.
 	function AppendColorRow( rangeA, rangeB )
 	{
-		for ( var i = rangeA ; i < rangeA + 3 ; i++ ) 
-		{ 
-			var oRow = oTable.insertRow(-1) ; 
+		for ( var i = rangeA ; i < rangeA + 3 ; i++ )
+		{
+			var oRow = oTable.insertRow(-1) ;
 
-			for ( var j = rangeB ; j < rangeB + 3 ; j++ ) 
-			{ 
-				for ( var n = 0 ; n < 6 ; n++ ) 
-				{ 
-					AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ; 
-				} 
-			} 
+			for ( var j = rangeB ; j < rangeB + 3 ; j++ )
+			{
+				for ( var n = 0 ; n < 6 ; n++ )
+				{
+					AppendColorCell( oRow, '#' + aColors[j] + aColors[n] + aColors[i] ) ;
+				}
+			}
 		}
 	}
 
@@ -76,13 +80,13 @@
 		var oCell = targetRow.insertCell(-1) ;
 		oCell.className = 'ColorCell' ;
 		oCell.bgColor = color ;
-		
+
 		oCell.onmouseover = function()
 		{
 			document.getElementById('hicolor').style.backgroundColor = this.bgColor ;
 			document.getElementById('hicolortext').innerHTML = this.bgColor ;
 		}
-		
+
 		oCell.onclick = function()
 		{
 			document.getElementById('selhicolor').style.backgroundColor = this.bgColor ;
@@ -97,17 +101,17 @@
 
 	// Create the last row.
 	var oRow = oTable.insertRow(-1) ;
-	
+
 	// Create the gray scale colors cells.
 	for ( var n = 0 ; n < 6 ; n++ )
 	{
-		AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ; 
+		AppendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
 	}
-	
+
 	// Fill the row with black cells.
 	for ( var i = 0 ; i < 12 ; i++ )
 	{
-		AppendColorCell( oRow, '#000000' ) ; 
+		AppendColorCell( oRow, '#000000' ) ;
 	}
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_document_preview.html
- * 	Preview shown in the "Document Properties" dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview shown in the "Document Properties" dialog window.
 -->
 <html>
 	<head>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_docprops.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,33 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_docprops.html
- * 	Link dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Link dialog window.
 -->
-<html>
-	<head>
-		<title>Document Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script language="javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor		= window.parent.InnerDialogLoaded() ;
 var FCK			= oEditor.FCK ;
@@ -63,30 +67,34 @@
 var oMetaTags = new Object() ;
 
 // Get all META tags defined in the document.
-var aMetas = oHead.getElementsByTagName('meta') ;
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('meta') ) ;
+AppendMetaCollection( oMetaTags, oHead.getElementsByTagName('fck:meta') ) ;
 
-// Loop throw all METAs and put it in the HashTable.
-for ( var i = 0 ; i < aMetas.length ; i++ )
+function AppendMetaCollection( targetObject, metaCollection )
 {
-	// Try to get the "name" attribute.
-	var sName = GetAttribute( aMetas[i], 'name', GetAttribute( aMetas[i], '___fcktoreplace:name', '' ) ) ;
+	// Loop throw all METAs and put it in the HashTable.
+	for ( var i = 0 ; i < metaCollection.length ; i++ )
+	{
+		// Try to get the "name" attribute.
+		var sName = GetAttribute( metaCollection[i], 'name', GetAttribute( metaCollection[i], '___fcktoreplace:name', '' ) ) ;
 
-	// If no "name", try with the "http-equiv" attribute.
-	if ( sName.length == 0 )
-	{
-		if ( document.all )
+		// If no "name", try with the "http-equiv" attribute.
+		if ( sName.length == 0 )
 		{
-			// Get the http-equiv value from the outerHTML.
-			var oHttpEquivMatch = aMetas[i].outerHTML.match( oEditor.FCKRegexLib.MetaHttpEquiv ) ;
-			if ( oHttpEquivMatch )
-				sName = oHttpEquivMatch[1] ;
+			if ( oEditor.FCKBrowserInfo.IsIE )
+			{
+				// Get the http-equiv value from the outerHTML.
+				var oHttpEquivMatch = metaCollection[i].outerHTML.match( oEditor.FCKRegexLib.MetaHttpEquiv ) ;
+				if ( oHttpEquivMatch )
+					sName = oHttpEquivMatch[1] ;
+			}
+			else
+				sName = GetAttribute( metaCollection[i], 'http-equiv', '' ) ;
 		}
-		else
-			sName = GetAttribute( aMetas[i], 'http-equiv', '' ) ;
+
+		if ( sName.length > 0 )
+			targetObject[ sName.toLowerCase() ] = metaCollection[i] ;
 	}
-
-	if ( sName.length > 0 )
-		oMetaTags[ sName.toLowerCase() ] = aMetas[i] ;
 }
 
 //#### END
@@ -113,7 +121,7 @@
 			// On IE, it is not possible to set the "name" attribute of the META tag.
 			// So a temporary attribute is used and it is replaced when getting the
 			// editor's HTML/XHTML value. This is sad, I know :(
-			if ( document.all )
+			if ( oEditor.FCKBrowserInfo.IsIE )
 				SetAttribute( oMeta, '___fcktoreplace:name', name ) ;
 			else
 				SetAttribute( oMeta, 'name', name ) ;
@@ -122,7 +130,8 @@
 		oMetaTags[ name.toLowerCase() ] = oMeta ;
 	}
 
-	oMeta.content = content ;
+	SetAttribute( oMeta, 'content', content ) ;
+//	oMeta.content = content ;
 }
 
 function RemoveMetadata( name )
@@ -141,13 +150,16 @@
 	var oMeta = oMetaTags[ name.toLowerCase() ] ;
 
 	if ( oMeta && oMeta != null )
-		return oMeta.content ;
+		return oMeta.getAttribute( 'content', 2 ) ;
 	else
 		return '' ;
 }
 
 window.onload = function ()
 {
+	// Show/Hide the "Browse Server" button.
+	GetE('tdBrowse').style.display = oEditor.FCKConfig.ImageBrowser ? "" : "none";
+
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage( document ) ;
 
@@ -170,14 +182,14 @@
 	GetE('txtLang').value		= GetAttribute( oHTML, 'xml:lang', GetAttribute( oHTML, 'lang', '' ) ) ;	// "xml:lang" takes precedence to "lang".
 
 	// Character Set Encoding.
-//	if ( document.all )
+//	if ( oEditor.FCKBrowserInfo.IsIE )
 //		var sCharSet = FCK.EditorDocument.charset ;
 //	else
 		var sCharSet = GetMetadata( 'Content-Type' ) ;
 
 	if ( sCharSet != null && sCharSet.length > 0 )
 	{
-//		if ( !document.all )
+//		if ( !oEditor.FCKBrowserInfo.IsIE )
 			sCharSet = sCharSet.match( /[^=]*$/ ) ;
 
 		GetE('selCharSet').value = sCharSet ;
@@ -252,7 +264,7 @@
 	if ( sCharSet.length > 0 )
 			sCharSet = 'text/html; charset=' + sCharSet ;
 
-//	if ( document.all )
+//	if ( oEditor.FCKBrowserInfo.IsIE )
 //		FCK.EditorDocument.charset = sCharSet ;
 //	else
 		SetMetadata( 'Content-Type', sCharSet, true ) ;
@@ -372,26 +384,7 @@
 
 function BrowseServerBack()
 {
-	var iLeft = (FCKConfig.ScreenWidth  - FCKConfig.ImageBrowserWindowWidth) / 2 ;
-	var iTop  = (FCKConfig.ScreenHeight - FCKConfig.ImageBrowserWindowHeight) / 2 ;
-
-	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
-	sOptions += ",width=" + FCKConfig.LinkBrowserWindowWidth ;
-	sOptions += ",height=" + FCKConfig.LinkBrowserWindowHeight ;
-	sOptions += ",left=" + iLeft ;
-	sOptions += ",top=" + iTop ;
-
-	if ( 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( FCKConfig.ImageBrowserURL, "FCKBrowseWindow", sOptions ) ;
-		oWindow.opener = window ;
-    }
-    else
-		window.open( FCKConfig.ImageBrowserURL, "FCKBrowseWindow", sOptions ) ;
+	OpenFileBrowser( FCKConfig.ImageBrowserURL, FCKConfig.ImageBrowserWindowWidth, FCKConfig.ImageBrowserWindowHeight ) ;
 }
 
 function SetUrl( url )
@@ -400,187 +393,208 @@
 	UpdatePreview() ;
 }
 
-		</script>
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
-			<tr>
-				<td vAlign="top" height="100%">
-					<div id="divGeneral">
-						<span fckLang="DlgDocPageTitle">Page Title</span><br>
-						<input id="txtPageTitle" style="WIDTH: 100%" type="text">
-						<br>
-						<table cellSpacing="0" cellPadding="0" border="0">
-							<tr>
-								<td>
-									<span fckLang="DlgDocLangDir">Language Direction</span><br>
-									<select id="selDirection">
-										<option value="" selected></option>
-										<option value="ltr" fckLang="DlgDocLangDirLTR">Left to Right (LTR)</option>
-										<option value="rtl" fckLang="DlgDocLangDirRTL">Right to Left (RTL)</option>
-									</select>
-								</td>
-								<td>&nbsp;&nbsp;&nbsp;</td>
-								<td>
-									<span fckLang="DlgDocLangCode">Language Code</span><br>
-									<input id="txtLang" type="text">
-								</td>
-							</tr>
-						</table>
-						<br>
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-							<tr>
-								<td noWrap><span fckLang="DlgDocCharSet">Character Set Encoding</span><br>
-									<select id="selCharSet" onchange="CheckOther( this, 'txtCustomCharSet' );">
-										<option value="" selected></option>
-										<option value="us-ascii">ASCII</option>
-										<option value="iso-8859-2">Central European</option>
-										<option value="big5">Chinese Traditional (Big5)</option>
-										<option value="iso-8859-5">Cyrillic</option>
-										<option value="iso-8859-7">Greek</option>
-										<option value="iso-2022-jp">Japanese</option>
-										<option value="iso-2022-kr">Korean</option>
-										<option value="iso-8859-9">Turkish</option>
-										<option value="utf-8">Unicode (UTF-8)</option>
-										<option value="iso-8859-1">Western European</option>
-										<option value="..." fckLang="DlgOpOther">&lt;Other&gt;</option>
-									</select>
-								</td>
-								<td>&nbsp;&nbsp;&nbsp;</td>
-								<td width="100%">
-									<span fckLang="DlgDocCharSetOther">Other Character Set Encoding</span><br>
-									<input id="txtCustomCharSet" style="WIDTH: 100%; BACKGROUND-COLOR: #cccccc" disabled type="text">
-								</td>
-							</tr>
-							<tr>
-								<td colspan="3">&nbsp;</td>
-							</tr>
-							<tr>
-								<td nowrap>
-									<span fckLang="DlgDocDocType">Document Type Heading</span><br>
-									<select id="selDocType" name="selDocType" onchange="CheckOther( this, 'txtDocType' );">
-										<option value="" selected></option>
-										<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'>HTML
-											4.01 Transitional</option>
-										<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'>HTML
-											4.01 Strict</option>
-										<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'>HTML
-											4.01 Frameset</option>
-										<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'>XHTML
-											1.0 Transitional</option>
-										<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'>XHTML
-											1.0 Strict</option>
-										<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'>XHTML
-											1.0 Frameset</option>
-										<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'>XHTML
-											1.1</option>
-										<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'>HTML 3.2</option>
-										<option value='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'>HTML 2.0</option>
-										<option value="..." fckLang="DlgOpOther">&lt;Other&gt;</option>
-									</select>
-								</td>
-								<td></td>
-								<td width="100%">
-									<span fckLang="DlgDocDocTypeOther">Other Document Type Heading</span><br>
-									<input id="txtDocType" style="WIDTH: 100%; BACKGROUND-COLOR: #cccccc" disabled type="text">
-								</td>
-							</tr>
-						</table>
-						<br>
-						<input id="chkIncXHTMLDecl" type="checkbox"> <label for="chkIncXHTMLDecl" fckLang="DlgDocIncXHTML">Include
-							XHTML Declarations</label>
-					</div>
-					<div id="divBackground" style="DISPLAY: none">
-						<span fckLang="DlgDocBgColor">Background Color</span><br>
-						<input id="txtBackColor" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();">&nbsp;<input id="btnSelBackColor" onclick="SelectColor( 'Back' )" type="button" value="Select..."
-							fckLang="DlgCellBtnSelect"><br>
-						<br>
-						<span fckLang="DlgDocBgImage">Background Image URL</span><br>
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-							<tr>
-								<td width="100%"><input id="txtBackImage" style="WIDTH: 100%" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();"></td>
-								<td nowrap>&nbsp;<input id="btnBrowse" onclick="BrowseServerBack();" type="button" fckLang="DlgBtnBrowseServer" value="Browse Server" fckLang="DlgBtnBrowseServer"></td>
-							</tr>
-						</table>
-						<input id="chkBackNoScroll" type="checkbox" onclick="UpdatePreview();"> <label for="chkBackNoScroll" fckLang="DlgDocBgNoScroll">Nonscrolling
-							Background</label>
-					</div>
-					<div id="divColors" style="DISPLAY: none">
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-							<tr>
-								<td>
-									<span fckLang="DlgDocCText">Text</span><br>
-									<input id="txtColorText" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();"><input onclick="SelectColor( 'ColorText' )" type="button" value="Select..." fckLang="DlgCellBtnSelect">
-									<br>
-									<span fckLang="DlgDocCLink">Link</span><br>
-									<input id="txtColorLink" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();"><input onclick="SelectColor( 'ColorLink' )" type="button" value="Select..." fckLang="DlgCellBtnSelect">
-									<br>
-									<span fckLang="DlgDocCVisited">Visited Link</span><br>
-									<input id="txtColorVisited" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();"><input onclick="SelectColor( 'ColorVisited' )" type="button" value="Select..." fckLang="DlgCellBtnSelect">
-									<br>
-									<span fckLang="DlgDocCActive">Active Link</span><br>
-									<input id="txtColorActive" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();"><input onclick="SelectColor( 'ColorActive' )" type="button" value="Select..." fckLang="DlgCellBtnSelect">
-								</td>
-								<td valign="middle" align="center">
-									<table cellspacing="2" cellpadding="0" border="0">
-										<tr>
-											<td><span fckLang="DlgDocMargins">Page Margins</span></td>
-										</tr>
-										<tr>
-											<td style="BORDER: #000000 1px solid; PADDING: 5px">
-												<table cellpadding="0" cellspacing="0" border="0" dir="ltr">
-													<tr>
-														<td align="center" colspan="3">
-															<span fckLang="DlgDocMaTop">Top</span><br>
-															<input id="txtMarginTop" type="text" size="3">
-														</td>
-													</tr>
-													<tr>
-														<td align="left">
-															<span fckLang="DlgDocMaLeft">Left</span><br>
-															<input id="txtMarginLeft" type="text" size="3">
-														</td>
-														<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
-														<td align="right">
-															<span fckLang="DlgDocMaRight">Right</span><BR>
-															<input id="txtMarginRight" type="text" size="3">
-														</td>
-													</tr>
-													<tr>
-														<td align="center" colspan="3">
-															<span fckLang="DlgDocMaBottom">Bottom</span><br>
-															<input id="txtMarginBottom" type="text" size="3">
-														</td>
-													</tr>
-												</table>
-											</td>
-										</tr>
-									</table>
-								</td>
-							</tr>
-						</table>
-					</div>
-					<div id="divMeta" style="DISPLAY: none">
-						<span fckLang="DlgDocMeIndex">Document Indexing Keywords (comma separated)</span><br>
-						<textarea id="txtMetaKeywords" style="WIDTH: 100%" rows="2" cols="20"></textarea>
-						<br>
-						<span fckLang="DlgDocMeDescr">Document Description</span><br>
-						<textarea id="txtMetaDescription" style="WIDTH: 100%" rows="4" cols="20"></textarea>
-						<br>
-						<span fckLang="DlgDocMeAuthor">Author</span><br>
-						<input id="txtMetaAuthor" style="WIDTH: 100%" type="text"><br>
-						<br>
-						<span fckLang="DlgDocMeCopy">Copyright</span><br>
-						<input id="txtMetaCopyright" type="text" style="WIDTH: 100%">
-					</div>
-				</td>
-			</tr>
-			<tr id="ePreview" style="DISPLAY: none">
-				<td>
-					<span fckLang="DlgDocPreview">Preview</span><br>
-					<iframe id="frmPreview" src="fck_docprops/fck_document_preview.html" width="100%" height="100"></iframe>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>
\ No newline at end of file
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td valign="top" style="height: 100%">
+				<div id="divGeneral">
+					<span fcklang="DlgDocPageTitle">Page Title</span><br />
+					<input id="txtPageTitle" style="width: 100%" type="text" />
+					<br />
+					<table cellspacing="0" cellpadding="0" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocLangDir">Language Direction</span><br />
+								<select id="selDirection">
+									<option value="" selected="selected"></option>
+									<option value="ltr" fcklang="DlgDocLangDirLTR">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgDocLangDirRTL">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td>
+								<span fcklang="DlgDocLangCode">Language Code</span><br />
+								<input id="txtLang" type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td style="white-space: nowrap">
+								<span fcklang="DlgDocCharSet">Character Set Encoding</span><br />
+								<select id="selCharSet" onchange="CheckOther( this, 'txtCustomCharSet' );">
+									<option value="" selected="selected"></option>
+									<option value="us-ascii">ASCII</option>
+									<option fcklang="DlgDocCharSetCE" value="iso-8859-2">Central European</option>
+									<option fcklang="DlgDocCharSetCT" value="big5">Chinese Traditional (Big5)</option>
+									<option fcklang="DlgDocCharSetCR" value="iso-8859-5">Cyrillic</option>
+									<option fcklang="DlgDocCharSetGR" value="iso-8859-7">Greek</option>
+									<option fcklang="DlgDocCharSetJP" value="iso-2022-jp">Japanese</option>
+									<option fcklang="DlgDocCharSetKR" value="iso-2022-kr">Korean</option>
+									<option fcklang="DlgDocCharSetTR" value="iso-8859-9">Turkish</option>
+									<option fcklang="DlgDocCharSetUN" value="utf-8">Unicode (UTF-8)</option>
+									<option fcklang="DlgDocCharSetWE" value="iso-8859-1">Western European</option>
+									<option fcklang="DlgOpOther" value="...">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%">
+								<span fcklang="DlgDocCharSetOther">Other Character Set Encoding</span><br />
+								<input id="txtCustomCharSet" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+						<tr>
+							<td colspan="3">
+								&nbsp;</td>
+						</tr>
+						<tr>
+							<td nowrap="nowrap">
+								<span fcklang="DlgDocDocType">Document Type Heading</span><br />
+								<select id="selDocType" name="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>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'>
+										HTML 4.01 Strict</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'>
+										HTML 4.01 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'>
+										XHTML 1.0 Transitional</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'>
+										XHTML 1.0 Strict</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">'>
+										XHTML 1.0 Frameset</option>
+									<option value='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'>
+										XHTML 1.1</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'>HTML 3.2</option>
+									<option value='<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">'>HTML 2.0</option>
+									<option value="..." fcklang="DlgOpOther">&lt;Other&gt;</option>
+								</select>
+							</td>
+							<td>
+							</td>
+							<td width="100%">
+								<span fcklang="DlgDocDocTypeOther">Other Document Type Heading</span><br />
+								<input id="txtDocType" style="width: 100%; background-color: #cccccc" disabled="disabled"
+									type="text" />
+							</td>
+						</tr>
+					</table>
+					<br />
+					<input id="chkIncXHTMLDecl" type="checkbox" />
+					<label for="chkIncXHTMLDecl" fcklang="DlgDocIncXHTML">
+						Include XHTML Declarations</label>
+				</div>
+				<div id="divBackground" style="display: none">
+					<span fcklang="DlgDocBgColor">Background Color</span><br />
+					<input id="txtBackColor" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" />&nbsp;<input
+						id="btnSelBackColor" onclick="SelectColor( 'Back' )" type="button" value="Select..."
+						fcklang="DlgCellBtnSelect" /><br />
+					<br />
+					<span fcklang="DlgDocBgImage">Background Image URL</span><br />
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<input id="txtBackImage" style="width: 100%" type="text" onchange="UpdatePreview();"
+									onkeyup="UpdatePreview();" /></td>
+							<td id="tdBrowse" nowrap="nowrap">
+								&nbsp;<input id="btnBrowse" onclick="BrowseServerBack();" type="button" fcklang="DlgBtnBrowseServer"
+									value="Browse Server" /></td>
+						</tr>
+					</table>
+					<input id="chkBackNoScroll" type="checkbox" onclick="UpdatePreview();" />
+					<label for="chkBackNoScroll" fcklang="DlgDocBgNoScroll">
+						Nonscrolling Background</label>
+				</div>
+				<div id="divColors" style="display: none">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td>
+								<span fcklang="DlgDocCText">Text</span><br />
+								<input id="txtColorText" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorText' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCLink">Link</span><br />
+								<input id="txtColorLink" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorLink' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCVisited">Visited Link</span><br />
+								<input id="txtColorVisited" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorVisited' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+								<br />
+								<span fcklang="DlgDocCActive">Active Link</span><br />
+								<input id="txtColorActive" type="text" onchange="UpdatePreview();" onkeyup="UpdatePreview();" /><input
+									onclick="SelectColor( 'ColorActive' )" type="button" value="Select..." fcklang="DlgCellBtnSelect" />
+							</td>
+							<td valign="middle" align="center">
+								<table cellspacing="2" cellpadding="0" border="0">
+									<tr>
+										<td>
+											<span fcklang="DlgDocMargins">Page Margins</span></td>
+									</tr>
+									<tr>
+										<td style="border: #000000 1px solid; padding: 5px">
+											<table cellpadding="0" cellspacing="0" border="0" dir="ltr">
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaTop">Top</span><br />
+														<input id="txtMarginTop" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="left">
+														<span fcklang="DlgDocMaLeft">Left</span><br />
+														<input id="txtMarginLeft" type="text" size="3" />
+													</td>
+													<td>
+														&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
+													<td align="right">
+														<span fcklang="DlgDocMaRight">Right</span><br />
+														<input id="txtMarginRight" type="text" size="3" />
+													</td>
+												</tr>
+												<tr>
+													<td align="center" colspan="3">
+														<span fcklang="DlgDocMaBottom">Bottom</span><br />
+														<input id="txtMarginBottom" type="text" size="3" />
+													</td>
+												</tr>
+											</table>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</div>
+				<div id="divMeta" style="display: none">
+					<span fcklang="DlgDocMeIndex">Document Indexing Keywords (comma separated)</span><br />
+					<textarea id="txtMetaKeywords" style="width: 100%" rows="2" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeDescr">Document Description</span><br />
+					<textarea id="txtMetaDescription" style="width: 100%" rows="4" cols="20"></textarea>
+					<br />
+					<span fcklang="DlgDocMeAuthor">Author</span><br />
+					<input id="txtMetaAuthor" style="width: 100%" type="text" /><br />
+					<br />
+					<span fcklang="DlgDocMeCopy">Copyright</span><br />
+					<input id="txtMetaCopyright" type="text" style="width: 100%" />
+				</div>
+			</td>
+		</tr>
+		<tr id="ePreview" style="display: none">
+			<td>
+				<span fcklang="DlgDocPreview">Preview</span><br />
+				<iframe id="frmPreview" src="fck_docprops/fck_document_preview.html" width="100%"
+					height="100"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_find.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_find.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_find.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +1,32 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_find.html
- * 	"Find" dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * "Find" dialog window.
 -->
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -69,10 +74,12 @@
 
 function GetRegexExpr()
 {
+	var sExpr ;
+
 	if ( document.getElementById('chkWord').checked )
-		var sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
+		sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
 	else
-		var sExpr = document.getElementById('txtFind').value ;
+		sExpr = document.getElementById('txtFind').value ;
 
 	return sExpr ;
 }
@@ -82,8 +89,6 @@
 	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
 }
 
-var oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
-
 function Ok()
 {
 	if ( document.getElementById('txtFind').value.length == 0 )
@@ -95,6 +100,11 @@
 		FindGecko() ;
 }
 
+var oRange ;
+
+if ( oEditor.FCKBrowserInfo.IsIE )
+	oRange = oEditor.FCK.EditorDocument.body.createTextRange() ;
+
 function FindIE()
 {
 	var iFlags = 0 ;
@@ -127,36 +137,37 @@
 	var bWord = document.getElementById('chkWord').checked ;
 
 	// window.find( searchString, caseSensitive, backwards, wrapAround, wholeWord, searchInFrames, showDialog ) ;
-	oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) ;
-
+	if ( !oEditor.FCK.EditorWindow.find( document.getElementById('txtFind').value, bCase, false, false, bWord, false, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
 }
-		</script>
-	</head>
-	<body onload="OnLoad()" scroll="no" style="OVERFLOW: hidden">
-		<table cellSpacing="3" cellPadding="2" width="100%" border="0">
-			<tr>
-				<td nowrap>
-					<label for="txtFind" fckLang="DlgReplaceFindLbl">Find what:</label>&nbsp;
-				</td>
-				<td width="100%">
-					<input id="txtFind" style="WIDTH: 100%" tabIndex="1" type="text">
-				</td>
-				<td>
-					<input id="btnFind" style="WIDTH: 100%; PADDING-RIGHT: 5px; PADDING-LEFT: 5px" onclick="Ok();"
-						type="button" value="Find" fckLang="DlgFindFindBtn">
-				</td>
-			</tr>
-			<tr>
-				<td valign="bottom" colSpan="3">
-					&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgReplaceCaseChk">Match 
-						case</label>
-					<br>
-					<div id="divWord" style="DISPLAY: none">
-						&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgReplaceWordChk">Match 
-							whole word</label>
-					</div>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body onload="OnLoad()" style="overflow: hidden">
+	<table cellspacing="3" cellpadding="2" width="100%" border="0">
+		<tr>
+			<td nowrap="nowrap">
+				<label for="txtFind" fcklang="DlgReplaceFindLbl">
+					Find what:</label>&nbsp;
+			</td>
+			<td width="100%">
+				<input id="txtFind" style="width: 100%" tabindex="1" type="text" />
+			</td>
+			<td>
+				<input id="btnFind" style="padding-right: 5px; padding-left: 5px" onclick="Ok();"
+					type="button" value="Find" fcklang="DlgFindFindBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="bottom" colspan="3">
+				&nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
+					case</label>
+				<br />
+				<div id="divWord" style="display: none">
+					&nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
+						whole word</label>
+				</div>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_flash.js
- * 	Scripts related to the Flash dialog window (see fck_flash.html).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Flash dialog window (see fck_flash.html).
  */
 
 var oEditor		= window.parent.InnerDialogLoaded() ;
@@ -90,14 +94,19 @@
 	GetE('chkLoop').checked		= GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
 	GetE('chkMenu').checked		= GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
 	GetE('cmbScale').value		= GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
-	
+
 	GetE('txtAttTitle').value		= oEmbed.title ;
-	GetE('txtAttClasses').value		= oEmbed.getAttribute('class',2) || '' ;
 
 	if ( oEditor.FCKBrowserInfo.IsIE )
-		GetE('txtAttStyle').value	= oEmbed.style.cssText ;
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
+		GetE('txtAttStyle').value = oEmbed.style.cssText ;
+	}
 	else
-		GetE('txtAttStyle').value	= oEmbed.getAttribute('style',2) ;
+	{
+		GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ;
+	}
 
 	UpdatePreview() ;
 }
@@ -121,16 +130,16 @@
 		oFakeImage  = null ;
 	}
 	UpdateEmbed( oEmbed ) ;
-	
+
 	if ( !oFakeImage )
 	{
-		oFakeImage	= oEditor.FCKDocumentProcessors_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
+		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
 		oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
 		oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
 	}
 	else
 		oEditor.FCKUndo.SaveUndoStep() ;
-	
+
 	oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ;
 
 	return true ;
@@ -144,44 +153,61 @@
 	e.src = GetE('txtUrl').value ;
 	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
 	SetAttribute( e, "height", GetE('txtHeight').value ) ;
-	
+
 	// Advances Attributes
 
 	SetAttribute( e, 'id'	, GetE('txtAttId').value ) ;
 	SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
-	
-	if ( !GetE('chkAutoPlay').checked )	SetAttribute( e, 'play', 'false' ) ;
-	if ( !GetE('chkLoop').checked )		SetAttribute( e, 'loop', 'false' ) ;
-	if ( !GetE('chkMenu').checked )		SetAttribute( e, 'menu', 'false' ) ;
 
+	SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
+	SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
+
 	SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ;
-	SetAttribute( e, 'class'	, GetE('txtAttClasses').value ) ;
 
 	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
 		e.style.cssText = GetE('txtAttStyle').value ;
+	}
 	else
+	{
+		SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
 		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
+	}
 }
 
+var ePreview ;
+
+function SetPreviewElement( previewEl )
+{
+	ePreview = previewEl ;
+
+	if ( GetE('txtUrl').value.length > 0 )
+		UpdatePreview() ;
+}
+
 function UpdatePreview()
 {
-	var oCell = GetE('ePreviewCell') ;
-	
-	while ( oCell.firstChild )
-		oCell.removeChild( oCell.firstChild ) ;
+	if ( !ePreview )
+		return ;
 
+	while ( ePreview.firstChild )
+		ePreview.removeChild( ePreview.firstChild ) ;
+
 	if ( GetE('txtUrl').value.length == 0 )
-		oCell.innerHTML = '&nbsp;' ;
+		ePreview.innerHTML = '&nbsp;' ;
 	else
 	{
-		var e = document.createElement( 'EMBED' ) ;
-		
+		var oDoc	= ePreview.ownerDocument || ePreview.document ;
+		var e		= oDoc.createElement( 'EMBED' ) ;
+
 		e.src		= GetE('txtUrl').value ;
 		e.type		= 'application/x-shockwave-flash' ;
 		e.width		= '100%' ;
 		e.height	= '100%' ;
-		
-		oCell.appendChild( e ) ;
+
+		ePreview.appendChild( e ) ;
 	}
 }
 
@@ -189,40 +215,19 @@
 
 function BrowseServer()
 {
-	OpenServerBrowser(
-		'Flash',
-		FCKConfig.FlashBrowserURL,
-		FCKConfig.FlashBrowserWindowWidth,
-		FCKConfig.FlashBrowserWindowHeight ) ;
+	OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;
 }
 
-function OpenServerBrowser( type, url, width, height )
+function SetUrl( url, width, height )
 {
-	var iLeft = (FCKConfig.ScreenWidth  - width) / 2 ;
-	var iTop  = (FCKConfig.ScreenHeight - height) / 2 ;
+	GetE('txtUrl').value = url ;
 
-	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
-	sOptions += ",width=" + width ;
-	sOptions += ",height=" + height ;
-	sOptions += ",left=" + iLeft ;
-	sOptions += ",top=" + iTop ;
+	if ( width )
+		GetE('txtWidth').value = width ;
 
-	if ( 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 ) ;
-		oWindow.opener = window ;
-    }
-    else
-		window.open( url, "FCKBrowseWindow", sOptions ) ;
-}
+	if ( height )
+		GetE('txtHeight').value = height ;
 
-function SetUrl( url )
-{
-	GetE('txtUrl').value = url ;
 	UpdatePreview() ;
 
 	window.parent.SetSelectedTab( 'Info' ) ;
@@ -265,19 +270,19 @@
 function CheckUpload()
 {
 	var sFile = GetE('txtUploadFile').value ;
-	
+
 	if ( sFile.length == 0 )
 	{
 		alert( 'Please select a file to upload' ) ;
 		return false ;
 	}
-	
+
 	if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
 		( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
 	{
 		OnUploadCompleted( 202 ) ;
 		return false ;
 	}
-	
+
 	return true ;
 }
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview page for the Flash dialog window.
+-->
+<html>
+	<head>
+		<title></title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+		<meta name="robots" content="noindex, nofollow">
+		<link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+		<script language="javascript">
+
+// Sets the Skin CSS
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElement( document.body ) ;
+}
+
+		</script>
+	</head>
+	<body style="COLOR: #000000; BACKGROUND-COLOR: #ffffff"></body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_flash.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_flash.html
- * 	Flash Properties dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Flash Properties dialog window.
 -->
 <html>
 	<head>
@@ -72,7 +76,7 @@
 											<td><span fckLang="DlgImgPreview">Preview</span></td>
 										</tr>
 										<tr>
-											<td id="ePreviewCell" valign="top" class="FlashPreviewArea">&nbsp;</td>
+											<td id="ePreviewCell" valign="top" class="FlashPreviewArea"><iframe src="fck_flash/fck_flash_preview.html" frameborder="0" marginheight="0" marginwidth="0"></iframe></td>
 										</tr>
 									</table>
 								</td>
@@ -88,7 +92,7 @@
 				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
 				<br />
 				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
-				<iframe name="UploadWindow" style="DISPLAY: none" src="../fckblank.html"></iframe> 
+				<iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
 			</form>
 		</div>
 		<div id="divAdvanced" style="DISPLAY: none">

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_form.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_form.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_form.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,33 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_form.html
- * 	Checkbox dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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>
-	<head>
-		<title>Checkbox Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -37,10 +41,10 @@
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage(document) ;
 
-	if ( oActiveEl ) 
+	if ( oActiveEl )
 	{
 		GetE('txtName').value	= oActiveEl.name ;
-		GetE('txtAction').value	= oActiveEl.action ;
+		GetE('txtAction').value	= oActiveEl.getAttribute( 'action', 2 ) ;
 		GetE('txtMethod').value	= oActiveEl.method ;
 	}
 	else
@@ -57,7 +61,7 @@
 		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
 		oActiveEl.innerHTML = '&nbsp;' ;
 	}
-	
+
 	oActiveEl.name = GetE('txtName').value ;
 	SetAttribute( oActiveEl, 'action'	, GetE('txtAction').value ) ;
 	oActiveEl.method = GetE('txtMethod').value ;
@@ -65,37 +69,37 @@
 	return true ;
 }
 
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<table height="100%" width="100%">
-			<tr>
-				<td>
-					<table cellspacing="0" cellpadding="0" width="80%" border="0" valign="top" align="center">
-						<tr>
-							<td>
-								<span fckLang="DlgFormName">Name</span><br>
-								<input style="WIDTH: 100%" type="text" id="txtName">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgFormAction">Action</span><br>
-								<input style="WIDTH: 100%" type="text" id="txtAction">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgFormMethod">Method</span><br>
-								<select id="txtMethod">
-									<option value="get" selected>GET</option>
-									<option value="post">POST</option>
-								</select>
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" width="80%" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgFormName">Name</span><br />
+							<input style="width: 100%" type="text" id="txtName" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormAction">Action</span><br />
+							<input style="width: 100%" type="text" id="txtAction" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgFormMethod">Method</span><br />
+							<select id="txtMethod">
+								<option value="get" selected="selected">GET</option>
+								<option value="post">POST</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_hiddenfield.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_hiddenfield.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_hiddenfield.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,91 +1,116 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_hiddenfield.html
- * 	Hidden Field dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hidden Field dialog window.
 -->
-<html>
-	<head>
-		<title>Hidden Field Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Hidden Field Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
+var FCK = oEditor.FCK ;
 
 // Gets the document DOM
-var oDOM = oEditor.FCK.EditorDocument ;
+var oDOM = FCK.EditorDocument ;
 
-var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ;
+// Get the selected flash embed (if available).
+var oFakeImage = FCK.Selection.GetSelectedElement() ;
+var oActiveEl ;
 
+if ( oFakeImage )
+{
+	if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') )
+		oActiveEl = FCK.GetRealElement( oFakeImage ) ;
+	else
+		oFakeImage = null ;
+}
+
 window.onload = function()
 {
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage(document) ;
 
-	if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'hidden' ) 
+	if ( oActiveEl )
 	{
 		GetE('txtName').value		= oActiveEl.name ;
 		GetE('txtValue').value		= oActiveEl.value ;
 	}
-	else
-		oActiveEl = null ;
 
 	window.parent.SetOkButton( true ) ;
-}	
+}
 
 
 function Ok()
 {
 	if ( !oActiveEl )
 	{
-		oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ;
+		oActiveEl = FCK.EditorDocument.createElement( 'INPUT' ) ;
 		oActiveEl.type = 'hidden' ;
-		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
+
+		oFakeImage = null ;
 	}
-	
+
 	oActiveEl.name = GetE('txtName').value ;
 	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
 
+	if ( !oFakeImage )
+	{
+		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ;
+		oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ;
+		oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ;
+	}
+	else
+		oEditor.FCKUndo.SaveUndoStep() ;
+
+	oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oActiveEl ) ;
+
 	return true ;
 }
 
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<table height="100%" width="100%">
-			<tr>
-				<td align="center">
-					<table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
-						<tr>
-							<td>
-								<span fckLang="DlgHiddenName">Name</span><br>
-								<input type="text" size="20" id="txtName" style="WIDTH: 100%">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgHiddenValue">Value</span><br>
-								<input type="text" size="30" id="txtValue" style="WIDTH: 100%">
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body style="overflow: hidden" scroll="no">
+	<table height="100%" width="100%">
+		<tr>
+			<td align="center">
+				<table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%">
+					<tr>
+						<td>
+							<span fcklang="DlgHiddenName">Name</span><br />
+							<input type="text" size="20" id="txtName" style="width: 100%" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgHiddenValue">Value</span><br />
+							<input type="text" size="30" id="txtValue" style="width: 100%" />
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,31 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_image.js
- * 	Scripts related to the Image dialog window (see fck_image.html).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Image dialog window (see fck_image.html).
  */
 
 var oEditor		= window.parent.InnerDialogLoaded() ;
 var FCK			= oEditor.FCK ;
 var FCKLang		= oEditor.FCKLang ;
 var FCKConfig	= oEditor.FCKConfig ;
+var FCKDebug	= oEditor.FCKDebug ;
 
 var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ;
 
@@ -60,6 +65,15 @@
 
 function UpdateOriginal( resetSize )
 {
+	if ( !eImgPreview )
+		return ;
+
+	if ( GetE('txtUrl').value.length == 0 )
+	{
+		oImageOriginal = null ;
+		return ;
+	}
+
 	oImageOriginal = document.createElement( 'IMG' ) ;	// new Image() ;
 
 	if ( resetSize )
@@ -71,9 +85,11 @@
 		}
 	}
 
-	oImageOriginal.src = GetE('imgPreview').src ;
+	oImageOriginal.src = eImgPreview.src ;
 }
 
+var bPreviewInitialized ;
+
 window.onload = function()
 {
 	// Translate the dialog box texts.
@@ -105,12 +121,10 @@
 {
 	if ( ! oImage ) return ;
 
-	var sUrl = GetAttribute( oImage, 'src', '' ) ;
+	var sUrl = oImage.getAttribute( '_fcksavedurl' ) ;
+	if ( sUrl == null )
+		sUrl = GetAttribute( oImage, 'src', '' ) ;
 
-	// TODO: Wait stable version and remove the following commented lines.
-//	if ( sUrl.startsWith( FCK.BaseUrl ) )
-//		sUrl = sUrl.remove( 0, FCK.BaseUrl.length ) ;
-
 	GetE('txtUrl').value    = sUrl ;
 	GetE('txtAlt').value    = GetAttribute( oImage, 'alt', '' ) ;
 	GetE('txtVSpace').value	= GetAttribute( oImage, 'vspace', '' ) ;
@@ -118,32 +132,58 @@
 	GetE('txtBorder').value	= GetAttribute( oImage, 'border', '' ) ;
 	GetE('cmbAlign').value	= GetAttribute( oImage, 'align', '' ) ;
 
-	if ( oImage.style.pixelWidth > 0 )
-		GetE('txtWidth').value  = oImage.style.pixelWidth ;
-	else
-		GetE('txtWidth').value  = GetAttribute( oImage, "width", '' ) ;
+	var iWidth, iHeight ;
 
-	if ( oImage.style.pixelHeight > 0 )
-		GetE('txtHeight').value  = oImage.style.pixelHeight ;
-	else
-		GetE('txtHeight').value = GetAttribute( oImage, "height", '' ) ;
+	var regexSize = /^\s*(\d+)px\s*$/i ;
 
+	if ( oImage.style.width )
+	{
+		var aMatchW  = oImage.style.width.match( regexSize ) ;
+		if ( aMatchW )
+		{
+			iWidth = aMatchW[1] ;
+			oImage.style.width = '' ;
+		}
+	}
+
+	if ( oImage.style.height )
+	{
+		var aMatchH  = oImage.style.height.match( regexSize ) ;
+		if ( aMatchH )
+		{
+			iHeight = aMatchH[1] ;
+			oImage.style.height = '' ;
+		}
+	}
+
+	GetE('txtWidth').value	= iWidth ? iWidth : GetAttribute( oImage, "width", '' ) ;
+	GetE('txtHeight').value	= iHeight ? iHeight : GetAttribute( oImage, "height", '' ) ;
+
 	// Get Advances Attributes
 	GetE('txtAttId').value			= oImage.id ;
 	GetE('cmbAttLangDir').value		= oImage.dir ;
 	GetE('txtAttLangCode').value	= oImage.lang ;
 	GetE('txtAttTitle').value		= oImage.title ;
-	GetE('txtAttClasses').value		= oImage.getAttribute('class',2) || '' ;
 	GetE('txtLongDesc').value		= oImage.longDesc ;
 
 	if ( oEditor.FCKBrowserInfo.IsIE )
-		GetE('txtAttStyle').value	= oImage.style.cssText ;
+	{
+		GetE('txtAttClasses').value = oImage.getAttribute('className') || '' ;
+		GetE('txtAttStyle').value = oImage.style.cssText ;
+	}
 	else
-		GetE('txtAttStyle').value	= oImage.getAttribute('style',2) ;
+	{
+		GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value = oImage.getAttribute('style',2) ;
+	}
 
 	if ( oLink )
 	{
-		GetE('txtLnkUrl').value		= oLink.getAttribute('href',2) ;
+		var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ;
+		if ( sLinkUrl == null )
+			sLinkUrl = oLink.getAttribute('href',2) ;
+
+		GetE('txtLnkUrl').value		= sLinkUrl ;
 		GetE('cmbLnkTarget').value	= oLink.target ;
 	}
 
@@ -175,7 +215,7 @@
 		if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
 			oImage = null ;
 	}
-	
+
 	if ( !bHasImage )
 	{
 		if ( bImageButton )
@@ -189,10 +229,10 @@
 	}
 	else
 		oEditor.FCKUndo.SaveUndoStep() ;
-	
+
 	UpdateImage( oImage ) ;
 
-	var sLnkUrl = GetE('txtLnkUrl').value.trim() ;
+	var sLnkUrl = GetE('txtLnkUrl').value.Trim() ;
 
 	if ( sLnkUrl.length == 0 )
 	{
@@ -217,6 +257,7 @@
 			}
 		}
 
+		SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ;
 		SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;
 	}
 
@@ -226,6 +267,7 @@
 function UpdateImage( e, skipId )
 {
 	e.src = GetE('txtUrl').value ;
+	SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ;
 	SetAttribute( e, "alt"   , GetE('txtAlt').value ) ;
 	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
 	SetAttribute( e, "height", GetE('txtHeight').value ) ;
@@ -251,20 +293,37 @@
 		SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
 }
 
+var eImgPreview ;
+var eImgPreviewLink ;
+
+function SetPreviewElements( imageElement, linkElement )
+{
+	eImgPreview = imageElement ;
+	eImgPreviewLink = linkElement ;
+
+	UpdatePreview() ;
+	UpdateOriginal() ;
+
+	bPreviewInitialized = true ;
+}
+
 function UpdatePreview()
 {
+	if ( !eImgPreview || !eImgPreviewLink )
+		return ;
+
 	if ( GetE('txtUrl').value.length == 0 )
-		GetE('lnkPreview').style.display = 'none' ;
+		eImgPreviewLink.style.display = 'none' ;
 	else
 	{
-		UpdateImage( GetE('imgPreview'), true ) ;
+		UpdateImage( eImgPreview, true ) ;
 
-		if ( GetE('txtLnkUrl').value.trim().length > 0 )
-			GetE('lnkPreview').href = 'javascript:void(null);' ;
+		if ( GetE('txtLnkUrl').value.Trim().length > 0 )
+			eImgPreviewLink.href = 'javascript:void(null);' ;
 		else
-			SetAttribute( GetE('lnkPreview'), 'href', '' ) ;
+			SetAttribute( eImgPreviewLink, 'href', '' ) ;
 
-		GetE('lnkPreview').style.display = '' ;
+		eImgPreviewLink.style.display = '' ;
 	}
 }
 
@@ -291,16 +350,21 @@
 	// Verifies if the aspect ration has to be mantained
 	if ( oImageOriginal && bLockRatio )
 	{
+		var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ;
+
 		if ( value.length == 0 || isNaN( value ) )
 		{
-			GetE('txtHeight').value = GetE('txtWidth').value = '' ;
+			e.value = '' ;
 			return ;
 		}
 
 		if ( dimension == 'Width' )
-			GetE('txtHeight').value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value  / oImageOriginal.width ) ) ;
+			value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value  / oImageOriginal.width ) ) ;
 		else
-			GetE('txtWidth').value  = value == 0 ? 0 : Math.round( oImageOriginal.width  * ( value / oImageOriginal.height ) ) ;
+			value = value == 0 ? 0 : Math.round( oImageOriginal.width  * ( value / oImageOriginal.height ) ) ;
+
+		if ( !isNaN( value ) )
+			e.value = value ;
 	}
 
 	UpdatePreview() ;
@@ -338,27 +402,7 @@
 function OpenServerBrowser( type, url, width, height )
 {
 	sActualBrowser = type ;
-
-	var iLeft = (FCKConfig.ScreenWidth  - width) / 2 ;
-	var iTop  = (FCKConfig.ScreenHeight - height) / 2 ;
-
-	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
-	sOptions += ",width=" + width ;
-	sOptions += ",height=" + height ;
-	sOptions += ",left=" + iLeft ;
-	sOptions += ",top=" + iTop ;
-
-	if ( 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 ) ;
-		oWindow.opener = window ;
-    }
-    else
-		window.open( url, "FCKBrowseWindow", sOptions ) ;
+	OpenFileBrowser( url, width, height ) ;
 }
 
 var sActualBrowser ;
@@ -382,7 +426,7 @@
 		UpdatePreview() ;
 		UpdateOriginal( true ) ;
 	}
-	
+
 	window.parent.SetSelectedTab( 'Info' ) ;
 }
 
@@ -413,7 +457,7 @@
 			return ;
 	}
 
-	sActualBrowser = ''
+	sActualBrowser = '' ;
 	SetUrl( fileUrl ) ;
 	GetE('frmUpload').reset() ;
 }
@@ -424,19 +468,19 @@
 function CheckUpload()
 {
 	var sFile = GetE('txtUploadFile').value ;
-	
+
 	if ( sFile.length == 0 )
 	{
 		alert( 'Please select a file to upload' ) ;
 		return false ;
 	}
-	
+
 	if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
 		( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
 	{
 		OnUploadCompleted( 202 ) ;
 		return false ;
 	}
-	
+
 	return true ;
 }
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image_preview.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image_preview.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image/fck_image_preview.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Preview page for the Image dialog window.
+ *
+ * Curiosity: http://en.wikipedia.org/wiki/Lorem_ipsum
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+	<script type="text/javascript">
+
+// Sets the Skin CSS
+document.write( '<link href="' + window.parent.FCKConfig.SkinPath + 'fck_dialog.css" type="text/css" rel="stylesheet">' ) ;
+
+if ( window.parent.FCKConfig.BaseHref.length > 0 )
+	document.write( '<base href="' + window.parent.FCKConfig.BaseHref + '">' ) ;
+
+window.onload = function()
+{
+	window.parent.SetPreviewElements(
+		document.getElementById( 'imgPreview' ),
+		document.getElementById( 'lnkPreview' ) ) ;
+}
+
+	</script>
+</head>
+<body style="color: #000000; background-color: #ffffff">
+	<a id="lnkPreview" onclick="return false;" style="cursor: default">
+		<img id="imgPreview" onload="window.parent.UpdateOriginal();" style="display: none" /></a>Lorem
+	ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam.
+	Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla.
+	Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis
+	euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce
+	mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie.
+	Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque
+	egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem,
+	in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut
+	placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy
+	metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices,
+	ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris
+	non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas
+	elementum. Nunc imperdiet gravida mauris.
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_image.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,242 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_image.html
- * 	Image Properties dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Image Properties dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>Image Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta name="robots" content="noindex, nofollow">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script src="fck_image/fck_image.js" type="text/javascript"></script>
-		<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<div id="divInfo">
-			<table cellspacing="1" cellpadding="1" border="0" width="100%" height="100%">
-				<tr>
-					<td>
-						<table cellspacing="0" cellpadding="0" width="100%" border="0">
-							<tr>
-								<td width="100%">
-									<span fckLang="DlgImgURL">URL</span>
-								</td>
-								<td id="tdBrowse" style="DISPLAY: none" nowrap rowspan="2">
-									&nbsp; <input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server" fckLang="DlgBtnBrowseServer">
-								</td>
-							</tr>
-							<tr>
-								<td valign="top">
-									<input id="txtUrl" style="WIDTH: 100%" type="text" onblur="UpdatePreview();">
-								</td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-				<tr>
-					<td>
-						<span fckLang="DlgImgAlt">Short Description</span><br />
-						<input id="txtAlt" style="WIDTH: 100%" type="text"><br />
-					</td>
-				</tr>
-				<tr height="100%">
-					<td valign="top">
-						<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
-							<tr>
-								<td valign="top">
-									<br />
-									<table cellspacing="0" cellpadding="0" border="0">
-										<tr>
-											<td nowrap><span fckLang="DlgImgWidth">Width</span>&nbsp;</td>
-											<td>
-												<input type="text" size="3" id="txtWidth" onkeyup="OnSizeChanged('Width',this.value);"></td>
-											<td nowrap rowspan="2">
-												<div id="btnLockSizes" class="BtnLocked" onmouseover="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';"
-													onmouseout="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );" title="Lock Sizes"
-													onclick="SwitchLock(this);"></div>
-												<div id="btnResetSize" class="BtnReset" onmouseover="this.className='BtnReset BtnOver';"
-													onmouseout="this.className='BtnReset';" title="Reset Size" onclick="ResetSizes();"></div>
-											</td>
-										</tr>
-										<tr>
-											<td nowrap><span fckLang="DlgImgHeight">Height</span>&nbsp;</td>
-											<td>
-												<input type="text" size="3" id="txtHeight" onkeyup="OnSizeChanged('Height',this.value);"></td>
-										</tr>
-									</table>
-									<br />
-									<table cellspacing="0" cellpadding="0" border="0">
-										<tr>
-											<td nowrap><span fckLang="DlgImgBorder">Border</span>&nbsp;</td>
-											<td>
-												<input type="text" size="2" value="" id="txtBorder" onkeyup="UpdatePreview();"></td>
-										</tr>
-										<tr>
-											<td nowrap><span fckLang="DlgImgHSpace">HSpace</span>&nbsp;</td>
-											<td>
-												<input type="text" size="2" id="txtHSpace" onkeyup="UpdatePreview();"></td>
-										</tr>
-										<tr>
-											<td nowrap><span fckLang="DlgImgVSpace">VSpace</span>&nbsp;</td>
-											<td>
-												<input type="text" size="2" id="txtVSpace" onkeyup="UpdatePreview();"></td>
-										</tr>
-										<tr>
-											<td nowrap><span fckLang="DlgImgAlign">Align</span>&nbsp;</td>
-											<td><select id="cmbAlign" onchange="UpdatePreview();">
-													<option value="" selected></option>
-													<option fckLang="DlgImgAlignLeft" value="left">Left</option>
-													<option fckLang="DlgImgAlignAbsBottom" value="absBottom">Abs Bottom</option>
-													<option fckLang="DlgImgAlignAbsMiddle" value="absMiddle">Abs Middle</option>
-													<option fckLang="DlgImgAlignBaseline" value="baseline">Baseline</option>
-													<option fckLang="DlgImgAlignBottom" value="bottom">Bottom</option>
-													<option fckLang="DlgImgAlignMiddle" value="middle">Middle</option>
-													<option fckLang="DlgImgAlignRight" value="right">Right</option>
-													<option fckLang="DlgImgAlignTextTop" value="textTop">Text Top</option>
-													<option fckLang="DlgImgAlignTop" value="top">Top</option>
-												</select>
-											</td>
-										</tr>
-									</table>
-								</td>
-								<td>&nbsp;&nbsp;&nbsp;</td>
-								<td width="100%" valign="top">
-									<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed">
-										<tr>
-											<td><span fckLang="DlgImgPreview">Preview</span></td>
-										</tr>
-										<tr>
-											<td valign="top">
-												<div class="ImagePreviewArea">
-													<a id="lnkPreview" onclick="return false;" style="CURSOR: default"><img id="imgPreview" style="DISPLAY: none"></a>Magnus 
-													es, domine, et laudabilis valde: magna virtus tua, et sapientiae tuae non est 
-													numerus. et laudare te vult homo, aliqua portio creaturae tuae, et homo 
-													circumferens mortalitem suam, circumferens testimonium peccati sui et 
-													testimonium, quia superbis resistis: et tamen laudare te vult homo, aliqua 
-													portio creaturae tuae.tu excitas, ut laudare te delectet, quia fecisti nos ad 
-													te et inquietum est cor nostrum, donec requiescat in te. da mihi, domine, scire 
-													et intellegere, utrum sit prius invocare te an laudare te, et scire te prius 
-													sit an invocare te. sed quis te invocat nesciens te? aliud enim pro alio potest 
-													invocare nesciens. an potius invocaris, ut sciaris? quomodo autem invocabunt, 
-													in quem non crediderunt? aut quomodo credent sine praedicante? et laudabunt 
-													dominum qui requirunt eum. quaerentes enim inveniunt eum et invenientes 
-													laudabunt eum. quaeram te, domine, invocans te, et invocem te credens in te: 
-													praedicatus enim es nobis. invocat te, domine, fides mea, quam dedisti mihi, 
-													quam inspirasti mihi per humanitatem filii tui, per ministerium praedicatoris 
-													tui.
-												</div>
-											</td>
-										</tr>
-									</table>
-								</td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-			</table>
-		</div>
-		<div id="divUpload" style="DISPLAY: none">
-			<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data" action="" onsubmit="return CheckUpload();">
-				<span fckLang="DlgLnkUpload">Upload</span><br />
-				<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="../fckblank.html"></iframe> 
-			</form>
-		</div>
-		<div id="divLink" style="DISPLAY: none">
-			<table cellspacing="1" cellpadding="1" border="0" width="100%">
-				<tr>
-					<td>
-						<div>
-							<span fckLang="DlgLnkURL">URL</span><br />
-							<input id="txtLnkUrl" style="WIDTH: 100%" type="text" onblur="UpdatePreview();" />
-						</div>
-						<div id="divLnkBrowseServer" align="right">
-							<input type="button" value="Browse Server" fckLang="DlgBtnBrowseServer" onclick="LnkBrowseServer();" />
-						</div>
-						<div>
-							<span fckLang="DlgLnkTarget">Target</span><br />
-							<select id="cmbLnkTarget">
-								<option value="" fckLang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
-								<option value="_blank" fckLang="DlgLnkTargetBlank">New Window (_blank)</option>
-								<option value="_top" fckLang="DlgLnkTargetTop">Topmost Window (_top)</option>
-								<option value="_self" fckLang="DlgLnkTargetSelf">Same Window (_self)</option>
-								<option value="_parent" fckLang="DlgLnkTargetParent">Parent Window (_parent)</option>
-							</select>
-						</div>
-					</td>
-				</tr>
-			</table>
-		</div>
-		<div id="divAdvanced" style="DISPLAY: none">
-			<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
-				<tr>
-					<td valign="top" width="50%">
-						<span fckLang="DlgGenId">Id</span><br />
-						<input id="txtAttId" style="WIDTH: 100%" type="text">
-					</td>
-					<td width="1">&nbsp;&nbsp;</td>
-					<td valign="top">
-						<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
-							<tr>
-								<td width="60%">
-									<span fckLang="DlgGenLangDir">Language Direction</span><br />
-									<select id="cmbAttLangDir" style="WIDTH: 100%">
-										<option value="" fckLang="DlgGenNotSet" selected>&lt;not set&gt;</option>
-										<option value="ltr" fckLang="DlgGenLangDirLtr">Left to Right (LTR)</option>
-										<option value="rtl" fckLang="DlgGenLangDirRtl">Right to Left (RTL)</option>
-									</select>
-								</td>
-								<td width="1%">&nbsp;&nbsp;</td>
-								<td nowrap>
-									<span fckLang="DlgGenLangCode">Language Code</span><br />
-									<input id="txtAttLangCode" style="WIDTH: 100%" type="text">&nbsp;
-								</td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-				<tr>
-					<td colspan="3">&nbsp;</td>
-				</tr>
-				<tr>
-					<td colspan="3">
-						<span fckLang="DlgGenLongDescr">Long Description URL</span><br />
-						<input id="txtLongDesc" style="WIDTH: 100%" type="text">
-					</td>
-				</tr>
-				<tr>
-					<td colspan="3">&nbsp;</td>
-				</tr>
-				<tr>
-					<td valign="top">
-						<span fckLang="DlgGenClass">Stylesheet Classes</span><br />
-						<input id="txtAttClasses" style="WIDTH: 100%" type="text">
-					</td>
-					<td></td>
-					<td valign="top">&nbsp;<span fckLang="DlgGenTitle">Advisory Title</span><br />
-						<input id="txtAttTitle" style="WIDTH: 100%" type="text">
-					</td>
-				</tr>
-			</table>
-			<span fckLang="DlgGenStyle">Style</span><br />
-			<input id="txtAttStyle" style="WIDTH: 100%" type="text">
-		</div>
-	</body>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Image Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script src="fck_image/fck_image.js" type="text/javascript"></script>
+	<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
+</head>
+<body scroll="no" style="overflow: hidden">
+	<div id="divInfo">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%" height="100%">
+			<tr>
+				<td>
+					<table cellspacing="0" cellpadding="0" width="100%" border="0">
+						<tr>
+							<td width="100%">
+								<span fcklang="DlgImgURL">URL</span>
+							</td>
+							<td id="tdBrowse" style="display: none" nowrap="nowrap" rowspan="2">
+								&nbsp;
+								<input id="btnBrowse" onclick="BrowseServer();" type="button" value="Browse Server"
+									fcklang="DlgBtnBrowseServer" />
+							</td>
+						</tr>
+						<tr>
+							<td valign="top">
+								<input id="txtUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<span fcklang="DlgImgAlt">Short Description</span><br />
+					<input id="txtAlt" style="width: 100%" type="text" /><br />
+				</td>
+			</tr>
+			<tr height="100%">
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+						<tr>
+							<td valign="top">
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgWidth">Width</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtWidth" onkeyup="OnSizeChanged('Width',this.value);" /></td>
+										<td rowspan="2">
+											<div id="btnLockSizes" class="BtnLocked" onmouseover="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ) + ' BtnOver';"
+												onmouseout="this.className = (bLockRatio ? 'BtnLocked' : 'BtnUnlocked' );" title="Lock Sizes"
+												onclick="SwitchLock(this);">
+											</div>
+										</td>
+										<td rowspan="2">
+											<div id="btnResetSize" class="BtnReset" onmouseover="this.className='BtnReset BtnOver';"
+												onmouseout="this.className='BtnReset';" title="Reset Size" onclick="ResetSizes();">
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHeight">Height</span>&nbsp;</td>
+										<td>
+											<input type="text" size="3" id="txtHeight" onkeyup="OnSizeChanged('Height',this.value);" /></td>
+									</tr>
+								</table>
+								<br />
+								<table cellspacing="0" cellpadding="0" border="0">
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgBorder">Border</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" value="" id="txtBorder" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgHSpace">HSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtHSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgVSpace">VSpace</span>&nbsp;</td>
+										<td>
+											<input type="text" size="2" id="txtVSpace" onkeyup="UpdatePreview();" /></td>
+									</tr>
+									<tr>
+										<td nowrap="nowrap">
+											<span fcklang="DlgImgAlign">Align</span>&nbsp;</td>
+										<td>
+											<select id="cmbAlign" onchange="UpdatePreview();">
+												<option value="" selected="selected"></option>
+												<option fcklang="DlgImgAlignLeft" value="left">Left</option>
+												<option fcklang="DlgImgAlignAbsBottom" value="absBottom">Abs Bottom</option>
+												<option fcklang="DlgImgAlignAbsMiddle" value="absMiddle">Abs Middle</option>
+												<option fcklang="DlgImgAlignBaseline" value="baseline">Baseline</option>
+												<option fcklang="DlgImgAlignBottom" value="bottom">Bottom</option>
+												<option fcklang="DlgImgAlignMiddle" value="middle">Middle</option>
+												<option fcklang="DlgImgAlignRight" value="right">Right</option>
+												<option fcklang="DlgImgAlignTextTop" value="textTop">Text Top</option>
+												<option fcklang="DlgImgAlignTop" value="top">Top</option>
+											</select>
+										</td>
+									</tr>
+								</table>
+							</td>
+							<td>
+								&nbsp;&nbsp;&nbsp;</td>
+							<td width="100%" valign="top">
+								<table cellpadding="0" cellspacing="0" width="100%" style="table-layout: fixed">
+									<tr>
+										<td>
+											<span fcklang="DlgImgPreview">Preview</span></td>
+									</tr>
+									<tr>
+										<td valign="top">
+											<iframe class="ImagePreviewArea" src="fck_image/fck_image_preview.html" frameborder="0"
+												marginheight="0" marginwidth="0"></iframe>
+										</td>
+									</tr>
+								</table>
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divUpload" style="display: none">
+		<form id="frmUpload" method="post" target="UploadWindow" enctype="multipart/form-data"
+			action="" onsubmit="return CheckUpload();">
+			<span fcklang="DlgLnkUpload">Upload</span><br />
+			<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>
+		</form>
+	</div>
+	<div id="divLink" style="display: none">
+		<table cellspacing="1" cellpadding="1" border="0" width="100%">
+			<tr>
+				<td>
+					<div>
+						<span fcklang="DlgLnkURL">URL</span><br />
+						<input id="txtLnkUrl" style="width: 100%" type="text" onblur="UpdatePreview();" />
+					</div>
+					<div id="divLnkBrowseServer" align="right">
+						<input type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" onclick="LnkBrowseServer();" />
+					</div>
+					<div>
+						<span fcklang="DlgLnkTarget">Target</span><br />
+						<select id="cmbLnkTarget">
+							<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+							<option value="_blank" fcklang="DlgLnkTargetBlank">New Window (_blank)</option>
+							<option value="_top" fcklang="DlgLnkTargetTop">Topmost Window (_top)</option>
+							<option value="_self" fcklang="DlgLnkTargetSelf">Same Window (_self)</option>
+							<option value="_parent" fcklang="DlgLnkTargetParent">Parent Window (_parent)</option>
+						</select>
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+	<div id="divAdvanced" style="display: none">
+		<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+			<tr>
+				<td valign="top" width="50%">
+					<span fcklang="DlgGenId">Id</span><br />
+					<input id="txtAttId" style="width: 100%" type="text" />
+				</td>
+				<td width="1">
+					&nbsp;&nbsp;</td>
+				<td valign="top">
+					<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
+						<tr>
+							<td width="60%">
+								<span fcklang="DlgGenLangDir">Language Direction</span><br />
+								<select id="cmbAttLangDir" style="width: 100%">
+									<option value="" fcklang="DlgGenNotSet" selected="selected">&lt;not set&gt;</option>
+									<option value="ltr" fcklang="DlgGenLangDirLtr">Left to Right (LTR)</option>
+									<option value="rtl" fcklang="DlgGenLangDirRtl">Right to Left (RTL)</option>
+								</select>
+							</td>
+							<td width="1%">
+								&nbsp;&nbsp;</td>
+							<td nowrap="nowrap">
+								<span fcklang="DlgGenLangCode">Language Code</span><br />
+								<input id="txtAttLangCode" style="width: 100%" type="text" />&nbsp;
+							</td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					<span fcklang="DlgGenLongDescr">Long Description URL</span><br />
+					<input id="txtLongDesc" style="width: 100%" type="text" />
+				</td>
+			</tr>
+			<tr>
+				<td colspan="3">
+					&nbsp;</td>
+			</tr>
+			<tr>
+				<td valign="top">
+					<span fcklang="DlgGenClass">Stylesheet Classes</span><br />
+					<input id="txtAttClasses" style="width: 100%" type="text" />
+				</td>
+				<td>
+				</td>
+				<td valign="top">
+					&nbsp;<span fcklang="DlgGenTitle">Advisory Title</span><br />
+					<input id="txtAttTitle" style="width: 100%" type="text" />
+				</td>
+			</tr>
+		</table>
+		<span fcklang="DlgGenStyle">Style</span><br />
+		<input id="txtAttStyle" style="width: 100%" type="text" />
+	</div>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link/fck_link.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link/fck_link.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,31 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_link.js
- * 	Scripts related to the Link dialog window (see fck_link.html).
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts related to the Link dialog window (see fck_link.html).
  */
 
 var oEditor		= window.parent.InnerDialogLoaded() ;
 var FCK			= oEditor.FCK ;
 var FCKLang		= oEditor.FCKLang ;
 var FCKConfig	= oEditor.FCKConfig ;
+var FCKRegexLib	= oEditor.FCKRegexLib ;
 
 //#### Dialog Tabs
 
@@ -43,30 +48,28 @@
 	ShowE('divTarget'	, ( tabCode == 'Target' ) ) ;
 	ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ;
 	ShowE('divAttribs'	, ( tabCode == 'Advanced' ) ) ;
+
+	window.parent.SetAutoSize( true ) ;
 }
 
 //#### Regular Expressions library.
 var oRegex = new Object() ;
 
-oRegex.UriProtocol = new RegExp('') ;
-oRegex.UriProtocol.compile( '^(((http|https|ftp|news):\/\/)|mailto:)', 'gi' ) ;
+oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ;
 
-oRegex.UrlOnChangeProtocol = new RegExp('') ;
-oRegex.UrlOnChangeProtocol.compile( '^(http|https|ftp|news)://(?=.)', 'gi' ) ;
+oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;
 
-oRegex.UrlOnChangeTestOther = new RegExp('') ;
-//oRegex.UrlOnChangeTestOther.compile( '^(javascript:|#|/)', 'gi' ) ;
-oRegex.UrlOnChangeTestOther.compile( '^((javascript:)|[#/\.])', 'gi' ) ; 
+oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;
 
-oRegex.ReserveTarget = new RegExp('') ;
-oRegex.ReserveTarget.compile( '^_(blank|self|top|parent)$', 'i' ) ;
+oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ;
 
-oRegex.PopupUri = new RegExp('') ;
-oRegex.PopupUri.compile( "^javascript:void\\(\\s*window.open\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*\\)\\s*$" ) ;
+oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ;
 
-oRegex.PopupFeatures = new RegExp('') ;
-oRegex.PopupFeatures.compile( '(?:^|,)([^=]+)=(\\d+|yes|no)', 'gi' ) ;
+// Accessible popups
+oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ;
 
+oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ;
+
 //#### Parser Functions
 
 var oParser = new Object() ;
@@ -89,10 +92,10 @@
 		if ( oParts[2] )
 		{
 			var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;
-			if ( oMatch ) oEMailInfo.Subject = unescape( oMatch[2] ) ;
+			if ( oMatch ) oEMailInfo.Subject = decodeURIComponent( oMatch[2] ) ;
 
 			oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;
-			if ( oMatch ) oEMailInfo.Body = unescape( oMatch[2] ) ;
+			if ( oMatch ) oEMailInfo.Body = decodeURIComponent( oMatch[2] ) ;
 		}
 	}
 
@@ -106,12 +109,12 @@
 	var sParams = '' ;
 
 	if ( subject.length > 0 )
-		sParams = '?subject=' + escape( subject ) ;
+		sParams = '?subject=' + encodeURIComponent( subject ) ;
 
 	if ( body.length > 0 )
 	{
 		sParams += ( sParams.length == 0 ? '?' : '&' ) ;
-		sParams += 'body=' + escape( body ) ;
+		sParams += 'body=' + encodeURIComponent( body ) ;
 	}
 
 	return sBaseUri + sParams ;
@@ -156,31 +159,39 @@
 
 function LoadAnchorNamesAndIds()
 {
-	// Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon 
+	// Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
 	// to edit them. So, we must look for that images now.
 	var aAnchors = new Array() ;
-	
+	var i ;
 	var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' ) ;
-	for( var i = 0 ; i < oImages.length ; i++ )
+	for( i = 0 ; i < oImages.length ; i++ )
 	{
 		if ( oImages[i].getAttribute('_fckanchor') )
 			aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] ) ;
 	}
-	
+
+	// Add also real anchors
+	var oLinks = oEditor.FCK.EditorDocument.getElementsByTagName( 'A' ) ;
+	for( i = 0 ; i < oLinks.length ; i++ )
+	{
+		if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) )
+			aAnchors[ aAnchors.length ] = oLinks[i] ;
+	}
+
 	var aIds = oEditor.FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ;
 
 	bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ;
 
-	for ( var i = 0 ; i < aAnchors.length ; i++ )
+	for ( i = 0 ; i < aAnchors.length ; i++ )
 	{
 		var sName = aAnchors[i].name ;
 		if ( sName && sName.length > 0 )
-			oEditor.FCKTools.AddSelectOption( document, GetE('cmbAnchorName'), sName, sName ) ;
+			oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ;
 	}
 
-	for ( var i = 0 ; i < aIds.length ; i++ )
+	for ( i = 0 ; i < aIds.length ; i++ )
 	{
-		oEditor.FCKTools.AddSelectOption( document, GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
+		oEditor.FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ;
 	}
 
 	ShowE( 'divSelAnchor'	, bHasAnchors ) ;
@@ -194,12 +205,10 @@
 	var sType = 'url' ;
 
 	// Get the actual Link href.
-	var sHRef = oLink.getAttribute('href',2) + '' ;
+	var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
+	if ( sHRef == null )
+		sHRef = oLink.getAttribute( 'href' , 2 ) || '' ;
 
-	// TODO: Wait stable version and remove the following commented lines.
-//	if ( sHRef.startsWith( FCK.BaseUrl ) )
-//		sHRef = sHRef.remove( 0, FCK.BaseUrl.length ) ;
-
 	// Look for a popup javascript link.
 	var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ;
 	if( oPopupMatch )
@@ -210,6 +219,18 @@
 		SetTarget( 'popup' ) ;
 	}
 
+	// Accesible popups, the popup data is in the onclick attribute
+	if ( !oPopupMatch ) {
+		var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+		oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ;
+		if( oPopupMatch )
+		{
+			GetE( 'cmbTarget' ).value = 'popup' ;
+			FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ;
+			SetTarget( 'popup' ) ;
+		}
+	}
+
 	// Search for the protocol.
 	var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
 
@@ -236,7 +257,7 @@
 			GetE('txtUrl').value = sUrl ;
 		}
 	}
-	else if ( sHRef.substr(0,1) == '#' && sHRef.length > 2 )	// It is an anchor link.
+	else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 )	// It is an anchor link.
 	{
 		sType = 'anchor' ;
 		GetE('cmbAnchorName').value = GetE('cmbAnchorId').value = sHRef.substr(1) ;
@@ -278,16 +299,21 @@
 	GetE('txtAttContentType').value	= oLink.type ;
 	GetE('txtAttCharSet').value		= oLink.charset ;
 
+	var sClass ;
 	if ( oEditor.FCKBrowserInfo.IsIE )
 	{
-		GetE('txtAttClasses').value	= oLink.getAttribute('className',2) || '' ;
+		sClass	= oLink.getAttribute('className',2) || '' ;
+		// Clean up temporary classes for internal use:
+		sClass = sClass.replace( FCKRegexLib.FCK_Class, '' ) ;
+
 		GetE('txtAttStyle').value	= oLink.style.cssText ;
 	}
 	else
 	{
-		GetE('txtAttClasses').value	= oLink.getAttribute('class',2) || '' ;
-		GetE('txtAttStyle').value	= oLink.getAttribute('style',2) ;
+		sClass	= oLink.getAttribute('class',2) || '' ;
+		GetE('txtAttStyle').value	= oLink.getAttribute('style',2) || '' ;
 	}
+	GetE('txtAttClasses').value	= sClass ;
 
 	// Update the Link type combo.
 	GetE('cmbLinkType').value = sType ;
@@ -368,14 +394,13 @@
 		GetE('cmbTarget').value = 'frame' ;
 }
 
-//#### Builds the javascript URI to open a popup to the specified URI.
-function BuildPopupUri( uri )
+// Accesible popups
+function BuildOnClickPopup()
 {
-	var oReg = new RegExp( "'", "g" ) ;
-	var sWindowName = "'" + GetE('txtPopupName').value.replace(oReg, "\\'") + "'" ;
+	var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ;
 
 	var sFeatures = '' ;
-	var aChkFeatures = document.getElementsByName('chkFeature') ;
+	var aChkFeatures = document.getElementsByName( 'chkFeature' ) ;
 	for ( var i = 0 ; i < aChkFeatures.length ; i++ )
 	{
 		if ( i > 0 ) sFeatures += ',' ;
@@ -387,7 +412,10 @@
 	if ( GetE('txtPopupLeft').value.length > 0 )	sFeatures += ',left=' + GetE('txtPopupLeft').value ;
 	if ( GetE('txtPopupTop').value.length > 0 )		sFeatures += ',top=' + GetE('txtPopupTop').value ;
 
-	return ( "javascript:void(window.open('" + uri + "'," + sWindowName + ",'" + sFeatures + "'))" ) ;
+	if ( sFeatures != '' )
+		sFeatures = sFeatures + ",status" ;
+
+	return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" ) ;
 }
 
 //#### Fills all Popup related fields.
@@ -425,7 +453,7 @@
 //#### The OK button was hit.
 function Ok()
 {
-	var sUri ;
+	var sUri, sInnerHtml ;
 
 	switch ( GetE('cmbLinkType').value )
 	{
@@ -440,9 +468,6 @@
 
 			sUri = GetE('cmbLinkProtocol').value + sUri ;
 
-			if( GetE('cmbTarget').value == 'popup' )
-				sUri = BuildPopupUri( sUri ) ;
-
 			break ;
 
 		case 'email' :
@@ -474,18 +499,65 @@
 			break ;
 	}
 
-	if ( oLink )	// Modifying an existent link.
+	// No link selected, so try to create one.
+	if ( !oLink )
+		oLink = oEditor.FCK.CreateLink( sUri ) ;
+
+	if ( oLink )
+		sInnerHtml = oLink.innerHTML ;		// Save the innerHTML (IE changes it if it is like an URL).
+	else
 	{
-		oEditor.FCKUndo.SaveUndoStep() ;
-		oLink.href = sUri ;
+		// If no selection, use the uri as the link text (by dom, 2006-05-26)
+
+		sInnerHtml = sUri;
+
+		// Built a better text for empty links.
+		switch ( GetE('cmbLinkType').value )
+		{
+			// anchor: use old behavior --> return true
+			case 'anchor':
+				sInnerHtml = sInnerHtml.replace( /^#/, '' ) ;
+				break ;
+
+			// url: try to get path
+			case 'url':
+				var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;
+				var asLinkPath = oLinkPathRegEx.exec( sUri ) ;
+				if (asLinkPath != null)
+					sInnerHtml = asLinkPath[1];  // use matched path
+				break ;
+
+			// mailto: try to get email address
+			case 'email':
+				sInnerHtml = GetE('txtEMailAddress').value ;
+				break ;
+		}
+
+		// Create a new (empty) anchor.
+		oLink = oEditor.FCK.CreateElement( 'a' ) ;
 	}
-	else			// Creating a new link.
+
+	oEditor.FCKUndo.SaveUndoStep() ;
+
+	oLink.href = sUri ;
+	SetAttribute( oLink, '_fcksavedurl', sUri ) ;
+
+	// Accesible popups
+	if( GetE('cmbTarget').value == 'popup' )
 	{
-		oLink = oEditor.FCK.CreateLink( sUri ) ;
-		if ( ! oLink )
-			return true ;
+		SetAttribute( oLink, 'onclick_fckprotectedatt', " onclick=\"" + BuildOnClickPopup() + "\"") ;
 	}
+	else
+	{
+		// Check if the previous onclick was for a popup:
+		// In that case remove the onclick handler.
+		var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
+		if( oRegex.OnClickPopup.test( onclick ) )
+			SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ;
+	}
 
+	oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML
+
 	// Target
 	if( GetE('cmbTarget').value != 'popup' )
 		SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
@@ -494,50 +566,40 @@
 
 	// Advances Attributes
 	SetAttribute( oLink, 'id'		, GetE('txtAttId').value ) ;
-	SetAttribute( oLink, 'name'		, GetE('txtAttName').value ) ;		// No IE. Set but doesnt't update the outerHTML.
+	SetAttribute( oLink, 'name'		, GetE('txtAttName').value ) ;
 	SetAttribute( oLink, 'dir'		, GetE('cmbAttLangDir').value ) ;
 	SetAttribute( oLink, 'lang'		, GetE('txtAttLangCode').value ) ;
 	SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;
 	SetAttribute( oLink, 'tabindex'	, ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;
 	SetAttribute( oLink, 'title'	, GetE('txtAttTitle').value ) ;
-	SetAttribute( oLink, 'class'	, GetE('txtAttClasses').value ) ;
 	SetAttribute( oLink, 'type'		, GetE('txtAttContentType').value ) ;
 	SetAttribute( oLink, 'charset'	, GetE('txtAttCharSet').value ) ;
 
 	if ( oEditor.FCKBrowserInfo.IsIE )
+	{
+		var sClass = GetE('txtAttClasses').value ;
+		// If it's also an anchor add an internal class
+		if ( GetE('txtAttName').value.length != 0 )
+			sClass += ' FCK__AnchorC' ;
+		SetAttribute( oLink, 'className', sClass ) ;
+
 		oLink.style.cssText = GetE('txtAttStyle').value ;
+	}
 	else
+	{
+		SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;
 		SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
+	}
 
+	// Select the link.
+	oEditor.FCKSelection.SelectNode(oLink);
+
 	return true ;
 }
 
 function BrowseServer()
 {
-	// Set the browser window feature.
-	var iWidth	= FCKConfig.LinkBrowserWindowWidth ;
-	var iHeight	= FCKConfig.LinkBrowserWindowHeight ;
-
-	var iLeft = (FCKConfig.ScreenWidth  - iWidth) / 2 ;
-	var iTop  = (FCKConfig.ScreenHeight - iHeight) / 2 ;
-
-	var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
-	sOptions += ",width=" + iWidth ;
-	sOptions += ",height=" + iHeight ;
-	sOptions += ",left=" + iLeft ;
-	sOptions += ",top=" + iTop ;
-
-	if ( 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( FCKConfig.LinkBrowserURL, "FCKBrowseWindow", sOptions ) ;
-		oWindow.opener = window ;
-    }
-    else
-		window.open( FCKConfig.LinkBrowserURL, "FCKBrowseWindow", sOptions ) ;
+	OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ;
 }
 
 function SetUrl( url )
@@ -584,19 +646,19 @@
 function CheckUpload()
 {
 	var sFile = GetE('txtUploadFile').value ;
-	
+
 	if ( sFile.length == 0 )
 	{
 		alert( 'Please select a file to upload' ) ;
 		return false ;
 	}
-	
+
 	if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
 		( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
 	{
 		OnUploadCompleted( 202 ) ;
 		return false ;
 	}
-	
+
 	return true ;
-}
\ No newline at end of file
+}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_link.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_link.html
- * 	Link dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Link dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<title>Link Properties</title>
@@ -104,7 +108,7 @@
 				<input id="txtUploadFile" style="WIDTH: 100%" type="file" size="40" name="NewFile" /><br />
 				<br />
 				<input id="btnUpload" type="submit" value="Send it to the Server" fckLang="DlgLnkBtnUpload" />
-				<iframe name="UploadWindow" style="DISPLAY: none" src="../fckblank.html"></iframe> 
+				<iframe name="UploadWindow" style="DISPLAY: none" src="javascript:void(0)"></iframe>
 			</form>
 		</div>
 		<div id="divTarget" style="DISPLAY: none">
@@ -144,21 +148,21 @@
 							<tr>
 								<td valign="top" nowrap="nowrap" width="50%">
 									<input id="chkPopupResizable" name="chkFeature" value="resizable" type="checkbox" /><label for="chkPopupResizable" fckLang="DlgLnkPopResize">Resizable</label><br />
-									<input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location 
+									<input id="chkPopupLocationBar" name="chkFeature" value="location" type="checkbox" /><label for="chkPopupLocationBar" fckLang="DlgLnkPopLocation">Location
 										Bar</label><br />
-									<input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu 
+									<input id="chkPopupManuBar" name="chkFeature" value="menubar" type="checkbox" /><label for="chkPopupManuBar" fckLang="DlgLnkPopMenu">Menu
 										Bar</label><br />
-									<input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll 
+									<input id="chkPopupScrollBars" name="chkFeature" value="scrollbars" type="checkbox" /><label for="chkPopupScrollBars" fckLang="DlgLnkPopScroll">Scroll
 										Bars</label>
 								</td>
 								<td></td>
 								<td valign="top" nowrap="nowrap" width="50%">
-									<input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status 
+									<input id="chkPopupStatusBar" name="chkFeature" value="status" type="checkbox" /><label for="chkPopupStatusBar" fckLang="DlgLnkPopStatus">Status
 										Bar</label><br />
 									<input id="chkPopupToolbar" name="chkFeature" value="toolbar" type="checkbox" /><label for="chkPopupToolbar" fckLang="DlgLnkPopToolbar">Toolbar</label><br />
-									<input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full 
+									<input id="chkPopupFullScreen" name="chkFeature" value="fullscreen" type="checkbox" /><label for="chkPopupFullScreen" fckLang="DlgLnkPopFullScrn">Full
 										Screen (IE)</label><br />
-									<input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent 
+									<input id="chkPopupDependent" name="chkFeature" value="dependent" type="checkbox" /><label for="chkPopupDependent" fckLang="DlgLnkPopDependent">Dependent
 										(Netscape)</label>
 								</td>
 							</tr>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_listprop.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_listprop.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_listprop.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,36 +1,41 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_listprop.html
- * 	Bulleted List dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bulleted List dialog window.
 -->
-<html>
-	<head>
-		<title>Bulleted List Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
 // Gets the document DOM
 var oDOM = oEditor.FCK.EditorDocument ;
+var sListType = ( location.search == '?OL' ? 'OL' : 'UL' ) ;
 
-var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'UL' ) ;
+var oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( sListType ) ;
 var oActiveSel ;
 
 window.onload = function()
@@ -38,13 +43,16 @@
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage(document) ;
 
-	if ( oActiveEl )
+	if ( sListType == 'UL' )
 		oActiveSel = GetE('selBulleted') ;
 	else
 	{
-		oActiveEl = oEditor.FCKSelection.MoveToAncestorNode( 'OL' ) ;
 		if ( oActiveEl )
+		{
 			oActiveSel = GetE('selNumbered') ;
+			GetE('eStart').style.display = '' ;
+			GetE('txtStartPosition').value	= GetAttribute( oActiveEl, 'start' ) ;
+		}
 	}
 
 	oActiveSel.style.display = '' ;
@@ -60,42 +68,49 @@
 
 function Ok()
 {
-	if ( oActiveEl )
+	if ( oActiveEl ){
 		SetAttribute( oActiveEl, 'type'	, oActiveSel.value ) ;
+		if(oActiveEl.tagName == 'OL')
+			SetAttribute( oActiveEl, 'start', GetE('txtStartPosition').value ) ;
+	}
 
 	return true ;
 }
 
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<table width="100%" height="100%">
-			<tr>
-				<td>
-					<table cellspacing="0" cellpadding="0" border="0" align="center">
-						<tr>
-							<td>
-								<span fckLang="DlgLstType">List Type</span><br>
-								<select id="selBulleted" style="DISPLAY: none">
-									<option value="" selected></option>
-									<option value="circle" fckLang="DlgLstTypeCircle">Circle</option>
-									<option value="disc" fckLang="DlgLstTypeDisc">Disc</option>
-									<option value="square" fckLang="DlgLstTypeSquare">Square</option>
-								</select>
-								<select id="selNumbered" style="DISPLAY: none">
-									<option value="" selected></option>
-									<option value="1" fckLang="DlgLstTypeNumbers">Numbers (1, 2, 3)</option>
-									<option value="a" fckLang="DlgLstTypeLCase">Lowercase Letters (a, b, c)</option>
-									<option value="A" fckLang="DlgLstTypeUCase">Uppercase Letters (A, B, C)</option>
-									<option value="i" fckLang="DlgLstTypeSRoman">Small Roman Numerals (i, ii, iii)</option>
-									<option value="I" fckLang="DlgLstTypeLRoman">Large Roman Numerals (I, II, III)</option>
-								</select>
-								&nbsp;
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td style="text-align:center">
+				<table cellspacing="0" cellpadding="0" border="0" style="margin-left: auto; margin-right: auto;">
+					<tr>
+						<td id="eStart" style="display: none; padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstStart">Start</span><br />
+							<input type="text" id="txtStartPosition" size="5" />
+						</td>
+						<td style="padding-right: 5px; padding-left: 5px">
+							<span fcklang="DlgLstType">List Type</span><br />
+							<select id="selBulleted" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="circle" fcklang="DlgLstTypeCircle">Circle</option>
+								<option value="disc" fcklang="DlgLstTypeDisc">Disc</option>
+								<option value="square" fcklang="DlgLstTypeSquare">Square</option>
+							</select>
+							<select id="selNumbered" style="display: none">
+								<option value="" selected="selected"></option>
+								<option value="1" fcklang="DlgLstTypeNumbers">Numbers (1, 2, 3)</option>
+								<option value="a" fcklang="DlgLstTypeLCase">Lowercase Letters (a, b, c)</option>
+								<option value="A" fcklang="DlgLstTypeUCase">Uppercase Letters (A, B, C)</option>
+								<option value="i" fcklang="DlgLstTypeSRoman">Small Roman Numerals (i, ii, iii)</option>
+								<option value="I" fcklang="DlgLstTypeLRoman">Large Roman Numerals (I, II, III)</option>
+							</select>
+							&nbsp;
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_paste.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_paste.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_paste.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,107 +1,144 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_paste.html
- * 	This dialog is shown when, for some reason (usually security settings), 
- * 	the user is not able to paste data from the clipboard to the editor using 
- * 	the toolbar buttons or the context menu.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 dialog is shown when, for some reason (usually security settings),
+ * the user is not able to paste data from the clipboard to the editor using
+ * the toolbar buttons or the context menu.
 -->
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta name="robots" content="noindex, nofollow">
-			<script language="javascript">
-	var oEditor = window.parent.InnerDialogLoaded() ;
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
 
-	window.onload = function ()
+	<script type="text/javascript">
+var oEditor = window.parent.InnerDialogLoaded() ;
+var FCK = oEditor.FCK;
+var FCKTools	= oEditor.FCKTools ;
+var FCKConfig	= oEditor.FCKConfig ;
+
+window.onload = function ()
+{
+	// First of all, translate the dialog box texts
+	oEditor.FCKLanguageManager.TranslatePage(document) ;
+	
+	var sPastingType = window.parent.dialogArguments.CustomValue ;
+
+	if ( sPastingType == 'Word' || sPastingType == 'Security' )
 	{
-		// First of all, translate the dialog box texts
-		oEditor.FCKLanguageManager.TranslatePage(document) ;
-		
-		window.parent.SetOkButton( true ) ;	
+		if ( sPastingType == 'Security' )
+			document.getElementById( 'xSecurityMsg' ).style.display = '' ;
 
-		if ( window.parent.dialogArguments.CustomValue == 'Word' )
-		{
-			var oFrame = document.getElementById('frmData')
-			oFrame.style.display = '' ;
-			
-			if ( oFrame.contentDocument ) 
-				oFrame.contentDocument.designMode = 'on' ;
-			else
-				oFrame.contentWindow.document.body.contentEditable = true ;
-		}
+		var oFrame = document.getElementById('frmData') ;
+		oFrame.style.display = '' ;
+
+		if ( oFrame.contentDocument )
+			oFrame.contentDocument.designMode = 'on' ;
 		else
-		{
-			document.getElementById('txtData').style.display = '' ;
-			document.getElementById('oWordCommands').style.display = 'none' ;
-		}
+			oFrame.contentWindow.document.body.contentEditable = true ;
 	}
+	else
+	{
+		document.getElementById('txtData').style.display = '' ;
+	}
 
-	function Ok()
+	if ( sPastingType != 'Word' )
+		document.getElementById('oWordCommands').style.display = 'none' ;
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;
+}
+
+function Ok()
+{
+	var sHtml ;
+
+	var sPastingType = window.parent.dialogArguments.CustomValue ;
+
+	if ( sPastingType == 'Word' || sPastingType == 'Security' )
 	{
-		var sHtml ;
-		
-		if ( window.parent.dialogArguments.CustomValue == 'Word' )
+		var oFrame = document.getElementById('frmData') ;
+		var oBody ;
+
+		if ( oFrame.contentDocument )
+			oBody = oFrame.contentDocument.body ;
+		else
+			oBody = oFrame.contentWindow.document.body ;
+
+		if ( sPastingType == 'Word' )
 		{
-			var oFrame = document.getElementById('frmData') ;
-			
-			if ( oFrame.contentDocument ) 
-				sHtml = oFrame.contentDocument.body.innerHTML ;
+			// If a plugin creates a FCK.CustomCleanWord function it will be called instead of the default one
+			if ( typeof( FCK.CustomCleanWord ) == 'function' )
+				sHtml = FCK.CustomCleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
 			else
-				sHtml = oFrame.contentWindow.document.body.innerHTML ;
+				sHtml = CleanWord( oBody, document.getElementById('chkRemoveFont').checked, document.getElementById('chkRemoveStyles').checked ) ;
+		}
+		else
+			sHtml = oBody.innerHTML ;
 
-		sHtml = CleanWord( sHtml ) ;
+		// Fix relative anchor URLs (IE automatically adds the current page URL).
+		var re = new RegExp( window.location + "#", "g" ) ;
+		sHtml = sHtml.replace( re, '#') ;
 	}
 	else
 	{
-		var sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value )  ;
+		sHtml = oEditor.FCKTools.HTMLEncode( document.getElementById('txtData').value )  ;
 		sHtml = sHtml.replace( /\n/g, '<BR>' ) ;
 	}
-	
+
 	oEditor.FCK.InsertHtml( sHtml ) ;
-	
+
 	return true ;
 }
 
 function CleanUpBox()
 {
 	var oFrame = document.getElementById('frmData') ;
-	
-	if ( oFrame.contentDocument ) 
+
+	if ( oFrame.contentDocument )
 		oFrame.contentDocument.body.innerHTML = '' ;
 	else
 		oFrame.contentWindow.document.body.innerHTML = '' ;
 }
 
-function CleanWord( html )
+
+// This function will be called from the PasteFromWord dialog (fck_paste.html)
+// Input: oNode a DOM node that contains the raw paste from the clipboard
+// bIgnoreFont, bRemoveStyles booleans according to the values set in the dialog
+// Output: the cleaned string
+function CleanWord( oNode, bIgnoreFont, bRemoveStyles )
 {
-	var bIgnoreFont = document.getElementById('chkRemoveFont').checked ;
-	var bRemoveStyles = document.getElementById('chkRemoveStyles').checked ;
+	var html = oNode.innerHTML ;
 
-	html = html.replace(/<o:p>\s*<\/o:p>/g, "") ;
-	html = html.replace(/<o:p>.*?<\/o:p>/g, "&nbsp;") ;
-	
+	html = html.replace(/<o:p>\s*<\/o:p>/g, '') ;
+	html = html.replace(/<o:p>.*?<\/o:p>/g, '&nbsp;') ;
+
 	// Remove mso-xxx styles.
-	html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, "" ) ;
+	html = html.replace( /\s*mso-[^:]+:[^;"]+;?/gi, '' ) ;
 
 	// Remove margin styles.
-	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, "" ) ;
+	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*;/gi, '' ) ;
 	html = html.replace( /\s*MARGIN: 0cm 0cm 0pt\s*"/gi, "\"" ) ;
 
-	html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, "" ) ;
+	html = html.replace( /\s*TEXT-INDENT: 0cm\s*;/gi, '' ) ;
 	html = html.replace( /\s*TEXT-INDENT: 0cm\s*"/gi, "\"" ) ;
 
 	html = html.replace( /\s*TEXT-ALIGN: [^\s;]+;?"/gi, "\"" ) ;
@@ -110,18 +147,18 @@
 
 	html = html.replace( /\s*FONT-VARIANT: [^\s;]+;?"/gi, "\"" ) ;
 
-	html = html.replace( /\s*tab-stops:[^;"]*;?/gi, "" ) ;
-	html = html.replace( /\s*tab-stops:[^"]*/gi, "" ) ;
+	html = html.replace( /\s*tab-stops:[^;"]*;?/gi, '' ) ;
+	html = html.replace( /\s*tab-stops:[^"]*/gi, '' ) ;
 
 	// Remove FONT face attributes.
 	if ( bIgnoreFont )
 	{
-		html = html.replace( /\s*face="[^"]*"/gi, "" ) ;
-		html = html.replace( /\s*face=[^ >]*/gi, "" ) ;
+		html = html.replace( /\s*face="[^"]*"/gi, '' ) ;
+		html = html.replace( /\s*face=[^ >]*/gi, '' ) ;
 
-		html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, "" ) ;
+		html = html.replace( /\s*FONT-FAMILY:[^;"]*;?/gi, '' ) ;
 	}
-	
+
 	// Remove Class attributes
 	html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
 
@@ -131,86 +168,118 @@
 
 	// Remove empty styles.
 	html =  html.replace( /\s*style="\s*"/gi, '' ) ;
-	
+
 	html = html.replace( /<SPAN\s*[^>]*>\s*&nbsp;\s*<\/SPAN>/gi, '&nbsp;' ) ;
-	
+
 	html = html.replace( /<SPAN\s*[^>]*><\/SPAN>/gi, '' ) ;
-	
+
 	// Remove Lang attributes
 	html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
-	
+
 	html = html.replace( /<SPAN\s*>(.*?)<\/SPAN>/gi, '$1' ) ;
-	
+
 	html = html.replace( /<FONT\s*>(.*?)<\/FONT>/gi, '$1' ) ;
 
 	// Remove XML elements and declarations
-	html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
-	
-	// Remove Tags with XML namespace declarations
-	html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
-	
-	html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
+	html = html.replace(/<\\?\?xml[^>]*>/gi, '' ) ;
 
-	html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;
-	html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;
-	html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;
-	html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;
-	html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;
-	html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;
+	// Remove Tags with XML namespace declarations: <o:p><\/o:p>
+	html = html.replace(/<\/?\w+:[^>]*>/gi, '' ) ;
 
-	html = html.replace( /<\/H\d>/gi, '<'+'/font><'+'/b><'+'/div>' ) ;
-	
+	// Remove comments [SF BUG-1481861].
+	html = html.replace(/<\!--.*-->/g, '' ) ;
+
 	html = html.replace( /<(U|I|STRIKE)>&nbsp;<\/\1>/g, '&nbsp;' ) ;
 
-	// Remove empty tags (three times, just to be sure).
-	html = html.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
-	html = html.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
-	html = html.replace( /<([^\s>]+)[^>]*>\s*<\/\1>/g, '' ) ;
+	html = html.replace( /<H\d>\s*<\/H\d>/gi, '' ) ;
 
-	// Transform <P> to <DIV>
-	var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;	// Different because of a IE 5.0 error
-	html = html.replace( re, "<div$2<"+"/div>" ) ;
+	// Remove "display:none" tags.
+	html = html.replace( /<(\w+)[^>]*\sstyle="[^"]*DISPLAY\s?:\s?none(.*?)<\/\1>/ig, '' ) ;
 
+	if ( FCKConfig.CleanWordKeepsStructure )
+	{
+		// The original <Hn> tag send from Word is something like this: <Hn style="margin-top:0px;margin-bottom:0px">
+		html = html.replace( /<H(\d)([^>]*)>/gi, '<h$1>' ) ;
+
+		// Word likes to insert extra <font> tags, when using MSIE. (Wierd).
+		html = html.replace( /<(H\d)><FONT[^>]*>(.*?)<\/FONT><\/\1>/gi, '<$1>$2</$1>' );
+		html = html.replace( /<(H\d)><EM>(.*?)<\/EM><\/\1>/gi, '<$1>$2</$1>' );
+	}
+	else
+	{
+		html = html.replace( /<H1([^>]*)>/gi, '<div$1><b><font size="6">' ) ;
+		html = html.replace( /<H2([^>]*)>/gi, '<div$1><b><font size="5">' ) ;
+		html = html.replace( /<H3([^>]*)>/gi, '<div$1><b><font size="4">' ) ;
+		html = html.replace( /<H4([^>]*)>/gi, '<div$1><b><font size="3">' ) ;
+		html = html.replace( /<H5([^>]*)>/gi, '<div$1><b><font size="2">' ) ;
+		html = html.replace( /<H6([^>]*)>/gi, '<div$1><b><font size="1">' ) ;
+
+		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
+		html = html.replace( re, '<div$2<\/div>' ) ;
+
+		// Remove empty tags (three times, just to be sure).
+		// This also removes any empty anchor
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+		html = html.replace( /<([^\s>]+)(\s[^>]*)?>\s*<\/\1>/g, '' ) ;
+	}
+
 	return html ;
 }
 
-		</script>
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<table height="98%" cellspacing="0" cellpadding="0" width="100%" border="0">
-			<tr>
-				<td>
-					<span fckLang="DlgPasteMsg2">Please paste inside the following box using the 
-						keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.</span>
-					<br>
+	</script>
+
+</head>
+<body style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 98%">
+		<tr>
+			<td>
+				<div id="xSecurityMsg" style="display: none">
+					<span fcklang="DlgPasteSec">Because of your browser security settings,
+						the editor is not able to access your clipboard data directly. You are required
+						to paste it again in this window.</span><br />
 					&nbsp;
-				</td>
-			</tr>
-			<tr>
-				<td valign="top" height="100%" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid">
-					<textarea id="txtData" style="BORDER-RIGHT: #000000 1px; BORDER-TOP: #000000 1px; DISPLAY: none; BORDER-LEFT: #000000 1px; WIDTH: 99%; BORDER-BOTTOM: #000000 1px; HEIGHT: 98%"></textarea>
-					<iframe id="frmData" src="../fckblank.html" height="98%" width="99%" frameborder="no" style="BORDER-RIGHT: #000000 1px; BORDER-TOP: #000000 1px; DISPLAY: none; BORDER-LEFT: #000000 1px; BORDER-BOTTOM: #000000 1px; BACKGROUND-COLOR: #ffffff">
-					</iframe>
-				</td>
-			</tr>
-			<tr id="oWordCommands">
-				<td>
-					<table border="0" cellpadding="0" cellspacing="0" width="100%">
-						<tr>
-							<td nowrap>
-								<input id="chkRemoveFont" type="checkbox" checked="checked"> <label for="chkRemoveFont" fckLang="DlgPasteIgnoreFont">
-									Ignore Font Face definitions</label>
-								<br>
-								<input id="chkRemoveStyles" type="checkbox"> <label for="chkRemoveStyles" fckLang="DlgPasteRemoveStyles">
-									Remove Styles definitions</label>
-							</td>
-							<td align="right" valign="top">
-								<input type="button" fckLang="DlgPasteCleanBox" value="Clean Up Box" onclick="CleanUpBox()">
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+				</div>
+				<div>
+					<span fcklang="DlgPasteMsg2">Please paste inside the following box using the keyboard
+						(<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.</span><br />
+					&nbsp;
+				</div>
+			</td>
+		</tr>
+		<tr>
+			<td valign="top" height="100%" style="border-right: #000000 1px solid; border-top: #000000 1px solid;
+				border-left: #000000 1px solid; border-bottom: #000000 1px solid">
+				<textarea id="txtData" cols="80" rows="5" style="border: #000000 1px; display: none;
+					width: 99%; height: 98%"></textarea>
+				<iframe id="frmData" src="javascript:void(0)" height="98%" width="99%" frameborder="0"
+					style="border-right: #000000 1px; border-top: #000000 1px; display: none; border-left: #000000 1px;
+					border-bottom: #000000 1px; background-color: #ffffff"></iframe>
+			</td>
+		</tr>
+		<tr id="oWordCommands">
+			<td>
+				<table border="0" cellpadding="0" cellspacing="0" width="100%">
+					<tr>
+						<td nowrap="nowrap">
+							<input id="chkRemoveFont" type="checkbox" checked="checked" />
+							<label for="chkRemoveFont" fcklang="DlgPasteIgnoreFont">
+								Ignore Font Face definitions</label>
+							<br />
+							<input id="chkRemoveStyles" type="checkbox" />
+							<label for="chkRemoveStyles" fcklang="DlgPasteRemoveStyles">
+								Remove Styles definitions</label>
+						</td>
+						<td align="right" valign="top">
+							<input type="button" fcklang="DlgPasteCleanBox" value="Clean Up Box" onclick="CleanUpBox()" />
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_radiobutton.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_radiobutton.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_radiobutton.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_radiobutton.html
- * 	Radio Button dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Radio Button dialog window.
 -->
 <html>
 	<head>
@@ -40,7 +44,7 @@
 	if ( oActiveEl && oActiveEl.tagName.toUpperCase() == 'INPUT' && oActiveEl.type == 'radio' )
 	{
 		GetE('txtName').value		= oActiveEl.name ;
-		GetE('txtValue').value		= oActiveEl.value ;
+		GetE('txtValue').value		= oEditor.FCKBrowserInfo.IsIE ? oActiveEl.value : GetAttribute( oActiveEl, 'value' ) ;
 		GetE('txtSelected').checked	= oActiveEl.checked ;
 	}
 	else
@@ -58,15 +62,18 @@
 		oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ;
 	}
 
-	oActiveEl.name = GetE('txtName').value ;
-	SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
+	if ( GetE('txtName').value.length > 0 )
+		oActiveEl.name = GetE('txtName').value ;
 
-	if ( GetE('txtSelected').checked )
-	{
-		SetAttribute( oActiveEl, 'checked', 'checked' ) ;
-		oActiveEl.checked = GetE('txtSelected').checked ;
-	}
+	if ( oEditor.FCKBrowserInfo.IsIE )
+		oActiveEl.value = GetE('txtValue').value ;
+	else
+		SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ;
 
+	var bIsChecked = GetE('txtSelected').checked ;
+	SetAttribute( oActiveEl, 'checked', bIsChecked ? 'checked' : null ) ;	// For Firefox
+	oActiveEl.checked = bIsChecked ;
+
 	return true ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_replace.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_replace.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_replace.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,32 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_replace.html
- * 	"Replace" dialog box window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Abdul-Aziz A. Al-Oraij (aziz.oraij.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * "Replace" dialog box window.
 -->
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -38,8 +42,8 @@
 
 function btnStat(frm)
 {
-	document.getElementById('btnReplace').disabled = 
-		document.getElementById('btnReplaceAll').disabled = 
+	document.getElementById('btnReplace').disabled =
+		document.getElementById('btnReplaceAll').disabled =
 			( document.getElementById('txtFind').value.length == 0 ) ;
 }
 
@@ -64,68 +68,89 @@
 		if ( ! replaceAll && hasFound )
 			return true ;
 	}
-	
+
 	return hasFound ;
 }
 
 function GetRegexExpr()
 {
+	var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ;
+
 	if ( document.getElementById('chkWord').checked )
-		var sExpr = '\\b' + document.getElementById('txtFind').value + '\\b' ;
-	else
-		var sExpr = document.getElementById('txtFind').value ;
-		
+		sExpr = '\\b' + sExpr + '\\b' ;
+
 	return sExpr ;
 }
 
-function GetCase() 
+function GetCase()
 {
 	return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;
 }
 
+function GetReplacement()
+{
+	return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ;
+}
+
+function EscapeRegexString( str )
+{
+	return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ;
+}
+
 function Replace()
 {
 	var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ;
-	ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, document.getElementById('txtReplace').value, false, false ) ;
+	if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
 }
 
 function ReplaceAll()
 {
 	var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ;
-	ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, document.getElementById('txtReplace').value, true, false ) ;
+	if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) )
+		alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;
 	window.parent.Cancel() ;
 }
-		</script>
-	</head>
-	<body onload="OnLoad()" scroll="no" style="OVERFLOW: hidden">
-		<table cellSpacing="3" cellPadding="2" width="100%" border="0">
-			<tr>
-				<td noWrap><label for="txtFind" fckLang="DlgReplaceFindLbl">Find what:</label>
-				</td>
-				<td width="100%"><input id="txtFind" onkeyup="btnStat(this.form)" style="WIDTH: 100%" tabIndex="1" type="text">
-				</td>
-				<td><input id="btnReplace" style="WIDTH: 100%" disabled onclick="Replace();" type="button"
-						value="Replace" fckLang="DlgReplaceReplaceBtn">
-				</td>
-			</tr>
-			<tr>
-				<td vAlign="top" noWrap><label for="txtReplace" fckLang="DlgReplaceReplaceLbl">Replace 
-						with:</label>
-				</td>
-				<td vAlign="top"><input id="txtReplace" style="WIDTH: 100%" tabIndex="2" type="text">
-				</td>
-				<td><input id="btnReplaceAll" disabled onclick="ReplaceAll()" type="button" value="Replace All"
-						fckLang="DlgReplaceReplAllBtn">
-				</td>
-			</tr>
-			<tr>
-				<td vAlign="bottom" colSpan="3">&nbsp;<input id="chkCase" tabIndex="3" type="checkbox"><label for="chkCase" fckLang="DlgReplaceCaseChk">Match 
-						case</label>
-					<br>
-					&nbsp;<input id="chkWord" tabIndex="4" type="checkbox"><label for="chkWord" fckLang="DlgReplaceWordChk">Match 
-						whole word</label>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body onload="OnLoad()" style="overflow: hidden">
+	<table cellspacing="3" cellpadding="2" width="100%" border="0">
+		<tr>
+			<td nowrap="nowrap">
+				<label for="txtFind" fcklang="DlgReplaceFindLbl">
+					Find what:</label>
+			</td>
+			<td width="100%">
+				<input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"
+					type="text" />
+			</td>
+			<td>
+				<input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();"
+					type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="top" nowrap="nowrap">
+				<label for="txtReplace" fcklang="DlgReplaceReplaceLbl">
+					Replace with:</label>
+			</td>
+			<td valign="top">
+				<input id="txtReplace" style="width: 100%" tabindex="2" type="text" />
+			</td>
+			<td>
+				<input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button"
+					value="Replace All" fcklang="DlgReplaceReplAllBtn" />
+			</td>
+		</tr>
+		<tr>
+			<td valign="bottom" colspan="3">
+				&nbsp;<input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match
+					case</label>
+				<br />
+				&nbsp;<input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match
+					whole word</label>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select/fck_select.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select/fck_select.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select/fck_select.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_select.js
- * 	Scripts for the fck_select.html page.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Scripts for the fck_select.html page.
  */
 
 function Select( combo )
@@ -104,8 +108,8 @@
 	if ( iFinalIndex < 0 )
 		iFinalIndex = 0 ;
 
-	if ( iFinalIndex > ( combo.options.lenght - 1 ) )
-		iFinalIndex = combo.options.lenght - 1 ;
+	if ( iFinalIndex > ( combo.options.length - 1 ) )
+		iFinalIndex = combo.options.length - 1 ;
 
 	if ( iActualIndex == iFinalIndex )
 		return ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_select.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_select.html
- * 	Select dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Select dialog window.
 -->
 <html>
 	<head>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_smiley.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_smiley.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_smiley.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,31 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_smiley.html
- * 	Smileys (emoticons) dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Smileys (emoticons) dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-		<meta name="robots" content="noindex, nofollow" />
-		<style type="text/css">
-			.HandIE { cursor: hand ; }
-			.HandMozilla { cursor: pointer ; }
-		</style>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
+		.Hand
+		{
+			cursor: pointer;
+			cursor: hand;
+		}
+	</style>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -39,52 +47,59 @@
 {
 	var oImg = oEditor.FCK.CreateElement( 'IMG' ) ;
 	oImg.src = url ;
+	oImg.setAttribute( '_fcksavedurl', url ) ;
 
+	// For long smileys list, it seams that IE continues loading the images in
+	// the background when you quickly select one image. so, let's clear
+	// everything before closing.
+	document.body.innerHTML = '' ;
+
 	window.parent.Cancel() ;
 }
 
 function over(td)
 {
-	td.className = 'LightBackground HandIE HandMozilla' ;
+	td.className = 'LightBackground Hand' ;
 }
 
 function out(td)
 {
-	td.className = 'DarkBackground HandIE HandMozilla' ;
+	td.className = 'DarkBackground Hand' ;
 }
-		</script>
-	</head>
-	<body scroll="no">
-		<table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">
-			<script type="text/javascript">
-<!--
+	</script>
+</head>
+<body scroll="no">
+	<table cellpadding="2" cellspacing="2" align="center" border="0" width="100%" height="100%">
+		<script type="text/javascript">
+
 var FCKConfig = oEditor.FCKConfig ;
 
-var sBasePath = FCKConfig.SmileyPath ;
-var aImages   = FCKConfig.SmileyImages ;
-var cols      = FCKConfig.SmileyColumns ;
+var sBasePath	= FCKConfig.SmileyPath ;
+var aImages		= FCKConfig.SmileyImages ;
+var iCols		= FCKConfig.SmileyColumns ;
+var iColWidth	= parseInt( 100 / iCols, 10 ) ;
 
 var i = 0 ;
 while (i < aImages.length)
 {
-	document.write("<TR>") ;
-	for(var j = 0 ; j < cols ; j++)
+	document.write( '<tr>' ) ;
+	for(var j = 0 ; j < iCols ; j++)
 	{
 		if (aImages[i])
 		{
 			var sUrl = sBasePath + aImages[i] ;
-			document.write("<TD width='1%' align='center' class='DarkBackground HandIE HandMozilla' onclick='InsertSmiley(\"" + sUrl.replace(/"/g, '\\"' ) + "\")' onmouseover='over(this)' onmouseout='out(this)'>") ;
-			document.write("<img src='" + sUrl + "' border='0'>") ;
+			document.write( '<td width="' + iColWidth + '%" align="center" class="DarkBackground Hand" onclick="InsertSmiley(\'' + sUrl.replace(/'/g, "\\'" ) + '\')" onmouseover="over(this)" onmouseout="out(this)">' ) ;
+			document.write( '<img src="' + sUrl + '" border="0" />' ) ;
 		}
 		else
-			document.write("<TD width='1%' class='DarkBackground'>&nbsp;") ;
-		document.write("<\/TD>") ;
+			document.write( '<td width="' + iColWidth + '%" class="DarkBackground">&nbsp;' ) ;
+		document.write( '<\/td>' ) ;
 		i++ ;
 	}
-	document.write("<\/TR>") ;
+	document.write('<\/tr>') ;
 }
-//-->
-			</script>
-		</table>
-	</body>
+
+		</script>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_source.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_source.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_source.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_source.html
- * 	Source editor dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Source editor dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <html>
 	<head>
 		<title>Source</title>
@@ -24,14 +28,16 @@
 		<meta name="robots" content="noindex, nofollow">
 		<link href="common/fck_dialog_common.css" rel="stylesheet" type="text/css" />
 		<script language="javascript">
-		
+
 var oEditor		= window.parent.InnerDialogLoaded() ;
 var FCK			= oEditor.FCK ;
 var FCKConfig	= oEditor.FCKConfig ;
 
 window.onload = function()
 {
-	document.getElementById('txtSource').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
+	// EnableXHTML and EnableSourceXHTML has been deprecated
+//	document.getElementById('txtSource').value = ( FCKConfig.EnableXHTML && FCKConfig.EnableSourceXHTML ? FCK.GetXHTML( FCKConfig.FormatSource ) : FCK.GetHTML( FCKConfig.FormatSource ) ) ;
+	document.getElementById('txtSource').value = FCK.GetXHTML( FCKConfig.FormatSource ) ;
 
 	// Activate the "OK" button.
 	window.parent.SetOkButton( true ) ;
@@ -42,9 +48,9 @@
 {
 	if ( oEditor.FCKBrowserInfo.IsIE )
 		oEditor.FCKUndo.SaveUndoStep() ;
-			
+
 	FCK.SetHTML( document.getElementById('txtSource').value, false ) ;
-	
+
 	return true ;
 }
 		</script>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_specialchar.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_specialchar.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_specialchar.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_specialchar.html
- * 	Special Chars Selector dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Special Chars Selector dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <html>
 	<head>
 		<meta name="robots" content="noindex, nofollow">
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 		<style type="text/css">
-				.HandIE { cursor: hand ; }
-				.HandMozilla { cursor: pointer ; }
+				.Hand
+				{
+					cursor: pointer ;
+					cursor: hand ;
+				}
 				.Sample { font-size: 24px; }
 		</style>
 		<script type="text/javascript">
@@ -41,13 +48,13 @@
 function over(td)
 {
 	oSample.innerHTML = td.innerHTML ;
-	td.className = 'LightBackground HandIE HandMozilla' ;
+	td.className = 'LightBackground SpecialCharsOver Hand' ;
 }
 
 function out(td)
 {
 	oSample.innerHTML = "&nbsp;" ;
-	td.className = 'DarkBackground HandIE HandMozilla' ;
+	td.className = 'DarkBackground SpecialCharsOut Hand' ;
 }
 
 function setDefaults()
@@ -67,7 +74,7 @@
 				<td width="100%">
 					<table cellpadding="1" cellspacing="1" align="center" border="0" width="100%" height="100%">
 						<script type="text/javascript">
-var aChars = ["!","&quot;","#","$","%","&amp;","\\'","(",")","*","+","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","&lt;","=","&gt;","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~","&euro;","&lsquo;","&rsquo;","&rsquo;","&ldquo;","&rdquo;","&ndash;","&mdash;","&iexcl;","&cent;","&pound;","&curren;","&yen;","&brvbar;","&sect;","&uml;","&copy;","&ordf;","&laquo;","&not;","&reg;","&macr;","&deg;","&plusmn;","&sup2;","&sup3;","&acute;","&micro;","&para;","&middot;","&cedil;","&sup1;","&ordm;","&raquo;","&frac14;","&frac12;","&frac34;","&iquest;","&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;","&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;","&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;","&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;","&divide;","&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&uuml;","&yacute;","&thorn;","&yuml;"] ;
+var aChars = ["!","&quot;","#","$","%","&amp;","\\'","(",")","*","+","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","&lt;","=","&gt;","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~","&euro;","&lsquo;","&rsquo;","&rsquo;","&ldquo;","&rdquo;","&ndash;","&mdash;","&iexcl;","&cent;","&pound;","&curren;","&yen;","&brvbar;","&sect;","&uml;","&copy;","&ordf;","&laquo;","&not;","&reg;","&macr;","&deg;","&plusmn;","&sup2;","&sup3;","&acute;","&micro;","&para;","&middot;","&cedil;","&sup1;","&ordm;","&raquo;","&frac14;","&frac12;","&frac34;","&iquest;","&Agrave;","&Aacute;","&Acirc;","&Atilde;","&Auml;","&Aring;","&AElig;","&Ccedil;","&Egrave;","&Eacute;","&Ecirc;","&Euml;","&Igrave;","&Iacute;","&Icirc;","&Iuml;","&ETH;","&Ntilde;","&Ograve;","&Oacute;","&Ocirc;","&Otilde;","&Ouml;","&times;","&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;","&divide;","&oslash;","&ugrave;","&uacute;","&ucirc;","&uuml;","&uuml;","&yacute;","&thorn;","&yuml;","&OElig;","&oelig;","&sbquo;","&#8219;","&bdquo;","&hellip;","&trade;","&#9658;","&bull;","&rarr;","&rArr;","&hArr;","&diams;","&asymp;"] ;
 
 var cols = 20 ;
 
@@ -75,15 +82,15 @@
 while (i < aChars.length)
 {
 	document.write("<TR>") ;
-	for(var j = 0 ; j < cols ; j++) 
+	for(var j = 0 ; j < cols ; j++)
 	{
 		if (aChars[i])
 		{
-			document.write('<TD width="1%" class="DarkBackground HandIE HandMozilla" align="center" onclick="insertChar(\'' + aChars[i].replace(/&/g, "&amp;") + '\')" onmouseover="over(this)" onmouseout="out(this)">') ;
+			document.write('<TD width="1%" class="DarkBackground SpecialCharsOut Hand" align="center" onclick="insertChar(\'' + aChars[i].replace(/&/g, "&amp;") + '\')" onmouseover="over(this)" onmouseout="out(this)">') ;
 			document.write(aChars[i]) ;
 		}
 		else
-			document.write("<TD class='DarkBackground'>&nbsp;") ;
+			document.write("<TD class='DarkBackground SpecialCharsOut'>&nbsp;") ;
 		document.write("<\/TD>") ;
 		i++ ;
 	}
@@ -96,7 +103,7 @@
 				<td valign="top">
 					<table width="40" cellpadding="0" cellspacing="0" border="0">
 						<tr>
-							<td id="SampleTD" width="40" height="40" align="center" class="DarkBackground Sample">&nbsp;</td>
+							<td id="SampleTD" width="40" height="40" align="center" class="DarkBackground SpecialCharsOut Sample">&nbsp;</td>
 						</tr>
 					</table>
 				</td>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,8 +1,8 @@
 <html>
 	<head>
 		<link rel="stylesheet" type="text/css" href="spellerStyle.css" />
-		<script src="controlWindow.js"></script>
-		<script>
+		<script type="text/javascript" src="controlWindow.js"></script>
+		<script type="text/javascript">
 var spellerObject;
 var controlWindowObj;
 
@@ -138,7 +138,7 @@
 										disabled>
 								</td>
 								<td>&nbsp;&nbsp;</td>
-								<td> 
+								<td>
 									<!-- by FredCK
 									<input class="buttonDefault" type="button" value="Close" onClick="end_spell();">
 									-->

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,107 +1,152 @@
-<!--- Coldfusion MX uses java on the server to process tags. So it is save to use most java attributes. For example below
-I use list.lastindexOf(), lastindexOf() is a java string attribute. If you plan on using this tag with earlier versions
-of Coldfusion, you will have to replace the lastindexOf with a pure coldfusion function. By replacing the lastindexOf, spellchecker.cfm
-script should be compatible with all cf version 4.5 and up.
+<cfsilent>
+<!---
+This code uses a CF User Defined Function and should work in CF version 5.0
+and up without alteration.
 
-Also if you are hosting your site at an ISP, you will have to check with them to see if the use of <CFEXECUTE> is allowed. 
-In most cases ISP will not allow the use of that tag for security reasons. Clients would be able to access each others files in certain cases.
- --->
+Also if you are hosting your site at an ISP, you will have to check with them
+to see if the use of <CFEXECUTE> is allowed. In most cases ISP will not allow
+the use of that tag for security reasons. Clients would be able to access each
+others files in certain cases.
+--->
 
+<!---
+The following variables values must reflect your installation needs.
+--->
+<cfset apsell_dir	= "c:\aspell\bin">
 
-<!--- Set up variables --->
-<cfset tempFolder = "c:\test">
-<cfset tempfile = "spell_#randrange(1,1000)#">
-<cfset apsell_dir = "c:\aspell\bin">
-<!--- <cfset spellercss = "/speller/spellerStyle.css">		by FredCK --->
-<cfset spellercss = "../spellerStyle.css">
-<!--- <cfset word_win_src = "/speller/wordWindow.js">		by FredCK --->
-<cfset word_win_src = "../wordWindow.js">
+<cfset lang			= "en_US">
+<cfset aspell_opts	= "-a --lang=#lang# --encoding=utf-8 -H">
 
+<!--- Be sure the temporary folder exists --->
+<cfset tempFolder	= "c:\aspell\temp">
+<cfset tempfile		= "spell_#randrange(1,10000)#">
 
-<!--- Takes care of those pesky smart quotes from MS apps, replaces them with regular quotes --->
-<cfset submitted_text = replacelist(form.checktext,"%u201C,%u201D","%22,%22")> 
-<cfset submitted_text = urlDecode(submitted_text)>
+<cfset spellercss	= "../spellerStyle.css">
+<cfset word_win_src	= "../wordWindow.js">
 
+<cfset form.checktext = form["textinputs[]"]>
 
+<cfscript>
+  function LastIndexOf(subs, str)
+  {
+    return Len(str) - Find(subs, Reverse(str)) + 1;
+  }
+</cfscript>
 
+<!--- Takes care of those pesky smart quotes from MS apps, replaces them with regular quotes --->
+<cfparam name="url.checktext" default="">
+<cfparam name="form.checktext" default="#url.checktext#">
+<cfset submitted_text = replacelist(form.checktext,"%u201C,%u201D","%22,%22")>
 
-<!--- need to escape special javascript characters such as ' --->
-<cfset unaltered_text = submitted_text>
-<cfset submitted_text = replace(submitted_text,"'","\'","All")>
-<cfset submitted_text = replace(submitted_text,"""","\""","All")>
+<!--- submitted_text now is ready for processing --->
 
 <!--- use carat on each line to escape possible aspell commands --->
 <cfset text = "">
-<cfloop list="#submitted_text#" index="idx" delimiters="#chr(10)##chr(13)#">
-	<cfset text =text&"^"&idx&"#chr(10)##chr(13)#">
+<cfset crlf = Chr(13) & Chr(10)>
+
+<cfloop list="#submitted_text#" index="field" delimiters=",">
+  <cfset text = text & "%" & crlf
+                     & "^A" & crlf
+                     & "!" & crlf>
+  <cfset field = URLDecode(field)>
+  <cfloop list="#field#" index="line" delimiters="#crlf#">
+<!---     <cfset submitted_text = replace(submitted_text,"'","\'","All")>
+    <cfset submitted_text = replace(submitted_text,"""","\""","All")> --->
+  	<cfset text = text & "^" & Trim(JSStringFormat(line)) & "#crlf#">
+  </cfloop>
 </cfloop>
 
 
+<!--- need to escape special javascript characters such as ' --->
+<cfset unaltered_text = submitted_text>
 
 <!--- create temp file from the submitted text, this will be passed to aspell to be check for misspelled words --->
 <cffile action="write" file="#tempFolder#\#tempfile#.txt" output="#text#" charset="utf-8">
 
-
 <!--- cfsavecontent is used to set the variable that will be returned with the results from aspell.
 If your using the new version of mx 6.1 you can  use the following cfexecute tag instead:
-<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type c:\test\#tempfile#.txt | c:\aspell\bin\aspell -a" timeout="100" variable="results"></cfexecute> --->
+<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type c:\test\#tempfile#.txt | c:\aspell\bin\aspell #aspell_opts#" timeout="100" variable="results"></cfexecute> --->
 
+
+
 <cfsavecontent variable="food">
-<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type #tempFolder#\#tempfile#.txt | #apsell_dir#\aspell -a" timeout="100"></cfexecute>
+<cfexecute name="C:\WINDOWS\SYSTEM32\cmd.exe" arguments="/c type #tempFolder#\#tempfile#.txt | #apsell_dir#\aspell #aspell_opts#" timeout="100"></cfexecute>
 </cfsavecontent>
 
+
+
 <!--- remove temp file --->
 <cffile action="delete" file="#tempFolder#\#tempfile#.txt">
 
+<cfset texts = StructNew()>
+<cfset texts.textinputs = "">
+<cfset texts.words = "">
+<cfset texts.abort = "">
 
+<!--- Generate Text Inputs --->
 
+<cfset i = "0">
+<cfloop index="text" list="#form.checktext#">
+  <cfset texts.textinputs = ListAppend(texts.textinputs, 'textinputs[#i#] = decodeURIComponent("#text#");', '#Chr(13)##Chr(10)#')>
+  <cfset i = i + "1">
+</cfloop>
 
-<cfoutput>
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="speller/spellerStyle.css">
-<script src="/speller/wordWindow.js"></script>
-<script language="javascript">
-var suggs = new Array();
-var words = new Array();
-var error;
-var wordtext = unescape('#urlencodedFormat(unaltered_text)#');
+<!--- Generate Words Lists --->
 
-<cfset cnt = 1>
-<cfset word_cnt = 0>
+<cfset cnt = "1">
+<cfset word_cnt = "0">
+<cfset input_cnt = "-1">
 <cfloop list="#food#" index="list" delimiters="#chr(10)##chr(13)#">
 	<!--- removes the first line of the aspell output "@(#) International Ispell Version 3.1.20 (but really Aspell 0.50.3)" --->
-	<cfif NOT cnt EQ 1>
-		<cfif find("&",list) OR find("##",list)>
+	<cfif NOT cnt IS "1">
+		<cfif Find("&", list) OR Find("##", list)>
 			<!--- word that misspelled --->
-			<cfset bad_word = listGetAt(list,"2"," ")>
+			<cfset bad_word = listGetAt(list, "2", " ")>
 			<!--- sugestions --->
-			<cfset wrdList = mid(list,(list.lastindexOf(':') + 2),(len(list) - (list.lastindexOf(':') + 2)))>
+			<cfset wrdList = mid(list,(LastIndexOf(':', list) + 2),(len(list) - (LastIndexOf(':', list) + 2)))>
 			<cfset wrdsList = "">
-			<cfloop list=#wrdList# index="idx">
-				<cfset wrdsList =wrdsList&"'"&trim(replace(idx,"'","\'","All"))&"',">
+			<cfloop list="#wrdList#" index="idx">
+				<cfset wrdsList = ListAppend(wrdsList, " '" & trim(replace(idx,"'","\'","All")) & "'", ", ")>
 			</cfloop>
+      <cfset wrdsList = Right(wrdsList, Len(wrdsList) - 1)>
 			<!--- javascript --->
-			words[#word_cnt#] = '#trim(replace(bad_word,"'","\'","All"))#';
-			suggs[#word_cnt#] = [#trim(wrdsList)#];
+			<cfset texts.words = ListAppend(texts.words, "words[#input_cnt#][#word_cnt#] = '#trim(replace(bad_word,"'","\'","All"))#';", "#Chr(13)##Chr(10)#")>
+			<cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#][#word_cnt#] = [#trim(wrdsList)#];", "#Chr(13)##Chr(10)#")>
 			<cfset word_cnt = word_cnt + 1>
-		<cfelseif find("*",list)>
-		</cfif>			
+		<cfelseif find("*", list)>
+      <cfset input_cnt = input_cnt + "1">
+      <cfset word_cnt = "0">
+      <cfset texts.words = ListAppend(texts.words, "words[#input_cnt#] = [];", "#crlf#")>
+      <cfset texts.words = ListAppend(texts.words, "suggs[#input_cnt#] = [];", "#crlf#")>
+		</cfif>
 	</cfif>
 	<cfset cnt = cnt + 1>
 </cfloop>
 
+<cfif texts.words IS "">
+  <cfset texts.abort = "alert('Spell check complete.\n\nNo misspellings found.');#chrlf#top.window.close();">
+</cfif>
 
+</cfsilent><cfoutput><cfcontent type="text/html"><html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="#spellercss#" />
+<script language="javascript" src="#word_win_src#"></script>
+<script language="javascript">
+var suggs = new Array();
+var words = new Array();
+var textinputs = new Array();
+var error;
 
+#texts.textinputs##Chr(13)##Chr(10)#
+#texts.words#
+#texts.abort#
 
-
-
 var wordWindowObj = new wordWindow();
 wordWindowObj.originalSpellings = words;
 wordWindowObj.suggestions = suggs;
-wordWindowObj.text = wordtext;
+wordWindowObj.textInputs = textinputs;
 
-
 function init_spell() {
 	// check if any error occured during server-side processing
 	if( error ) {
@@ -116,17 +161,14 @@
 	}
 }
 
-
-
 </script>
 
 </head>
 <body onLoad="init_spell();">
 
-<script>
+<script type="text/javascript">
 wordWindowObj.writeBody();
 </script>
 
 </body>
-</html>
-</cfoutput>
\ No newline at end of file
+</html></cfoutput>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,17 +1,20 @@
 <?php
 header('Content-type: text/html; charset=utf-8');
 
-//$spellercss = '/speller/spellerStyle.css';	// by FredCK
-$spellercss = '../spellerStyle.css';			// by FredCK
-//$word_win_src = '/speller/wordWindow.js';		// by FredCK
-$word_win_src = '../wordWindow.js';				// by FredCK
-$textinputs = $_POST['textinputs']; # array
-//$aspell_prog = 'aspell';									// by FredCK (for Linux)
-$aspell_prog = '"C:\Program Files\Aspell\bin\aspell.exe"';	// by FredCK (for Windows)
-$lang = 'en_US';
-//$aspell_opts = "-a --lang=$lang --encoding=utf-8";	// by FredCK
-$aspell_opts = "-a --lang=$lang --encoding=utf-8 -H";	// by FredCK
-$tempfiledir = "./";
+// The following variables values must reflect your installation needs.
+
+$aspell_prog	= '"C:\Program Files\Aspell\bin\aspell.exe"';	// by FredCK (for Windows)
+//$aspell_prog	= 'aspell';										// by FredCK (for Linux)
+
+$lang			= 'en_US';
+$aspell_opts	= "-a --lang=$lang --encoding=utf-8 -H";		// by FredCK
+
+$tempfiledir	= "./";
+
+$spellercss		= '../spellerStyle.css';						// by FredCK
+$word_win_src	= '../wordWindow.js';							// by FredCK
+
+$textinputs		= $_POST['textinputs']; # array
 $input_separator = "A";
 
 # set the JavaScript variable to the submitted text.

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -15,7 +15,7 @@
 my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H";		# by FredCK
 my $input_separator = "A";
 
-# set the 'wordtext' JavaScript variable to the submitted text. 
+# 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";
@@ -54,7 +54,7 @@
 	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] );
@@ -66,7 +66,7 @@
 			# 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";
@@ -81,7 +81,7 @@
 			$textInputIdx++;
 			printTextIdxDecl( $textInputIdx );
 			$wordIdx = 0;
-	
+
 		} elsif( $ret =~ /^(&|#)/ ) {
 			my @tokens = split( " ", $ret, 5 );
 			printWordsElem( $textInputIdx, $wordIdx, $tokens[1] );
@@ -158,7 +158,7 @@
 		if (parent.frames.length) {
 			parent.init_spell( wordWindowObj );
 		} else {
-			error = "This page was loaded outside of a frameset. "; 
+			error = "This page was loaded outside of a frameset. ";
 			error += "It might not display properly";
 			alert( error );
 		}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -19,7 +19,6 @@
 //	this.popUpProps = "menu=no,width=440,height=350,top=70,left=120,resizable=yes,status=yes";	// by FredCK
 	this.popUpProps = null ;																	// by FredCK
 //	this.spellCheckScript = '/speller/server-scripts/spellchecker.php';		// by FredCK
-	this.spellCheckScript = 'server-scripts/spellchecker.php';				// by FredCK
 	//this.spellCheckScript = '/cgi-bin/spellchecker.pl';
 
 	// values used to keep track of what happened to a word
@@ -37,7 +36,7 @@
 	this.controlWin = null;
 	this.wordWin = null;
 	this.textArea = textObject;	// deprecated
-	this.textInputs = arguments; 
+	this.textInputs = arguments;
 
 	// private methods
 	this._spellcheck = _spellcheck;
@@ -97,7 +96,7 @@
 	// set properties from args
 	this.wordWin = wordWindowObj;
 	this.controlWin = controlWindowObj;
-	
+
 	// reset properties
 	this.wordWin.resetForm();
 	this.controlWin.resetForm();
@@ -112,7 +111,7 @@
 
 	// start
 	this._spellcheck();
-	
+
 	return true;
 }
 
@@ -132,6 +131,7 @@
 		this.currentWordIndex++;
 		this._spellcheck();
 	}
+	return true;
 }
 
 function ignoreAll() {
@@ -148,7 +148,7 @@
 		return false;
 	}
 
-	// set this word as an "ignore all" word. 
+	// set this word as an "ignore all" word.
 	this._setAsIgnored( ti, wi, this.ignrAllFlag );
 
 	// loop through all the words after this word
@@ -156,7 +156,7 @@
 		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
 			if(( i == ti && j > wi ) || i > ti ) {
 				// future word: set as "from ignore all" if
-				// 1) do not already have a flag and 
+				// 1) do not already have a flag and
 				// 2) have the same value as current word
 				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
 				&& ( !this.wordFlags[i][j] )) {
@@ -169,6 +169,7 @@
 	// finally, move on
 	this.currentWordIndex++;
 	this._spellcheck();
+	return true;
 }
 
 function replaceWord() {
@@ -183,7 +184,7 @@
 		return false;
 	}
 	if( !this.controlWin.replacementText ) {
-		return;
+		return false ;
 	}
 	var txt = this.controlWin.replacementText;
 	if( txt.value ) {
@@ -193,6 +194,7 @@
 			this._spellcheck();
 		}
 	}
+	return true;
 }
 
 function replaceAll() {
@@ -208,10 +210,10 @@
 		return false;
 	}
 	var txt = this.controlWin.replacementText;
-	if( !txt.value ) return;
+	if( !txt.value ) return false;
 	var newspell = new String( txt.value );
 
-	// set this word as a "replace all" word. 
+	// set this word as a "replace all" word.
 	this._setWordText( ti, wi, newspell, this.replAllFlag );
 
 	// loop through all the words after this word
@@ -219,7 +221,7 @@
 		for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
 			if(( i == ti && j > wi ) || i > ti ) {
 				// future word: set word text to s_word_to_repl if
-				// 1) do not already have a flag and 
+				// 1) do not already have a flag and
 				// 2) have the same value as s_word_to_repl
 				if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl )
 				&& ( !this.wordFlags[i][j] )) {
@@ -228,10 +230,11 @@
 			}
 		}
 	}
-	
+
 	// finally, move on
 	this.currentWordIndex++;
 	this._spellcheck();
+	return true;
 }
 
 function terminateSpell() {
@@ -286,12 +289,12 @@
 function undo() {
 	// skip if this is the first word!
 	var ti = this.currentTextIndex;
-	var wi = this.currentWordIndex
-	
+	var wi = this.currentWordIndex;
+
 	if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) {
 		this.wordWin.removeFocus( ti, wi );
 
-		// go back to the last word index that was acted upon 
+		// go back to the last word index that was acted upon
 		do {
 			// if the current word index is zero then reset the seed
 			if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) {
@@ -303,30 +306,31 @@
 					this.currentWordIndex--;
 				}
 			}
-		} while ( 
+		} while (
 			this.wordWin.totalWords( this.currentTextIndex ) == 0
 			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromIgnrAll
 			|| this.wordFlags[this.currentTextIndex][this.currentWordIndex] == this.fromReplAll
-		); 
+		);
 
 		var text_idx = this.currentTextIndex;
 		var idx = this.currentWordIndex;
 		var preReplSpell = this.wordWin.originalSpellings[text_idx][idx];
-		
+
 		// if we got back to the first word then set the Undo button back to disabled
 		if( this.wordWin.totalPreviousWords( text_idx, idx ) == 0 ) {
 			this.controlWin.disableUndo();
 		}
-	
+
+		var i, j, origSpell ;
 		// examine what happened to this current word.
 		switch( this.wordFlags[text_idx][idx] ) {
-			// replace all: go through this and all the future occurances of the word 
+			// replace all: go through this and all the future occurances of the word
 			// and revert them all to the original spelling and clear their flags
 			case this.replAllFlag :
-				for( var i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
-					for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+				for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {
 						if(( i == text_idx && j >= idx ) || i > text_idx ) {
-							var origSpell = this.wordWin.originalSpellings[i][j];
+							origSpell = this.wordWin.originalSpellings[i][j];
 							if( origSpell == preReplSpell ) {
 								this._setWordText ( i, j, origSpell, undefined );
 							}
@@ -334,22 +338,22 @@
 					}
 				}
 				break;
-				
-			// ignore all: go through all the future occurances of the word 
+
+			// ignore all: go through all the future occurances of the word
 			// and clear their flags
 			case this.ignrAllFlag :
-				for( var i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
-					for( var j = 0; j < this.wordWin.totalWords( i ); j++ ) {
+				for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) {
+					for( j = 0; j < this.wordWin.totalWords( i ); j++ ) {
 						if(( i == text_idx && j >= idx ) || i > text_idx ) {
-							var origSpell = this.wordWin.originalSpellings[i][j];
+							origSpell = this.wordWin.originalSpellings[i][j];
 							if( origSpell == preReplSpell ) {
-								this.wordFlags[i][j] = undefined; 
+								this.wordFlags[i][j] = undefined;
 							}
 						}
 					}
 				}
 				break;
-				
+
 			// replace: revert the word to its original spelling
 			case this.replWordFlag :
 				this._setWordText ( text_idx, idx, preReplSpell, undefined );
@@ -357,20 +361,20 @@
 		}
 
 		// For all four cases, clear the wordFlag of this word. re-start the process
-		this.wordFlags[text_idx][idx] = undefined; 
+		this.wordFlags[text_idx][idx] = undefined;
 		this._spellcheck();
 	}
 }
 
 function _spellcheck() {
 	var ww = this.wordWin;
-	
+
 	// check if this is the last word in the current text element
 	if( this.currentWordIndex == ww.totalWords( this.currentTextIndex) ) {
 		this.currentTextIndex++;
 		this.currentWordIndex = 0;
 		// keep going if we're not yet past the last text element
-		if( this.currentTextIndex < this.wordWin.textInputs.length ) {	
+		if( this.currentTextIndex < this.wordWin.textInputs.length ) {
 			this._spellcheck();
 			return;
 		} else {
@@ -378,7 +382,7 @@
 			return;
 		}
 	}
-	
+
 	// if this is after the first one make sure the Undo button is enabled
 	if( this.currentWordIndex > 0 ) {
 		this.controlWin.enableUndo();
@@ -404,10 +408,10 @@
 	// add suggestion in list for each suggested word.
 	// get the array of suggested words out of the
 	// three-dimensional array containing all suggestions.
-	var a_suggests = this.wordWin.suggestions[text_num][word_num];	
+	var a_suggests = this.wordWin.suggestions[text_num][word_num];
 	if( a_suggests ) {
 		// got an array of suggestions.
-		for( var ii = 0; ii < a_suggests.length; ii++ ) {	
+		for( var ii = 0; ii < a_suggests.length; ii++ ) {
 			this.controlWin.addSuggestion( a_suggests[ii] );
 		}
 	}
@@ -449,8 +453,8 @@
 	for( var i = 0; i < document.forms.length; i++ ) {
 		for( var j = 0; j < document.forms[i].elements.length; j++ ) {
 			if( document.forms[i].elements[j].type.match( inputPattern )) {
-				inputs[inputs.length] = document.forms[i].elements[j]; 
-			}	
+				inputs[inputs.length] = document.forms[i].elements[j];
+			}
 		}
 	}
 	return inputs;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -26,8 +26,8 @@
 function encodeForPost( str ) {
 	var s = new String( str );
 	s = encodeURIComponent( s );
-	// additionally encode single quotes to evade any PHP 
-	// magic_quotes_gpc setting (it inserts escape characters and 
+	// additionally encode single quotes to evade any PHP
+	// magic_quotes_gpc setting (it inserts escape characters and
 	// therefore skews the btye positions of misspelled words)
 	return s.replace( /\'/g, '%27' );
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -12,7 +12,7 @@
 	this._adjustIndexes = _adjustIndexes;
 	this._isWordChar = _isWordChar;
 	this._lastPos = _lastPos;
-	
+
 	// public properties
 	this.wordChar = /[a-zA-Z]/;
 	this.windowType = "wordWindow";
@@ -69,7 +69,7 @@
 				break;
 			} else {
 				total_words++;
-			}	
+			}
 		}
 	}
 	return total_words;
@@ -115,17 +115,17 @@
 		var oldText = word.value;
 		// update the text given the index of the string
 		beginStr = this.textInputs[textIndex].substring( 0, pos );
-		endStr = this.textInputs[textIndex].substring( 
-			pos + oldText.length, 
-			this.textInputs[textIndex].length 
+		endStr = this.textInputs[textIndex].substring(
+			pos + oldText.length,
+			this.textInputs[textIndex].length
 		);
 		this.textInputs[textIndex] = beginStr + newText + endStr;
-		
-		// adjust the indexes on the stack given the differences in 
-		// length between the new word and old word. 
+
+		// adjust the indexes on the stack given the differences in
+		// length between the new word and old word.
 		var lengthDiff = newText.length - oldText.length;
 		this._adjustIndexes( textIndex, wordIndex, lengthDiff );
-		
+
 		word.size = newText.length;
 		word.value = newText;
 		this.removeFocus( textIndex, wordIndex );
@@ -140,39 +140,39 @@
 	d.open();
 
 	// iterate through each text input.
-	for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {	
+	for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) {
 		var end_idx = 0;
-		var begin_idx = 0;	
+		var begin_idx = 0;
 		d.writeln( '<form name="textInput'+txtid+'">' );
 		var wordtxt = this.textInputs[txtid];
 		this.indexes[txtid] = [];
 
-		if( wordtxt ) {			
+		if( wordtxt ) {
 			var orig = this.originalSpellings[txtid];
 			if( !orig ) break;
 
 			//!!! plain text, or HTML mode?
 			d.writeln( '<div class="plainText">' );
-			// iterate through each occurrence of a misspelled word. 
+			// iterate through each occurrence of a misspelled word.
 			for( var i = 0; i < orig.length; i++ ) {
 				// find the position of the current misspelled word,
-				// starting at the last misspelled word. 
+				// starting at the last misspelled word.
 				// and keep looking if it's a substring of another word
 				do {
 					begin_idx = wordtxt.indexOf( orig[i], end_idx );
 					end_idx = begin_idx + orig[i].length;
 					// word not found? messed up!
-					if( begin_idx == -1 ) break; 
-					// look at the characters immediately before and after 
+					if( begin_idx == -1 ) break;
+					// look at the characters immediately before and after
 					// the word. If they are word characters we'll keep looking.
 					var before_char = wordtxt.charAt( begin_idx - 1 );
 					var after_char = wordtxt.charAt( end_idx );
-				} while ( 
-					this._isWordChar( before_char ) 
+				} while (
+					this._isWordChar( before_char )
 					|| this._isWordChar( after_char )
 				);
 
-				// keep track of its position in the original text. 
+				// keep track of its position in the original text.
 				this.indexes[txtid][i] = begin_idx;
 
 				// write out the characters before the current misspelled word
@@ -181,17 +181,17 @@
 					d.write( this.printForHtml( wordtxt.charAt( j )));
 				}
 
-				// write out the misspelled word. 
+				// write out the misspelled word.
 				d.write( this._wordInputStr( orig[i] ));
 
 				// if it's the last word, write out the rest of the text
 				if( i == orig.length-1 ){
 					d.write( printForHtml( wordtxt.substr( end_idx )));
-				}			
+				}
 			}
 
 			d.writeln( '</div>' );
-			
+
 		}
 		d.writeln( '</form>' );
 	}
@@ -200,8 +200,8 @@
 	//	for( var k = 0; k < d.forms[j].elements.length; k++ ) {
 	//		alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );
 	//	}
-	//}	
-	
+	//}
+
 	// set the _forms property
 	this._forms = d.forms;
 	d.close();
@@ -217,7 +217,7 @@
 
 function printForHtml( n ) {
 	return n ;		// by FredCK
-	
+/*
 	var htmlstr = n;
 	if( htmlstr.length == 1 ) {
 		// do simple case statement if it's just one character
@@ -239,6 +239,7 @@
 		htmlstr = htmlstr.replace( /\n/g, '<br/>' );
 		return htmlstr;
 	}
+*/
 }
 
 function _isWordChar( letter ) {

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_spellerpages.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_spellerpages.html
- * 	Spell Check dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Spell Check dialog window.
 -->
 <html>
 	<head>
@@ -30,9 +34,10 @@
 
 window.onload = function()
 {
-	document.getElementById('txtHtml').value = oEditor.FCK.GetHTML() ;
+	document.getElementById('txtHtml').value = oEditor.FCK.EditorDocument.body.innerHTML ;
 
 	var oSpeller = new spellChecker( document.getElementById('txtHtml') ) ;
+	oSpeller.spellCheckScript = oEditor.FCKConfig.SpellerPagesServerScript || 'server-scripts/spellchecker.php' ;
 	oSpeller.OnFinished = oSpeller_OnFinished ;
 	oSpeller.openChecker() ;
 }
@@ -54,6 +59,6 @@
 	</head>
 	<body style="OVERFLOW: hidden" scroll="no" style="padding:0px;">
 		<input type="hidden" id="txtHtml" value="">
-		<iframe id="frmSpell" src="../fckblank.html" name="spellchecker" width="100%" height="100%" frameborder="no"></iframe>
+		<iframe id="frmSpell" src="javascript:void(0)" name="spellchecker" width="100%" height="100%" frameborder="0"></iframe>
 	</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_table.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_table.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_table.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_table.html
- * 	Table dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Table dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<html>
-	<head>
-		<title>Table Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-		<meta name="robots" content="noindex, nofollow" />
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -33,7 +38,7 @@
 var table ;
 var e = oEditor.FCKSelection.GetSelectedElement() ;
 
-if ( ! e && document.location.search.substr(1) == 'Parent' )
+if ( ( !e && document.location.search.substr(1) == 'Parent' ) || ( e && e.tagName != 'TABLE' ) )
 	e = oEditor.FCKSelection.MoveToAncestorNode( 'TABLE' ) ;
 
 if ( e && e.tagName == "TABLE" )
@@ -57,7 +62,7 @@
 
 		if (iWidth.indexOf('%') >= 0)			// Percentual = %
 		{
-			iWidth = parseInt( iWidth.substr(0,iWidth.length - 1) ) ;
+			iWidth = parseInt( iWidth.substr(0,iWidth.length - 1), 10 ) ;
 			document.getElementById('selWidthType').value = "percent" ;
 		}
 		else if (iWidth.indexOf('px') >= 0)		// Style Pixel = px
@@ -65,210 +70,217 @@
 			iWidth = iWidth.substr(0,iWidth.length - 2);
 			document.getElementById('selWidthType').value = "pixels" ;
 		}
-		
+
 		if (iHeight && iHeight.indexOf('px') >= 0)		// Style Pixel = px
 			iHeight = iHeight.substr(0,iHeight.length - 2);
-		
-		document.getElementById('txtWidth').value		= iWidth ;
-		document.getElementById('txtHeight').value		= iHeight ;
-		document.getElementById('txtBorder').value		= table.border ;
-		document.getElementById('selAlignment').value	= table.align ;
-		document.getElementById('txtCellPadding').value	= table.cellPadding	;
-		document.getElementById('txtCellSpacing').value	= table.cellSpacing	;
+
+		document.getElementById('txtWidth').value		= iWidth || '' ;
+		document.getElementById('txtHeight').value		= iHeight || '' ;
+		document.getElementById('txtBorder').value		= GetAttribute( table, 'border', '' ) ;
+		document.getElementById('selAlignment').value	= GetAttribute( table, 'align', '' ) ;
+		document.getElementById('txtCellPadding').value	= GetAttribute( table, 'cellPadding', '' ) ;
+		document.getElementById('txtCellSpacing').value	= GetAttribute( table, 'cellSpacing', '' ) ;
+		document.getElementById('txtSummary').value     = GetAttribute( table, 'summary', '' ) ;
 //		document.getElementById('cmbFontStyle').value	= table.className ;
 
 		if (table.caption) document.getElementById('txtCaption').value = table.caption.innerHTML ;
-		
+
 		document.getElementById('txtRows').disabled    = true ;
 		document.getElementById('txtColumns').disabled = true ;
 	}
-	
-	window.parent.SetOkButton( true ) ;	
-	window.parent.SetAutoSize( true ) ;	
+
+	window.parent.SetOkButton( true ) ;
+	window.parent.SetAutoSize( true ) ;
 }
 
 // Fired when the user press the OK button
 function Ok()
 {
 	var bExists = ( table != null ) ;
-	
+
 	if ( ! bExists )
-	{
-		table = document.createElement( "TABLE" ) ;
-	}
+		table = oEditor.FCK.EditorDocument.createElement( "TABLE" ) ;
 
 	// Removes the Width and Height styles
 	if ( bExists && table.style.width )		table.style.width = null ; //.removeAttribute("width") ;
 	if ( bExists && table.style.height )	table.style.height = null ; //.removeAttribute("height") ;
-	
-	table.width			= document.getElementById('txtWidth').value + ( document.getElementById('selWidthType').value == "percent" ? "%" : "") ;
-	table.height		= document.getElementById('txtHeight').value ;
-	table.border		= document.getElementById('txtBorder').value ;
-	table.align			= document.getElementById('selAlignment').value ;
-	table.cellPadding	= document.getElementById('txtCellPadding').value ;
-	table.cellSpacing	= document.getElementById('txtCellSpacing').value ;
-//	table.className		= cmbFontStyle.value ;
-	
+
+	var sWidth = GetE('txtWidth').value ;
+	if ( sWidth.length > 0 && GetE('selWidthType').value == 'percent' )
+		sWidth += '%' ;
+
+	SetAttribute( table, 'width'		, sWidth ) ;
+	SetAttribute( table, 'height'		, GetE('txtHeight').value ) ;
+	SetAttribute( table, 'border'		, GetE('txtBorder').value ) ;
+	SetAttribute( table, 'align'		, GetE('selAlignment').value ) ;
+	SetAttribute( table, 'cellPadding'	, GetE('txtCellPadding').value ) ;
+	SetAttribute( table, 'cellSpacing'	, GetE('txtCellSpacing').value ) ;
+	SetAttribute( table, 'summary'		, GetE('txtSummary').value ) ;
+
+	var eCaption = oEditor.FCKDomTools.GetFirstChild( table, 'CAPTION' ) ;
+
 	if ( document.getElementById('txtCaption').value != '')
 	{
-		if (! table.caption) table.createCaption() ;
-		table.caption.innerHTML = document.getElementById('txtCaption').value ;
+		if ( !eCaption )
+		{
+			eCaption = oEditor.FCK.EditorDocument.createElement( 'CAPTION' ) ;
+			table.insertBefore( eCaption, table.firstChild ) ;
+		}
+
+		eCaption.innerHTML = document.getElementById('txtCaption').value ;
 	}
-	else if ( bExists && table.caption )
-	{
-		if ( document.all )
-			table.caption.innerHTML = '' ;	// TODO: It causes an IE internal error if using removeChild.
-		else
-			table.caption.parentNode.removeChild( table.caption ) ;
-	}
-		
+	else if ( bExists && eCaption )
+		eCaption.parentNode.removeChild( eCaption ) ;
+
 	if (! bExists)
 	{
 		var iRows = document.getElementById('txtRows').value ;
 		var iCols = document.getElementById('txtColumns').value ;
-		
+
 		for ( var r = 0 ; r < iRows ; r++ )
 		{
 			var oRow = table.insertRow(-1) ;
 			for ( var c = 0 ; c < iCols ; c++ )
 			{
 				var oCell = oRow.insertCell(-1) ;
-				if ( oEditor.FCKBrowserInfo.IsGecko )
-					oCell.innerHTML = '<br _moz_editor_bogus_node="TRUE">' ;
+				if ( oEditor.FCKBrowserInfo.IsGeckoLike )
+					oCell.innerHTML = GECKO_BOGUS ;
 				//oCell.innerHTML = "&nbsp;" ;
 			}
 		}
-		
+
 		oEditor.FCKUndo.SaveUndoStep() ;
-		
-		// START iCM MODIFICATIONS	
-		// Amended to ensure that newly inserted tables are not incorrectly nested in P tags, etc
-		// We insert the table first and then rectify any nestings afterwards so we can re-use the
-		// FCKTablesProcessor function that corrects tables on SetHTML()
-		/*
-		table = oEditor.FCK.InsertElementAndGetIt( table ) ;
-		if ( !oEditor.FCKConfig.UseBROnCarriageReturn )
-		{
-			oEditor.FCKTablesProcessor.CheckTableNesting( table ) ;
-		}
-		*/
-		// END iCM MODIFICATIONS	
-		
+
 		oEditor.FCK.InsertElement( table ) ;
 	}
-	
+
 	return true ;
 }
 
-function IsDigit( e )
-{
-	e = e || event ;
-	var iCode = ( e.keyCode || e.charCode ) ;
-	return 
-		(
-			( iCode >= 48 && iCode <= 57 )		// Numbers
-			|| (iCode >= 37 && iCode <= 40)		// Arrows
-			|| iCode == 8		// Backspace
-			|| iCode == 46		// Delete
-		) ;
-}
-
-		</script>
-	</head>
-	<body bottommargin="5" leftmargin="5" topmargin="5" rightmargin="5" scroll="no" style="OVERFLOW: hidden">
-		<table id="otable" cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">
-			<tr>
-				<td>
-					<table cellSpacing="1" cellPadding="1" width="100%" border="0">
-						<tr>
-							<td valign="top">
-								<table cellSpacing="0" cellPadding="0" border="0">
-									<tr>
-										<td><span fckLang="DlgTableRows">Rows</span>:</td>
-										<td>&nbsp;<input id="txtRows" type="text" maxLength="3" size="2" value="3" name="txtRows" onkeypress="return IsDigit(event);"></td>
-									</tr>
-									<tr>
-										<td><span fckLang="DlgTableColumns">Columns</span>:</td>
-										<td>&nbsp;<input id="txtColumns" type="text" maxLength="2" size="2" value="2" name="txtColumns" onkeypress="return IsDigit(event);"></td>
-									</tr>
-									<tr>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td><span fckLang="DlgTableBorder">Border size</span>:</td>
-										<td>&nbsp;<INPUT id="txtBorder" type="text" maxLength="2" size="2" value="1" name="txtBorder" onkeypress="return IsDigit(event);"></td>
-									</tr>
-									<tr>
-										<td><span fckLang="DlgTableAlign">Alignment</span>:</td>
-										<td>&nbsp;<select id="selAlignment" name="selAlignment">
-												<option fckLang="DlgTableAlignNotSet" value="" selected>&lt;Not set&gt;</option>
-												<option fckLang="DlgTableAlignLeft" value="left">Left</option>
-												<option fckLang="DlgTableAlignCenter" value="center">Center</option>
-												<option fckLang="DlgTableAlignRight" value="right">Right</option>
-											</select></td>
-									</tr>
-								</table>
-							</td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td align="right" valign="top">
-								<table cellSpacing="0" cellPadding="0" border="0">
-									<tr>
-										<td><span fckLang="DlgTableWidth">Width</span>:</td>
-										<td>&nbsp;<input id="txtWidth" type="text" maxLength="4" size="3" value="200" name="txtWidth" onkeypress="return IsDigit(event);"></td>
-										<td>&nbsp;<select id="selWidthType" name="selWidthType">
-												<option fckLang="DlgTableWidthPx" value="pixels" selected>pixels</option>
-												<option fckLang="DlgTableWidthPc" value="percent">percent</option>
-											</select></td>
-									</tr>
-									<tr>
-										<td><span fckLang="DlgTableHeight">Height</span>:</td>
-										<td>&nbsp;<INPUT id="txtHeight" type="text" maxLength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);"></td>
-										<td>&nbsp;<span fckLang="DlgTableWidthPx">pixels</span></td>
-									</tr>
-									<tr>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgTableCellSpace">Cell spacing</span>:</td>
-										<td>&nbsp;<input id="txtCellSpacing" type="text" maxLength="2" size="2" value="1" name="txtCellSpacing"
-												onkeypress="return IsDigit(event);"></td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgTableCellPad">Cell padding</span>:</td>
-										<td>&nbsp;<input id="txtCellPadding" type="text" maxLength="2" size="2" value="1" name="txtCellPadding"
-												onkeypress="return IsDigit(event);"></td>
-										<td>&nbsp;</td>
-									</tr>
-								</table>
-							</td>
-						</tr>
-					</table>
-					<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-					<!--
-						<tr>
-						<td nowrap>
-						<span fcklang="DlgClassName">Class Name</span>:</td>
-							<td>&nbsp;</td>
-										<td>
-										<script type="text/javascript">
-//											var tbstyles = new TBCombo( "FontStyle"		, "null"			, "", oEditor.config.StyleNames, oEditor.config.StyleValues, 'CheckStyle("cmbFontStyle")');
-//											document.write(tbstyles.GetHTML());
-										</script></td>
-						</tr>
-					-->
-						<tr>
-							<td nowrap><span fckLang="DlgTableCaption">Caption</span>:</td>
-							<td>&nbsp;</td>
-							<td width="100%">&nbsp;
-								<input id="txtCaption" type="text" style="WIDTH: 100%"></td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table id="otable" cellspacing="0" cellpadding="0" width="100%" border="0" style="height: 100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableRows">Rows</span>:</td>
+									<td>
+										&nbsp;<input id="txtRows" type="text" maxlength="3" size="2" value="3" name="txtRows"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableColumns">Columns</span>:</td>
+									<td>
+										&nbsp;<input id="txtColumns" type="text" maxlength="2" size="2" value="2" name="txtColumns"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableBorder">Border size</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorder" type="text" maxlength="2" size="2" value="1" name="txtBorder"
+											onkeypress="return IsDigit(event);" /></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableAlign">Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selAlignment" name="selAlignment">
+											<option fcklang="DlgTableAlignNotSet" value="" selected="selected">&lt;Not set&gt;</option>
+											<option fcklang="DlgTableAlignLeft" value="left">Left</option>
+											<option fcklang="DlgTableAlignCenter" value="center">Center</option>
+											<option fcklang="DlgTableAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right" valign="top">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td>
+										<span fcklang="DlgTableWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input id="txtWidth" type="text" maxlength="4" size="3" value="200" name="txtWidth"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<select id="selWidthType" name="selWidthType">
+											<option fcklang="DlgTableWidthPx" value="pixels" selected="selected">pixels</option>
+											<option fcklang="DlgTableWidthPc" value="percent">percent</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										<span fcklang="DlgTableHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;<span fcklang="DlgTableWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellSpace">Cell spacing</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellSpacing" type="text" maxlength="2" size="2" value="1" name="txtCellSpacing"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgTableCellPad">Cell padding</span>:</td>
+									<td>
+										&nbsp;<input id="txtCellPadding" type="text" maxlength="2" size="2" value="1" name="txtCellPadding"
+											onkeypress="return IsDigit(event);" /></td>
+									<td>
+										&nbsp;</td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableCaption">Caption</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtCaption" type="text" style="width: 100%" /></td>
+					</tr>
+					<tr>
+						<td nowrap="nowrap">
+							<span fcklang="DlgTableSummary">Summary</span>:&nbsp;</td>
+						<td>
+							&nbsp;</td>
+						<td width="100%" nowrap="nowrap">
+							<input id="txtSummary" type="text" style="width: 100%" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_tablecell.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_tablecell.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_tablecell.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_tablecell.html
- * 	Cell properties dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Cell properties dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<html>
-	<head>
-		<title>Table Cell Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-		<meta name="robots" content="noindex, nofollow" />
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>Table Cell Properties</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -117,101 +121,135 @@
 	oEditor.FCKDialog.OpenDialog( 'FCKDialog_Color', oEditor.FCKLang.DlgColorTitle, 'dialog/fck_colorselector.html', 400, 330, wich == 'Back' ? SelectBackColor : SelectBorderColor, window ) ;
 }
 
-		</script>
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<table cellSpacing="0" cellPadding="0" width="100%" border="0" height="100%">
-			<tr>
-				<td>
-					<table cellSpacing="1" cellPadding="1" width="100%" border="0">
-						<tr>
-							<td>
-								<table cellSpacing="0" cellPadding="0" border="0">
-									<tr>
-										<td nowrap><span fckLang="DlgCellWidth">Width</span>:</td>
-										<td>&nbsp;<input onkeypress="return IsDigit();" id="txtWidth" type="text" maxLength="4"
-												size="3" name="txtWidth">&nbsp;<select id="selWidthType" name="selWidthType">
-												<option fckLang="DlgCellWidthPx" value="pixels" selected>pixels</option>
-												<option fckLang="DlgCellWidthPc" value="percent">percent</option>
+	</script>
+</head>
+<body scroll="no" style="overflow: hidden">
+	<table cellspacing="0" cellpadding="0" width="100%" border="0" height="100%">
+		<tr>
+			<td>
+				<table cellspacing="1" cellpadding="1" width="100%" border="0">
+					<tr>
+						<td>
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWidth">Width</span>:</td>
+									<td>
+										&nbsp;<input onkeypress="return IsDigit(event);" id="txtWidth" type="text" maxlength="4"
+											size="3" name="txtWidth" />&nbsp;<select id="selWidthType" name="selWidthType">
+												<option fcklang="DlgCellWidthPx" value="pixels" selected="selected">pixels</option>
+												<option fcklang="DlgCellWidthPc" value="percent">percent</option>
 											</select></td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellHeight">Height</span>:</td>
-										<td>&nbsp;<INPUT id="txtHeight" type="text" maxLength="4" size="3" name="txtHeight" onkeypress="return IsDigit();">&nbsp;<span fckLang="DlgCellWidthPx">pixels</span></td>
-									</tr>
-									<tr>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellWordWrap">Word Wrap</span>:</td>
-										<td>&nbsp;<select id="selWordWrap" name="selAlignment">
-												<option fckLang="DlgCellWordWrapNotSet" value="" selected>&lt;Not set&gt;</option>
-												<option fckLang="DlgCellWordWrapYes" value="true">Yes</option>
-												<option fckLang="DlgCellWordWrapNo" value="false">No</option>
-											</select></td>
-									</tr>
-									<tr>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellHorAlign">Horizontal Alignment</span>:</td>
-										<td>&nbsp;<select id="selHAlign" name="selAlignment">
-												<option fckLang="DlgCellHorAlignNotSet" value="" selected>&lt;Not set&gt;</option>
-												<option fckLang="DlgCellHorAlignLeft" value="left">Left</option>
-												<option fckLang="DlgCellHorAlignCenter" value="center">Center</option>
-												<option fckLang="DlgCellHorAlignRight" value="right">Right</option>
-											</select></td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellVerAlign">Vertival Alignement</span>:</td>
-										<td>&nbsp;<select id="selVAlign" name="selAlignment">
-												<option fckLang="DlgCellVerAlignNotSet" value="" selected>&lt;Not set&gt;</option>
-												<option fckLang="DlgCellVerAlignTop" value="top">Top</option>
-												<option fckLang="DlgCellVerAlignMiddle" value="middle">Middle</option>
-												<option fckLang="DlgCellVerAlignBottom" value="bottom">Bottom</option>
-												<option fckLang="DlgCellVerAlignBaseline" value="baseline">Baseline</option>
-											</select></td>
-									</tr>
-								</table>
-							</td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td align="right">
-								<table cellSpacing="0" cellPadding="0" border="0">
-									<tr>
-										<td nowrap><span fckLang="DlgCellRowSpan">Rows Span</span>:</td>
-										<td>&nbsp; <input onkeypress="return IsDigit();" id="txtRowSpan" type="text" maxLength="3"
-												size="2" name="txtRows"></td>
-										<td></td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellCollSpan">Columns Span</span>:</td>
-										<td>&nbsp; <input onkeypress="return IsDigit();" id="txtCollSpan" type="text" maxLength="2"
-												size="2" name="txtColumns"></td>
-										<td></td>
-									</tr>
-									<tr>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-										<td>&nbsp;</td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellBackColor">Background Color</span>:</td>
-										<td>&nbsp;<input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>
-										<td>&nbsp; <input type="button" fckLang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>
-									</tr>
-									<tr>
-										<td nowrap><span fckLang="DlgCellBorderColor">Border Color</span>:</td>
-										<td>&nbsp;<input id="txtBorderColor" type="text" size="8" name="txtCellPadding"></td>
-										<td>&nbsp; <input type="button" fckLang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )"></td>
-									</tr>
-								</table>
-							</td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHeight">Height</span>:</td>
+									<td>
+										&nbsp;<input id="txtHeight" type="text" maxlength="4" size="3" name="txtHeight" onkeypress="return IsDigit(event);" />&nbsp;<span
+											fcklang="DlgCellWidthPx">pixels</span></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellWordWrap">Word Wrap</span>:</td>
+									<td>
+										&nbsp;<select id="selWordWrap" name="selAlignment">
+											<option fcklang="DlgCellWordWrapYes" value="true" selected="selected">Yes</option>
+											<option fcklang="DlgCellWordWrapNo" value="false">No</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellHorAlign">Horizontal Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selHAlign" name="selAlignment">
+											<option fcklang="DlgCellHorAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellHorAlignLeft" value="left">Left</option>
+											<option fcklang="DlgCellHorAlignCenter" value="center">Center</option>
+											<option fcklang="DlgCellHorAlignRight" value="right">Right</option>
+										</select></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellVerAlign">Vertical Alignment</span>:</td>
+									<td>
+										&nbsp;<select id="selVAlign" name="selAlignment">
+											<option fcklang="DlgCellVerAlignNotSet" value="" selected>&lt;Not set&gt;</option>
+											<option fcklang="DlgCellVerAlignTop" value="top">Top</option>
+											<option fcklang="DlgCellVerAlignMiddle" value="middle">Middle</option>
+											<option fcklang="DlgCellVerAlignBottom" value="bottom">Bottom</option>
+											<option fcklang="DlgCellVerAlignBaseline" value="baseline">Baseline</option>
+										</select></td>
+								</tr>
+							</table>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td align="right">
+							<table cellspacing="0" cellpadding="0" border="0">
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellRowSpan">Rows Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtRowSpan" type="text" maxlength="3" size="2"
+											name="txtRows"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellCollSpan">Columns Span</span>:</td>
+									<td>
+										&nbsp;
+										<input onkeypress="return IsDigit(event);" id="txtCollSpan" type="text" maxlength="2"
+											size="2" name="txtColumns"></td>
+									<td>
+									</td>
+								</tr>
+								<tr>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+									<td>
+										&nbsp;</td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBackColor">Background Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBackColor" type="text" size="8" name="txtCellSpacing"></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Back' )"></td>
+								</tr>
+								<tr>
+									<td nowrap="nowrap">
+										<span fcklang="DlgCellBorderColor">Border Color</span>:</td>
+									<td>
+										&nbsp;<input id="txtBorderColor" type="text" size="8" name="txtCellPadding" /></td>
+									<td>
+										&nbsp;
+										<input type="button" fcklang="DlgCellBtnSelect" value="Select..." onclick="SelectColor( 'Border' )" /></td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_template.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_template.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_template.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_template.html
- * 	Template selection dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Template selection dialog window.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta name="robots" content="noindex, nofollow">
-		<style>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="robots" content="noindex, nofollow" />
+	<style type="text/css">
 			.TplList
 			{
 				border: #dcdcdc 2px solid;
@@ -47,8 +52,8 @@
 				font-weight: bold;
 			}
 		</style>
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script language="javascript">
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor		= window.parent.InnerDialogLoaded() ;
 var FCK			= oEditor.FCK ;
@@ -63,6 +68,11 @@
 	// Translate the dialog box texts.
 	oEditor.FCKLanguageManager.TranslatePage(document) ;
 
+	GetE('xChkReplaceAll').checked = ( FCKConfig.TemplateReplaceAll !== false ) ;
+
+	if ( FCKConfig.TemplateReplaceCheckbox !== false )
+		GetE('xReplaceBlock').style.display = '' ;
+
 	window.parent.SetAutoSize( true ) ;
 
 	LoadTemplatesXml() ;
@@ -70,6 +80,8 @@
 
 function LoadTemplatesXml()
 {
+	var oTemplate ;
+
 	if ( !FCK._Templates )
 	{
 		GetE('eLoading').style.display = '' ;
@@ -90,28 +102,28 @@
 
 		for ( var i = 0 ; i < aTplNodes.length ; i++ )
 		{
-			var oNode = aTplNodes[i]
+			var oNode = aTplNodes[i] ;
 
-			var oTemplate = new Object() ;
+			oTemplate = new Object() ;
 
 			var oPart ;
 
 			// Get the Template Title.
-			if ( oPart = oNode.attributes.getNamedItem('title') )
+			if ( (oPart = oNode.attributes.getNamedItem('title')) )
 				oTemplate.Title = oPart.value ;
 			else
 				oTemplate.Title = 'Template ' + ( i + 1 ) ;
 
 			// Get the Template Description.
-			if ( oPart = oXml.SelectSingleNode( 'Description', oNode ) )
+			if ( (oPart = oXml.SelectSingleNode( 'Description', oNode )) )
 				oTemplate.Description = oPart.text ? oPart.text : oPart.textContent ;
 
 			// Get the Template Image.
-			if ( oPart = oNode.attributes.getNamedItem('image') )
+			if ( (oPart = oNode.attributes.getNamedItem('image')) )
 				oTemplate.Image = sImagesBasePath + oPart.value ;
 
 			// Get the Template HTML.
-			if ( oPart = oXml.SelectSingleNode( 'Html', oNode ) )
+			if ( (oPart = oXml.SelectSingleNode( 'Html', oNode )) )
 				oTemplate.Html = oPart.text ? oPart.text : oPart.textContent ;
 			else
 			{
@@ -129,12 +141,12 @@
 		GetE('eEmpty').style.display = '' ;
 	else
 	{
-		for ( var i = 0 ; i < FCK._Templates.length ; i++ )
+		for ( var j = 0 ; j < FCK._Templates.length ; j++ )
 		{
-			var oTemplate = FCK._Templates[i] ;
+			oTemplate = FCK._Templates[j] ;
 
 			var oItemDiv = GetE('eList').appendChild( document.createElement( 'DIV' ) ) ;
-			oItemDiv.TplIndex = i ;
+			oItemDiv.TplIndex = j ;
 			oItemDiv.className = 'TplItem' ;
 
 			// Build the inner HTML of our new item DIV.
@@ -151,7 +163,7 @@
 			sInner += '<\/td><\/tr><\/table>' ;
 
 			oItemDiv.innerHTML = sInner ;
-			
+
 			oItemDiv.onmouseover = ItemDiv_OnMouseOver ;
 			oItemDiv.onmouseout = ItemDiv_OnMouseOut ;
 			oItemDiv.onclick = ItemDiv_OnClick ;
@@ -177,34 +189,54 @@
 function SelectTemplate( index )
 {
 	oEditor.FCKUndo.SaveUndoStep() ;
-	FCK.SetHTML( FCK._Templates[index].Html ) ;
-	window.parent.Cancel() ;
+
+	if ( GetE('xChkReplaceAll').checked )
+		FCK.SetHTML( FCK._Templates[index].Html ) ;
+	else
+		FCK.InsertHtml( FCK._Templates[index].Html ) ;
+
+	window.parent.Cancel( true ) ;
 }
 
-		</script>
-	</head>
-	<body scroll="no" style="OVERFLOW: hidden">
-		<table width="100%" height="100%">
-			<tr>
-				<td align="center">
-					<span fckLang="DlgTemplatesSelMsg">Please select the template to open in the editor<br>
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<span fcklang="DlgTemplatesSelMsg">Please select the template to open in the editor<br />
 					(the actual contents will be lost):</span>
-				</td>
-			</tr>
-			<tr>
-				<td height="100%" align="center">
-					<div id="eList" align="left" class="TplList">
-						<div id="eLoading" align="center" style="DISPLAY: none">
-							<br>
-							<span fckLang="DlgTemplatesLoading">Loading templates list. Please wait...</span>
-						</div>
-						<div id="eEmpty" align="center" style="DISPLAY: none">
-							<br>
-							<span fckLang="DlgTemplatesNoTpl">(No templates defined)</span>
-						</div>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" align="center">
+				<div id="eList" align="left" class="TplList">
+					<div id="eLoading" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesLoading">Loading templates list. Please wait...</span>
 					</div>
-				</td>
-			</tr>
-		</table>
-	</body>
+					<div id="eEmpty" align="center" style="display: none">
+						<br />
+						<span fcklang="DlgTemplatesNoTpl">(No templates defined)</span>
+					</div>
+				</div>
+			</td>
+		</tr>
+		<tr id="xReplaceBlock" style="display: none">
+			<td>
+				<table cellpadding="0" cellspacing="0">
+					<tr>
+						<td>
+							<input id="xChkReplaceAll" type="checkbox" /></td>
+						<td>
+							&nbsp;</td>
+						<td>
+							<label for="xChkReplaceAll" fcklang="DlgTemplatesReplace">
+								Replace actual contents</label></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textarea.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textarea.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textarea.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_textarea.html
- * 	Text Area dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Text Area dialog window.
 -->
 <html>
 	<head>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textfield.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textfield.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_textfield.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,33 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_textfield.html
- * 	Text field dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Text field dialog window.
 -->
-<html>
-	<head>
-		<title>Text Field Properties</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<script src="common/fck_dialog_common.js" type="text/javascript"></script>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title></title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta content="noindex, nofollow" name="robots" />
+	<script src="common/fck_dialog_common.js" type="text/javascript"></script>
+	<script type="text/javascript">
 
 var oEditor = window.parent.InnerDialogLoaded() ;
 
@@ -83,49 +87,53 @@
 	return true ;
 }
 
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<table height="100%" width="100%">
-			<tr>
-				<td align="center">
-					<table cellSpacing="0" cellPadding="0" border="0">
-						<tr>
-							<td>
-								<span fckLang="DlgTextName">Name</span><br>
-								<input id="txtName" type="text" size="20">
-							</td>
-							<td></td>
-							<td>
-								<span fckLang="DlgTextValue">Value</span><br>
-								<input id="txtValue" type="text" size="25">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgTextCharWidth">Character Width</span><br>
-								<input id="txtSize" type="text" size="5">
-							</td>
-							<td></td>
-							<td>
-								<span fckLang="DlgTextMaxChars">Maximum Characters</span><br>
-								<input id="txtMax" type="text" size="5">
-							</td>
-						</tr>
-						<tr>
-							<td>
-								<span fckLang="DlgTextType">Type</span><br>
-								<select id="txtType">
-									<option value="text" selected fckLang="DlgTextTypeText">Text</option>
-									<option value="password" fckLang="DlgTextTypePass">Password</option>
-								</select>
-							</td>
-							<td>&nbsp;</td>
-							<td></td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body style="overflow: hidden">
+	<table width="100%" style="height: 100%">
+		<tr>
+			<td align="center">
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							<span fcklang="DlgTextName">Name</span><br />
+							<input id="txtName" type="text" size="20" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextValue">Value</span><br />
+							<input id="txtValue" type="text" size="25" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextCharWidth">Character Width</span><br />
+							<input id="txtSize" type="text" size="5" />
+						</td>
+						<td>
+						</td>
+						<td>
+							<span fcklang="DlgTextMaxChars">Maximum Characters</span><br />
+							<input id="txtMax" type="text" size="5" />
+						</td>
+					</tr>
+					<tr>
+						<td>
+							<span fcklang="DlgTextType">Type</span><br />
+							<select id="txtType">
+								<option value="text" selected="selected" fcklang="DlgTextTypeText">Text</option>
+								<option value="password" fcklang="DlgTextTypePass">Password</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;</td>
+						<td>
+						</td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/00.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/data.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/data.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/data.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,70 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: data.js
- * 	Scripts for the fck_universalkey.html page.
- * 	Definition des 104 caracteres en hexa unicode.
- * 
- * File Authors:
- * 		Michel Staelens (michel.staelens at wanadoo.fr)
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- */
-
-var Maj = new Array() ;
-var Min = new Array() ;
-
-Maj["Arabic"]				="0651|0021|0040|0023|0024|0025|005E|0026|002A|0029|0028|005F|002B|064E|064B|064F|064C|0625|0625|2018|00F7|00D7|061B|003C|003E|0650|064D|005D|005B|0623|0623|0640|060C|002F|003A|0022|007E|0652|007D|007B|0622|0622|2019|002C|002E|061F|007C|0020|0020|0020|0020|0020" ;
-Min["Arabic"]				="0630|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|062F|0634|0633|064A|0628|0644|0627|062A|0646|0645|0643|0637|0626|0621|0624|0631|0644|0627|0649|0629|0648|0632|0638|005C|0020|0020|0020|0020" ;
-Maj["Belarusian (C)"]		="0401|0021|0022|2116|003B|0025|003A|003F|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|040E|0417|0425|0027|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0406|0422|042C|0411|042E|002C|0020|0020|0020|0020|0020|0020" ;
-Min["Belarusian (C)"]		="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|045E|0437|0445|0027|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0456|0442|044C|0431|044E|002E|0020|0020|0020|0020|0020|0020" ;
-Maj["Bulgarian (C)"]		="007E|0021|003F|002B|0022|0025|003D|003A|002F|005F|2116|0406|0056|044B|0423|0415|0418|0428|0429|041A|0421|0414|0417|0426|00A7|042C|042F|0410|041E|0416|0413|0422|041D|0412|041C|0427|042E|0419|042A|042D|0424|0425|041F|0420|041B|0411|0029|0020|0020|0020|0020|0020" ;
-Min["Bulgarian (C)"]		="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|002E|002C|0443|0435|0438|0448|0449|043A|0441|0434|0437|0446|003B|044C|044F|0430|043E|0436|0433|0442|043D|0432|043C|0447|044E|0439|044A|044D|0444|0445|043F|0440|043B|0431|0028|0020|0020|0020|0020|0020" ;
-Maj["Croatian (L)"]			="00B8|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|00A8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|0059|0058|0043|0056|0042|004E|004D|017D|003B|003A|003C|003E|005F|002D|002A|002B" ;
-Min["Croatian (L)"]			="00B8|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|0079|0078|0063|0076|0062|006E|006D|017E|002C|002E|003C|003E|005F|002D|002A|002B" ;
-Maj["Czech (L)"]			="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0027|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|005B|007B|0021|0020|0148|010F" ;
-Min["Czech (L)"]			="003B|002B|011B|0161|010D|0159|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|0029|0061|0073|0064|0066|0067|0068|006A|006B|006C|016F|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|005D|007D|00A8|0040|00F3|0165" ;
-Maj["Danish (L)"]			="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C6|00D8|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
-Min["Danish (L)"]			="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E6|00F8|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
-Maj["Farsi"]				="0020|0021|0040|0023|0024|0025|005E|0026|002A|0029|0028|005F|002B|0020|0020|0020|0020|0020|0020|0020|00F7|00D7|0020|007D|007B|0020|0020|005D|005B|0623|0622|0640|060C|061B|003A|0022|007E|0020|0020|0020|0020|0020|2019|003E|003C|061F|007C|0020|0020|0020|0020|0020"
-Min["Farsi"]				="067E|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0636|0635|062B|0642|0641|063A|0639|0647|062E|062D|062C|0686|0634|0633|064A|0628|0644|0627|062A|0646|0645|0643|06AF|0638|0637|0632|0631|0630|062F|0621|0648|002E|002F|005C|0020|0020|0020|0020|0020"
-Maj["Finnish (L)"]			="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
-Min["Finnish (L)"]			="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
-Maj["French (L)"]			="0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|00B0|002B|0023|0041|005A|0045|0052|0054|0059|0055|0049|004F|0050|00A8|0025|0051|0053|0044|0046|0047|0048|004A|004B|004C|004D|00B5|0057|0058|0043|0056|0042|004E|003F|002E|002F|00A7|003C|005B|007B|00A3|007E|0020" ;
-Min["French (L)"]			="0026|00E9|0022|0027|0028|002D|00E8|005F|00E7|00E0|0029|003D|0040|0061|007A|0065|0072|0074|0079|0075|0069|006F|0070|005E|00F9|0071|0073|0064|0066|0067|0068|006A|006B|006C|006D|002A|0077|0078|0063|0076|0062|006E|002C|003B|003A|0021|003E|005D|007D|0024|007E|0020" ;
-Maj["Greek"]				="007E|0021|0040|0023|0024|0025|0390|0026|03B0|0028|0029|005F|002B|003A|03A3|0395|03A1|03A4|03A5|0398|0399|039F|03A0|0386|038F|0391|03A3|0394|03A6|0393|0397|039E|039A|039B|038C|0022|0396|03A7|03A8|03A9|0392|039D|039C|003C|003E|003F|0388|0389|038A|03AA|03AB|038E" ;
-Min["Greek"]				="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|003B|03C2|03B5|03C1|03C4|03C5|03B8|03B9|03BF|03C0|03AC|03CE|03B1|03C3|03B4|03C6|03B3|03B7|03BE|03BA|03BB|03CC|0027|03B6|03C7|03C8|03C9|03B2|03BD|03BC|002C|002E|002F|03AD|03AE|03AF|03CA|03CB|03CD" ;
-Maj["Hebrew"]				="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|007B|007D|0041|0053|0044|0046|0047|0048|004A|004B|004C|003A|0022|005A|0058|0043|0056|0042|004E|004D|003C|003E|003F|0020|0020|0020|0020|0020|0020" ;
-Min["Hebrew"]				="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|002F|0027|05E7|05E8|05D0|05D8|05D5|05DF|05DD|05E4|005B|005D|05E9|05D3|05D2|05DB|05E2|05D9|05D7|05DC|05DA|05E3|002C|05D6|05E1|05D1|05D4|05E0|05DE|05E6|05EA|05E5|002E|0020|0020|0020|0020|0020|0020" ;
-Maj["Hungarian (L)"]		="00A7|0027|0022|002B|0021|0025|002F|003D|0028|0029|00ED|00DC|00D3|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0150|00DA|0041|0053|0044|0046|0047|0048|004A|004B|004C|00C9|00C1|0170|00CD|0059|0058|0043|0056|0042|004E|004D|003F|002E|003A|002D|005F|007B|007D" ;
-Min["Hungarian (L)"]		="0030|0031|0032|0033|0034|0035|0036|0037|0038|0039|00F6|00FC|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0151|00FA|0061|0073|0064|0066|0067|0068|006A|006B|006C|00E9|00E1|0171|00ED|0079|0078|0063|0076|0062|006E|006D|002C|002E|003A|002D|005F|007B|007D" ;
-Maj["Diacritical (L)"]		="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|00C6|02DD|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0152|0059|0058|0043|0056|0042|004E|004D|01A0|01AF|00D8|0126|0110|0132|00DE|00D0|00DF" ;
-Min["Diacritical (L)"]		="0060|00B4|005E|00A8|007E|00B0|00B7|00B8|00AF|02D9|02DB|02C7|02D8|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00E6|02DD|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0153|0079|0078|0063|0076|0062|006E|006D|01A1|01B0|00F8|0127|0111|0133|00FE|00F0|00DF" ;
-Maj["Macedonian (C)"]		="007E|0021|201E|201C|2019|0025|2018|0026|002A|0028|0029|005F|002B|0409|040A|0415|0420|0422|0405|0423|0418|041E|041F|0428|0403|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040C|0401|0417|040F|0426|0412|0411|041D|041C|0416|003B|003A|003F|002A|005F|007B|007D" ;
-Min["Macedonian (C)"]		="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0459|045A|0435|0440|0442|0455|0443|0438|043E|043F|0448|0453|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045C|0451|0437|045F|0446|0432|0431|043D|043C|0436|002C|002E|002F|0027|002D|005B|005D" ;
-Maj["Norwegian (L)"]		="00A7|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|0060|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|00C5|005E|0041|0053|0044|0046|0047|0048|004A|004B|00D8|00C6|00C4|003E|005A|0058|0043|0056|0042|004E|004D|003B|003A|002A|005F|007B|007D|005C|007E" ;
-Min["Norwegian (L)"]		="00BD|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00B4|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|00E5|00A8|0061|0073|0064|0066|0067|0068|006A|006B|00F8|00E6|00E4|003C|007A|0078|0063|0076|0062|006E|006D|002C|002E|0027|002D|005B|005D|007C|0040" ;
-Maj["Polish (L)"]			="002A|0021|0022|0023|00A4|0025|0026|002F|0028|0029|003D|003F|017A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0144|0107|0041|0053|0044|0046|0047|0048|004A|004B|004C|0141|0119|0059|0058|0043|0056|0042|004E|004D|003B|003A|005F|003C|005B|007B|02D9|00B4|02DB" ;
-Min["Polish (L)"]			="0027|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002B|00F3|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|017C|015B|0061|0073|0064|0066|0067|0068|006A|006B|006C|0142|0105|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|007D|02D9|00B4|02DB" ;
-Maj["Russian (C)"]			="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|042A|0424|042B|0412|0410|041F|0420|041E|041B|0414|0416|042D|042F|0427|0421|041C|0418|0422|042C|0411|042E|003E|002E|003A|0022|005B|005D|003F" ;
-Min["Russian (C)"]			="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|044A|0444|044B|0432|0430|043F|0440|043E|043B|0434|0436|044D|044F|0447|0441|043C|0438|0442|044C|0431|044E|003C|002C|003B|0027|007B|007D|002F" ;
-Maj["Serbian (C)"]			="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0409|040A|0415|0420|0422|0417|0423|0418|041E|041F|0428|0402|0410|0421|0414|0424|0413|0425|0408|041A|041B|0427|040B|003E|0405|040F|0426|0412|0411|041D|041C|0416|003A|005F|002E|003A|0022|005B|005D" ;
-Min["Serbian (C)"]			="0060|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0459|045A|0435|0440|0442|0437|0443|0438|043E|043F|0448|0452|0430|0441|0434|0444|0433|0445|0458|043A|043B|0447|045B|003C|0455|045F|0446|0432|0431|043D|043C|0436|002E|002D|002C|003B|0027|007B|007D" ;
-Maj["Serbian (L)"]			="007E|0021|0022|0023|0024|0025|0026|002F|0028|0029|003D|003F|002A|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|0160|0110|0041|0053|0044|0046|0047|0048|004A|004B|004C|010C|0106|003E|0059|0058|0043|0056|0042|004E|004D|017D|003A|005F|002E|003A|0022|005B|005D" ;
-Min["Serbian (L)"]			="201A|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|002B|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|0161|0111|0061|0073|0064|0066|0067|0068|006A|006B|006C|010D|0107|003C|0079|0078|0063|0076|0062|006E|006D|017E|002E|002D|002C|003B|0027|007B|007D" ;
-Maj["Slovak (L)"]			="00B0|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0025|02C7|0051|0057|0045|0052|0054|005A|0055|0049|004F|0050|002F|0028|0041|0053|0044|0046|0047|0048|004A|004B|004C|0022|0021|0059|0058|0043|0056|0042|004E|004D|003F|003A|005F|003C|005B|010F|0029|002A|0020" ;
-Min["Slovak (L)"]			="003B|002B|013E|0161|010D|0165|017E|00FD|00E1|00ED|00E9|003D|00B4|0071|0077|0065|0072|0074|007A|0075|0069|006F|0070|00FA|00E4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F4|00A7|0079|0078|0063|0076|0062|006E|006D|002C|002E|002D|003E|005D|00F3|0148|0026|0020" ;
-Maj["Spanish (L)"]			="00AA|0021|0022|00B7|0024|0025|0026|002F|0028|0029|003D|003F|00BF|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|005E|00A8|0041|0053|0044|0046|0047|0048|004A|004B|004C|00D1|00C7|005A|0058|0043|0056|0042|004E|004D|003B|003A|005F|003E|007C|0040|0023|007E|002A" ;
-Min["Spanish (L)"]			="00BA|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|0027|00A1|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|0060|00B4|0061|0073|0064|0066|0067|0068|006A|006B|006C|00F1|00E7|007A|0078|0063|0076|0062|006E|006D|002C|002E|002D|003C|005C|0040|0023|007E|002B" ;
-Maj["Ukrainian (C)"]		="0401|0021|0040|0023|2116|0025|005E|0026|002A|0028|0029|005F|002B|0419|0426|0423|041A|0415|041D|0413|0428|0429|0417|0425|0407|0424|0406|0412|0410|041F|0420|041E|041B|0414|0416|0404|0490|042F|0427|0421|041C|0418|0422|042C|0411|042E|002E|003A|0022|003C|003E|003F" ;
-Min["Ukrainian (C)"]		="0451|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0439|0446|0443|043A|0435|043D|0433|0448|0449|0437|0445|0457|0444|0456|0432|0430|043F|0440|043E|043B|0434|0436|0454|0491|044F|0447|0441|043C|0438|0442|044C|0431|044E|002C|003B|0027|007B|007D|002F" ;
-Maj["Vietnamese (L)"]		="007E|0021|0040|0023|0024|0025|005E|0026|002A|0028|0029|005F|002B|0051|0057|0045|0052|0054|0059|0055|0049|004F|0050|01AF|01A0|0041|0053|0044|0046|0047|0048|004A|004B|004C|0102|00C2|005A|0058|0043|0056|0042|004E|004D|00CA|00D4|0110|003C|003E|003F|007D|003A|0022" ;
-Min["Vietnamese (L)"]		="20AB|0031|0032|0033|0034|0035|0036|0037|0038|0039|0030|002D|003D|0071|0077|0065|0072|0074|0079|0075|0069|006F|0070|01B0|01A1|0061|0073|0064|0066|0067|0068|006A|006B|006C|0103|00E2|007A|0078|0063|0076|0062|006E|006D|00EA|00F4|0111|002C|002E|002F|007B|003B|0027" ;
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/diacritic.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/diacritic.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/diacritic.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,65 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: diacritic.js
- * 	Scripts for the fck_universalkey.html page.
- * 
- * File Authors:
- * 		Michel Staelens (michel.staelens at wanadoo.fr)
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- */
-
-var dia = new Array()
-
-dia["0060"]=new Array();dia["00B4"]=new Array();dia["005E"]=new Array();dia["00A8"]=new Array();dia["007E"]=new Array();dia["00B0"]=new Array();dia["00B7"]=new Array();dia["00B8"]=new Array();dia["00AF"]=new Array();dia["02D9"]=new Array();dia["02DB"]=new Array();dia["02C7"]=new Array();dia["02D8"]=new Array();dia["02DD"]=new Array();dia["031B"]=new Array();
-dia["0060"]["0061"]="00E0";dia["00B4"]["0061"]="00E1";dia["005E"]["0061"]="00E2";dia["00A8"]["0061"]="00E4";dia["007E"]["0061"]="00E3";dia["00B0"]["0061"]="00E5";dia["00AF"]["0061"]="0101";dia["02DB"]["0061"]="0105";dia["02D8"]["0061"]="0103";
-dia["00B4"]["0063"]="0107";dia["005E"]["0063"]="0109";dia["00B8"]["0063"]="00E7";dia["02D9"]["0063"]="010B";dia["02C7"]["0063"]="010D";
-dia["02C7"]["0064"]="010F";
-dia["0060"]["0065"]="00E8";dia["00B4"]["0065"]="00E9";dia["005E"]["0065"]="00EA";dia["00A8"]["0065"]="00EB";dia["00AF"]["0065"]="0113";dia["02D9"]["0065"]="0117";dia["02DB"]["0065"]="0119";dia["02C7"]["0065"]="011B";dia["02D8"]["0065"]="0115";
-dia["005E"]["0067"]="011D";dia["00B8"]["0067"]="0123";dia["02D9"]["0067"]="0121";dia["02D8"]["0067"]="011F";
-dia["005E"]["0068"]="0125";
-dia["0060"]["0069"]="00EC";dia["00B4"]["0069"]="00ED";dia["005E"]["0069"]="00EE";dia["00A8"]["0069"]="00EF";dia["007E"]["0069"]="0129";dia["00AF"]["0069"]="012B";dia["02DB"]["0069"]="012F";dia["02D8"]["0069"]="012D";
-dia["005E"]["006A"]="0135";
-dia["00B8"]["006B"]="0137";
-dia["00B4"]["006C"]="013A";dia["00B7"]["006C"]="0140";dia["00B8"]["006C"]="013C";dia["02C7"]["006C"]="013E";
-dia["00B4"]["006E"]="0144";dia["007E"]["006E"]="00F1";dia["00B8"]["006E"]="0146";dia["02D8"]["006E"]="0148";
-dia["0060"]["006F"]="00F2";dia["00B4"]["006F"]="00F3";dia["005E"]["006F"]="00F4";dia["00A8"]["006F"]="00F6";dia["007E"]["006F"]="00F5";dia["00AF"]["006F"]="014D";dia["02D8"]["006F"]="014F";dia["02DD"]["006F"]="0151";dia["031B"]["006F"]="01A1";
-dia["00B4"]["0072"]="0155";dia["00B8"]["0072"]="0157";dia["02C7"]["0072"]="0159";
-dia["00B4"]["0073"]="015B";dia["005E"]["0073"]="015D";dia["00B8"]["0073"]="015F";dia["02C7"]["0073"]="0161";
-dia["00B8"]["0074"]="0163";dia["02C7"]["0074"]="0165";
-dia["0060"]["0075"]="00F9";dia["00B4"]["0075"]="00FA";dia["005E"]["0075"]="00FB";dia["00A8"]["0075"]="00FC";dia["007E"]["0075"]="0169";dia["00B0"]["0075"]="016F";dia["00AF"]["0075"]="016B";dia["02DB"]["0075"]="0173";dia["02D8"]["0075"]="016D";dia["02DD"]["0075"]="0171";dia["031B"]["0075"]="01B0";
-dia["005E"]["0077"]="0175";
-dia["00B4"]["0079"]="00FD";dia["005E"]["0079"]="0177";dia["00A8"]["0079"]="00FF";
-dia["00B4"]["007A"]="017A";dia["02D9"]["007A"]="017C";dia["02C7"]["007A"]="017E";
-dia["00B4"]["00E6"]="01FD";
-dia["00B4"]["00F8"]="01FF";
-dia["0060"]["0041"]="00C0";dia["00B4"]["0041"]="00C1";dia["005E"]["0041"]="00C2";dia["00A8"]["0041"]="00C4";dia["007E"]["0041"]="00C3";dia["00B0"]["0041"]="00C5";dia["00AF"]["0041"]="0100";dia["02DB"]["0041"]="0104";dia["02D8"]["0041"]="0102";
-dia["00B4"]["0043"]="0106";dia["005E"]["0043"]="0108";dia["00B8"]["0043"]="00C7";dia["02D9"]["0043"]="010A";dia["02C7"]["0043"]="010C";
-dia["02C7"]["0044"]="010E";
-dia["0060"]["0045"]="00C8";dia["00B4"]["0045"]="00C9";dia["005E"]["0045"]="00CA";dia["00A8"]["0045"]="00CB";dia["00AF"]["0045"]="0112";dia["02D9"]["0045"]="0116";dia["02DB"]["0045"]="0118";dia["02C7"]["0045"]="011A";dia["02D8"]["0045"]="0114";
-dia["005E"]["0047"]="011C";dia["00B8"]["0047"]="0122";dia["02D9"]["0047"]="0120";dia["02D8"]["0047"]="011E";
-dia["005E"]["0048"]="0124";
-dia["0060"]["0049"]="00CC";dia["00B4"]["0049"]="00CD";dia["005E"]["0049"]="00CE";dia["00A8"]["0049"]="00CF";dia["007E"]["0049"]="0128";dia["00AF"]["0049"]="012A";dia["02D9"]["0049"]="0130";dia["02DB"]["0049"]="012E";dia["02D8"]["0049"]="012C";
-dia["005E"]["004A"]="0134";
-dia["00B8"]["004B"]="0136";
-dia["00B4"]["004C"]="0139";dia["00B7"]["004C"]="013F";dia["00B8"]["004C"]="013B";dia["02C7"]["004C"]="013D";
-dia["00B4"]["004E"]="0143";dia["007E"]["004E"]="00D1";dia["00B8"]["004E"]="0145";dia["02D8"]["004E"]="0147";
-dia["0060"]["004F"]="00D2";dia["00B4"]["004F"]="00D3";dia["005E"]["004F"]="00D4";dia["00A8"]["004F"]="00D6";dia["007E"]["004F"]="00D5";dia["00AF"]["004F"]="014C";dia["02D8"]["004F"]="014E";dia["02DD"]["004F"]="0150";dia["031B"]["004F"]="01A0";
-dia["00B4"]["0052"]="0154";dia["00B8"]["0052"]="0156";dia["02C7"]["0052"]="0158";
-dia["00B4"]["0053"]="015A";dia["005E"]["0053"]="015C";dia["00B8"]["0053"]="015E";dia["02C7"]["0053"]="0160";
-dia["00B8"]["0054"]="0162";dia["02C7"]["0054"]="0164";
-dia["0060"]["0055"]="00D9";dia["00B4"]["0055"]="00DA";dia["005E"]["0055"]="00DB";dia["00A8"]["0055"]="00DC";dia["007E"]["0055"]="0168";dia["00B0"]["0055"]="016E";dia["00AF"]["0055"]="016A";dia["02DB"]["0055"]="0172";dia["02D8"]["0055"]="016C";dia["02DD"]["0055"]="0170";dia["031B"]["0055"]="01AF";
-dia["005E"]["0057"]="0174";
-dia["00B4"]["0059"]="00DD";dia["005E"]["0059"]="0176";dia["00A8"]["0059"]="0178";
-dia["00B4"]["005A"]="0179";dia["02D9"]["005A"]="017B";dia["02C7"]["005A"]="017D";
-dia["00B4"]["00C6"]="01FC";
-dia["00B4"]["00D8"]="01FE";
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/dialogue.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/dialogue.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/dialogue.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,31 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: dialogue.js
- * 	Scripts for the fck_universalkey.html page.
- * 
- * File Authors:
- * 		Michel Staelens (michel.staelens at wanadoo.fr)
- * 		Bernadette Cierzniak
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-function afficher(txt)
-{
-	document.getElementById( 'uni_area' ).value = txt ;
-}
-
-function rechercher()
-{
-	return document.getElementById( 'uni_area' ).value ;
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/fck_universalkey.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,62 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_universalkey.css
- * 	CSS styles for the Universal Keyboard.
- * 
- * File Authors:
- * 		Michel Staelens (michel.staelens at wanadoo.fr)
- * 		Bernadette Cierzniak
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- */
-
-BODY, TEXTAREA, INPUT, TD, SELECT
-{
-	font-family: Tahoma,verdana,arial,sans-serif;
-}
-DIV
-{
-	position: absolute;
-}
-.simple
-{
-	font-size: 11pt;
-}
-.double
-{
-	font-size: 9pt;
-}
-.simpledia
-{
-	color: red;
-	font-size: 11pt;
-}
-.doubledia
-{
-	color: red;
-	font-size: 9pt;
-}
-.action
-{
-	color: white;
-	font-size: 7pt;
-}
-.clavier
-{
-	color: blue;
-	font-size: 7pt;
-}
-.sign
-{
-	color: gray;
-	font-size: 7pt;
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/keyboard_layout.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/multihexa.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/multihexa.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey/multihexa.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,309 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: multihexa.js
- * 	Scripts for the fck_universalkey.html page.
- * 	Definition des 104 caracteres en hexa unicode.
- * 
- * File Authors:
- * 		Michel Staelens (michel.staelens at wanadoo.fr)
- * 		Bernadette Cierzniak
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- */
-
-var caps=0, lock=0, hexchars="0123456789ABCDEF", accent="0000", keydeb=0
-var key=new Array();j=0;for (i in Maj){key[j]=i;j++}
-var ns6=((!document.all)&&(document.getElementById))
-var ie=document.all
-
-var langue=getCk();
-if (langue==""){
-	langue=key[keydeb]
-}
-CarMaj=Maj[langue].split("|");CarMin=Min[langue].split("|")
-
-/*unikey*/
-var posUniKeyLeft=0, posUniKeyTop=0
-if (ns6){posUniKeyLeft=0;posUniKeyTop=60}
-else if (ie){posUniKeyLeft=0;posUniKeyTop=60}
-tracer("fond",posUniKeyLeft,posUniKeyTop,'<img src="fck_universalkey/keyboard_layout.gif" width=404 height=152 border="0"><br />',"sign")
-/*touches*/
-var posX=new Array(0,28,56,84,112,140,168,196,224,252,280,308,336,42,70,98,126,154,182,210,238,266,294,322,350,50,78,106,134,162,190,218,246,274,302,330,64,92,120,148,176,204,232,260,288,316,28,56,84,294,322,350)
-var posY=new Array(14,14,14,14,14,14,14,14,14,14,14,14,14,42,42,42,42,42,42,42,42,42,42,42,42,70,70,70,70,70,70,70,70,70,70,70,98,98,98,98,98,98,98,98,98,98,126,126,126,126,126,126)
-var nbTouches=52
-for (i=0;i<nbTouches;i++){
-	CarMaj[i]=((CarMaj[i]!="0000")?(fromhexby4tocar(CarMaj[i])):"")
-	CarMin[i]=((CarMin[i]!="0000")?(fromhexby4tocar(CarMin[i])):"")
-	if (CarMaj[i]==CarMin[i].toUpperCase()){
-		cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
-		tracer("car"+i,posUniKeyLeft+6+posX[i],posUniKeyTop+3+posY[i],cecar,((dia[hexa(cecar)]!=null)?"simpledia":"simple"))
-		tracer("majus"+i,posUniKeyLeft+15+posX[i],posUniKeyTop+1+posY[i],"&nbsp;","double")
-		tracer("minus"+i,posUniKeyLeft+3+posX[i],posUniKeyTop+9+posY[i],"&nbsp;","double")
-	}
-	else{
-		tracer("car"+i,posUniKeyLeft+6+posX[i],posUniKeyTop+3+posY[i],"&nbsp;","simple")
-		cecar=CarMin[i]
-		tracer("minus"+i,posUniKeyLeft+3+posX[i],posUniKeyTop+9+posY[i],cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
-		cecar=CarMaj[i]
-		tracer("majus"+i,posUniKeyLeft+15+posX[i],posUniKeyTop+1+posY[i],cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
-	}
-}
-/*touches de fonctions*/
-var actC1=new Array(0,371,364,0,378,0,358,0,344,0,112,378)
-var actC2=new Array(0,0,14,42,42,70,70,98,98,126,126,126)
-var actC3=new Array(32,403,403,39,403,47,403,61,403,25,291,403)
-var actC4=new Array(11,11,39,67,67,95,95,123,123,151,151,151)
-var act  =new Array(" « KB"," KB » ","Delete","Clear","Back","Caps<br> Lock","Enter","Shift","Shift","<|<","Space",">|>")
-var effet=new Array("keyscroll(-3)","keyscroll(3)","faire(\"del\")","RAZ()","faire(\"bck\")","bloq()","faire(\"\\n\")","haut()","haut()","faire(\"ar\")","faire(\" \")","faire(\"av\")")
-var nbActions=12
-for (i=0;i<nbActions;i++){
-	tracer("act"+i,posUniKeyLeft+1+actC1[i],posUniKeyTop-1+actC2[i],act[i],"action")
-}
-/*navigation*/
-var keyC1=new Array(35,119,203,287)
-var keyC2=new Array(0,0,0,0)
-var keyC3=new Array(116,200,284,368)
-var keyC4=new Array(11,11,11,11)
-for (i=0;i<4;i++){
-	tracer("key"+i,posUniKeyLeft+5+keyC1[i],posUniKeyTop-1+keyC2[i],key[i],"unikey")
-}
-/*zones reactives*/
-tracer("masque",posUniKeyLeft,posUniKeyTop,'<img src="fck_universalkey/00.gif" width=404 height=152 border="0" usemap="#unikey">')
-document.write('<map name="unikey">')
-for (i=0;i<nbTouches;i++){
-	document.write('<area coords="'+posX[i]+','+posY[i]+','+(posX[i]+25)+','+(posY[i]+25)+'" href=# onClick=\'javascript:ecrire('+i+')\'>')
-}
-for (i=0;i<nbActions;i++){
-	document.write('<area coords="'+actC1[i]+','+actC2[i]+','+actC3[i]+','+actC4[i]+'" href=# onClick=\'javascript:'+effet[i]+'\'>')
-}
-for (i=0;i<4;i++){
-	document.write('<area coords="'+keyC1[i]+','+keyC2[i]+','+keyC3[i]+','+keyC4[i]+'" onclick=\'javascript:charger('+i+')\'>')
-}
-document.write('</map>')
-
-/*fonctions*/
-function ecrire(i){
-	txt=rechercher()+"|";subtxt=txt.split("|")
-	ceci=(lock==1)?CarMaj[i]:((caps==1)?CarMaj[i]:CarMin[i])
-	if (test(ceci)){subtxt[0]+=cardia(ceci);distinguer(false)}
-	else if(dia[accent]!=null&&dia[hexa(ceci)]!=null){distinguer(false);accent=hexa(ceci);distinguer(true)}
-	else if(dia[accent]!=null){subtxt[0]+=fromhexby4tocar(accent)+ceci;distinguer(false)}
-	else if(dia[hexa(ceci)]!=null){accent=hexa(ceci);distinguer(true)}
-	else {subtxt[0]+=ceci}
-	txt=subtxt[0]+"|"+subtxt[1]
-	afficher(txt)
-	if (caps==1){caps=0;MinusMajus()}
-}
-function faire(ceci){
-	txt=rechercher()+"|";subtxt=txt.split("|")
-	l0=subtxt[0].length
-	l1=subtxt[1].length
-	c1=subtxt[0].substring(0,(l0-2))
-	c2=subtxt[0].substring(0,(l0-1))
-	c3=subtxt[1].substring(0,1)
-	c4=subtxt[1].substring(0,2)
-	c5=subtxt[0].substring((l0-2),l0)
-	c6=subtxt[0].substring((l0-1),l0)
-	c7=subtxt[1].substring(1,l1)
-	c8=subtxt[1].substring(2,l1)
-	if(dia[accent]!=null){if(ceci==" "){ceci=fromhexby4tocar(accent)}distinguer(false)}
-	switch (ceci){
-	case("av") :if(escape(c4)!="%0D%0A"){txt=subtxt[0]+c3+"|"+c7}else{txt=subtxt[0]+c4+"|"+c8}break
-	case("ar") :if(escape(c5)!="%0D%0A"){txt=c2+"|"+c6+subtxt[1]}else{txt=c1+"|"+c5+subtxt[1]}break
-	case("bck"):if(escape(c5)!="%0D%0A"){txt=c2+"|"+subtxt[1]}else{txt=c1+"|"+subtxt[1]}break
-	case("del"):if(escape(c4)!="%0D%0A"){txt=subtxt[0]+"|"+c7}else{txt=subtxt[0]+"|"+c8}break
-	default:txt=subtxt[0]+ceci+"|"+subtxt[1];break
-	}
-	afficher(txt)
-}
-function RAZ(){txt="";if(dia[accent]!=null){distinguer(false)}afficher(txt)}
-function haut(){caps=1;MinusMajus()}
-function bloq(){lock=(lock==1)?0:1;MinusMajus()}
-
-/*fonctions de traitement du unikey*/
-function tracer(nom,gauche,haut,ceci,classe){ceci="<span class="+classe+">"+ceci+"</span>";document.write('<div id="'+nom+'" >'+ceci+'</div>');if (ns6){document.getElementById(nom).style.left=gauche+"px";document.getElementById(nom).style.top=haut+"px";}else if (ie){document.all(nom).style.left=gauche;document.all(nom).style.top=haut}}
-function retracer(nom,ceci,classe){ceci="<span class="+classe+">"+ceci+"</span>";if (ns6){document.getElementById(nom).innerHTML=ceci}else if (ie){doc=document.all(nom);doc.innerHTML=ceci}}
-function keyscroll(n){
-	keydeb+=n
-	if (keydeb<0){
-		keydeb=0
-	}
-	if (keydeb>key.length-4){
-		keydeb=key.length-4
-	}
-	for (i=keydeb;i<keydeb+4;i++){
-		retracer("key"+(i-keydeb),key[i],"unikey")
-	}
-	if (keydeb==0){
-		retracer("act0","&nbsp;","action")
-	}else {
-		retracer("act0",act[0],"action")
-	}
-	if (keydeb==key.length-4){
-		retracer("act1","&nbsp;","action")
-	}else {
-		retracer("act1",act[1],"action")
-	}
-}
-function charger(i){
-	langue=key[i+keydeb];setCk(langue);accent="0000"
-	CarMaj=Maj[langue].split("|");CarMin=Min[langue].split("|")
-	for (i=0;i<nbTouches;i++){
-		CarMaj[i]=((CarMaj[i]!="0000")?(fromhexby4tocar(CarMaj[i])):"")
-		CarMin[i]=((CarMin[i]!="0000")?(fromhexby4tocar(CarMin[i])):"")
-		if (CarMaj[i]==CarMin[i].toUpperCase()){
-			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
-			retracer("car"+i,cecar,((dia[hexa(cecar)]!=null)?"simpledia":"simple"))
-			retracer("minus"+i,"&nbsp;")
-			retracer("majus"+i,"&nbsp;")
-		}
-		else{
-			retracer("car"+i,"&nbsp;")
-			cecar=CarMin[i]
-			retracer("minus"+i,cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
-			cecar=CarMaj[i]
-			retracer("majus"+i,cecar,((dia[hexa(cecar)]!=null)?"doubledia":"double"))
-		}
-	}
-}
-function distinguer(oui){
-	for (i=0;i<nbTouches;i++){
-		if (CarMaj[i]==CarMin[i].toUpperCase()){
-			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
-			if(test(cecar)){retracer("car"+i,oui?(cardia(cecar)):cecar,oui?"simpledia":"simple")}
-		}
-		else{
-			cecar=CarMin[i]
-			if(test(cecar)){retracer("minus"+i,oui?(cardia(cecar)):cecar,oui?"doubledia":"double")}
-			cecar=CarMaj[i]
-			if(test(cecar)){retracer("majus"+i,oui?(cardia(cecar)):cecar,oui?"doubledia":"double")}
-		}
-	}
-	if (!oui){accent="0000"}
-}
-function MinusMajus(){
-	for (i=0;i<nbTouches;i++){
-		if (CarMaj[i]==CarMin[i].toUpperCase()){
-			cecar=((lock==0)&&(caps==0)?CarMin[i]:CarMaj[i])
-			retracer("car"+i,(test(cecar)?cardia(cecar):cecar),((dia[hexa(cecar)]!=null||test(cecar))?"simpledia":"simple"))
-		}
-	}
-}
-function test(cecar){return(dia[accent]!=null&&dia[accent][hexa(cecar)]!=null)}
-function cardia(cecar){return(fromhexby4tocar(dia[accent][hexa(cecar)]))}
-function fromhex(inval){out=0;for (a=inval.length-1;a>=0;a--){out+=Math.pow(16,inval.length-a-1)*hexchars.indexOf(inval.charAt(a))}return out}
-function fromhexby4tocar(ceci){out4=new String();for (l=0;l<ceci.length;l+=4){out4+=String.fromCharCode(fromhex(ceci.substring(l,l+4)))}return out4}
-function tohex(inval){return hexchars.charAt(inval/16)+hexchars.charAt(inval%16)}
-function tohex2(inval){return tohex(inval/256)+tohex(inval%256)}
-function hexa(ceci){out="";for (k=0;k<ceci.length;k++){out+=(tohex2(ceci.charCodeAt(k)))}return out}
-function getCk(){
-	fromN=document.cookie.indexOf("langue=")+0;
-	if((fromN)!=-1){
-		fromN+=7;
-		toN=document.cookie.indexOf(";",fromN)+0;
-		if(toN==-1){
-			toN=document.cookie.length
-		}
-		return unescape(document.cookie.substring(fromN,toN))
-	}
-	return ""
-}
-function setCk(inval){
-	if(inval!=null){
-		exp=new Date();
-		time=365*60*60*24*1000;
-		exp.setTime(exp.getTime()+time);
-		document.cookie=escape("langue")+"="+escape(inval)+"; "+"expires="+exp.toGMTString()
-	}
-}
-
-// Arabic Keystroke Translator
-function arkey(e) {
-	if ((document.layers)|(navigator.userAgent.indexOf("MSIE 4")>-1)|(langue!="Arabic")) return true;
-
-	if (!e) var e = window.event;
-	if (e.keyCode) keyCode = e.keyCode;
-	else if (e.which) keyCode = e.which;
-	var character = String.fromCharCode(keyCode);
-
-		entry = true;
-		cont=e.srcElement || e.currentTarget || e.target;
-		if (keyCode>64 && keyCode<91) {
-			entry=false;
-			source='ش لاؤ ي ث ب ل ا ه ت ن م ة ى خ ح ض ق س ف ع ر ص ء غ ئ ';
-			shsource='ِ لآ} ] ُ [ لأأ ÷ ـ ، /   آ × ؛ َ ٌ ٍ لإ  { ً ْ إ ~'; 
-
-			if (e.shiftKey) cont.value += shsource.substr((keyCode-64)*2-2,2);
-			else
-				cont.value += source.substr((keyCode-64)*2-2,2);
-			if (cont.value.substr(cont.value.length-1,1)==' ') cont.value=cont.value.substr(0,cont.value.length-1);
-		}
-		if (e.shiftKey) {
-			if (keyCode==186) {cont.value += ':';entry=false;}
-			if (keyCode==188) {cont.value += ',';entry=false;}
-			if (keyCode==190) {cont.value += '.';entry=false;}
-			if (keyCode==191) {cont.value += 'ØŸ';entry=false;}
-			if (keyCode==192) {cont.value += 'Ù‘';entry=false;}
-			if (keyCode==219) {cont.value += '<';entry=false;}
-			if (keyCode==221) {cont.value += '>';entry=false;}
-		} else {
-			if (keyCode==186||keyCode==59) {cont.value += 'Ùƒ';entry=false;}
-			if (keyCode==188) {cont.value += 'Ùˆ';entry=false;}
-			if (keyCode==190) {cont.value += 'ز';entry=false;}
-			if (keyCode==191) {cont.value += 'ظ';entry=false;}
-			if (keyCode==192) {cont.value += 'Ø°';entry=false;}
-			if (keyCode==219) {cont.value += 'ج';entry=false;}
-			if (keyCode==221) {cont.value += 'د';entry=false;}
-			if (keyCode==222) {cont.value += 'Ø·';entry=false;}
-		}
-	return entry;
-}
-function hold_it(e){
-	if ((document.layers)|(navigator.userAgent.indexOf("MSIE 4")>-1)|(langue!="Arabic")) return true;
-
-	var keyCode;
-	if (!e) var e = window.event;
-	if (e.keyCode) keyCode = e.keyCode;
-	else if (e.which) keyCode = e.which;
-	var character = String.fromCharCode(keyCode);
-	switch(keyCode){
-		case 186:
-		case 188:
-		case 190:
-		case 191:
-		case 192:
-		case 219:
-		case 221:
-		case 222:
-		case 116:
-		case 59:
-		case 47:
-		case 46:
-		case 44:
-		case 39:
-			return false;
-		case 92:
-			return true;
-	}
-		if (keyCode<63) return true;
-		return false;
-	}
-
-var obj = document.getElementById( 'uni_area' );
-if ( obj && langue=="Arabic"){
-	with (navigator) {
-		if (appName=="Netscape")
-			obj.onkeypress = hold_it;
-	}
-	obj.onkeydown = arkey;
-}
-// Arabic Keystroke Translator End
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/dialog/fck_universalkey.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_universalkey.html
- * 	Unicode Keyboard dialog window.
- * 
- * File Authors:
- * 		Abdul-Aziz Al-Oraij (top7up at hotmail.com)
- * 		Michel Staelens
- * 		Bernadette Cierzniak
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<html>
-	<head>
-		<title>Universal Keyboard</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta content="noindex, nofollow" name="robots">
-		<link rel="stylesheet" type="text/css" href="fck_universalkey/fck_universalkey.css" />
-		<script type="text/javascript">
-
-var oEditor = window.parent.InnerDialogLoaded() ;
-
-window.onload = function()
-{
-	document.body.style.padding = '0px' ;
-
-	// First of all, translate the dialog box texts
-	oEditor.FCKLanguageManager.TranslatePage(document) ;
-
-	window.parent.SetOkButton( true ) ;
-	window.parent.SetAutoSize( true ) ;	
-}
-
-function Ok()
-{
-	var oArea = document.getElementById( 'uni_area' ) ;
-
-	if ( oArea.value.length > 0 )
-		oEditor.FCK.InsertHtml( oArea.value ) ;
-
-	return true ;
-}
-
-		</script>
-	</head>
-	<body style="OVERFLOW: hidden" scroll="no">
-		<textarea id="uni_area" cols="40" rows="4" style="width:100%;height:60px;"></textarea>
-		<script type="text/javascript" src="fck_universalkey/data.js"></script>
-		<script type="text/javascript" src="fck_universalkey/diacritic.js"></script>
-		<script type="text/javascript" src="fck_universalkey/dialogue.js"></script>
-		<script type="text/javascript" src="fck_universalkey/multihexa.js"></script>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/fckblank.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/fckblank.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/fckblank.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +0,0 @@
-<html>
-<head><title></title></head>
-<body></body>
-</html>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/fckdebug.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/fckdebug.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/fckdebug.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdebug.html
- * 	This is the Debug window.
- * 	It automatically popups if the Debug = true in the configuration file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Debug window.
+ * It automatically popups if the Debug = true in the configuration file.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
-		<title>FCKeditor Debug Window</title>
-		<script type="text/javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor Debug Window</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<script type="text/javascript">
 
 var oWindow ;
 var oDiv ;
@@ -30,24 +34,62 @@
 if ( !window.FCKMessages )
 	window.FCKMessages = new Array() ;
 
-function Initialize()
+window.onload = function()
 {
-	oWindow = window.frames[ 'eOutput' ]
+	oWindow = document.getElementById('xOutput').contentWindow ;
 	oWindow.document.open() ;
 	oWindow.document.write( '<div id="divMsg"><\/div>' ) ;
 	oWindow.document.close() ;
 	oDiv	= oWindow.document.getElementById('divMsg') ;
 }
 
-function Output( message, color )
+function Output( message, color, noParse )
 {
+	if ( !noParse && message != null && isNaN( message ) )
+		message = message.replace(/</g, "&lt;") ;
+
 	if ( color )
 		message = '<font color="' + color + '">' + message + '<\/font>' ;
-		
+
 	window.FCKMessages[ window.FCKMessages.length ] = message ;
 	StartTimer() ;
 }
 
+function OutputObject( anyObject, color )
+{
+	var message ;
+
+	if ( anyObject != null )
+	{
+		message = 'Properties of: ' + anyObject + '</b><blockquote>' ;
+
+		for (var prop in anyObject)
+		{
+			try
+			{
+				var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ;
+				message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ;
+			}
+			catch (e)
+			{
+				try
+				{
+					message += '<b>' + prop + '</b> : [' + typeof( anyObject[ prop ] ) + ']<br>' ;
+				}
+				catch (e)
+				{
+					message += '<b>' + prop + '</b> : [-error-]<br>' ;
+				}
+			}
+		}
+
+		message += '</blockquote><b>' ;
+	} else
+		message = 'OutputObject : Object is "null".' ;
+
+	Output( message, color, true ) ;
+}
+
 function StartTimer()
 {
 	window.setTimeout( 'CheckMessages()', 100 ) ;
@@ -59,18 +101,18 @@
 	{
 		// Get the first item in the queue
 		var sMessage = window.FCKMessages[0] ;
-		
+
 		// Removes the first item from the queue
 		var oTempArray = new Array() ;
 		for ( i = 1 ; i < window.FCKMessages.length ; i++ )
 			oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;
 		window.FCKMessages = oTempArray ;
-		
+
 		var d = new Date() ;
-		var sTime = 
-			( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' + 
-			( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' + 
-			( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' + 
+		var sTime =
+			( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +
+			( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +
+			( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +
 			( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;
 
 		var oMsgDiv = oWindow.document.createElement( 'div' ) ;
@@ -84,25 +126,28 @@
 {
 	oDiv.innerHTML = '' ;
 }
-		</script>
-	</head>
-	<body onload="Initialize();" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
-		<TABLE height="100%" cellSpacing="5" cellPadding="0" width="100%" border="0">
-			<TR>
-				<TD>
-					<TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
-						<TR>
-							<TD><FONT size="+2"><STRONG>FCKeditor Debug Window</STRONG></FONT></TD>
-							<TD align="right"><INPUT type="button" value="Clear" onclick="Clear();"></TD>
-						</TR>
-					</TABLE>
-				</TD>
-			</TR>
-			<TR>
-				<TD height="100%" style="BORDER-RIGHT: #696969 1px solid; BORDER-TOP: #696969 1px solid; BORDER-LEFT: #696969 1px solid; BORDER-BOTTOM: #696969 1px solid">
-					<iframe id="eOutput" name="eOutput" width="100%" height="100%" scrolling="auto" src="fckblank.html" frameborder="no"></iframe>
-				</TD>
-			</TR>
-		</TABLE>
-	</body>
-</html>
\ No newline at end of file
+	</script>
+</head>
+<body style="margin: 10px">
+	<table style="height: 100%" cellspacing="5" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" width="100%" border="0">
+					<tr>
+						<td style="font-weight: bold; font-size: 1.2em;">
+							FCKeditor Debug Window</td>
+						<td align="right">
+							<input type="button" value="Clear" onclick="Clear();" /></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr style="height: 100%">
+			<td style="border: #696969 1px solid">
+				<iframe id="xOutput" width="100%" height="100%" scrolling="auto" src="javascript:void(0)"
+					frameborder="0"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/fckdialog.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/fckdialog.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/fckdialog.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckdialog.html
- * 	This page is used by all dialog box as the container.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 is used by all dialog box as the container.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml">
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 		<meta name="robots" content="noindex, nofollow" />
@@ -96,7 +100,7 @@
 		if ( iDiff > 0 )
 		{
 			if ( document.all )
-				window.dialogHeight = ( parseInt( window.dialogHeight ) + iDiff ) + 'px' ;
+				window.dialogHeight = ( parseInt( window.dialogHeight, 10 ) + iDiff ) + 'px' ;
 			else
 				window.resizeBy( 0, iDiff ) ;
 		}
@@ -109,8 +113,14 @@
 		Cancel() ;
 }
 
-function Cancel()
+function Cancel( dontFireChange )
 {
+	if ( !dontFireChange )
+	{
+		// All dialog windows, by default, will fire the "OnSelectionChange"
+		// event, no matter the Ok or Cancel button has been pressed.
+		window.dialogArguments.Editor.FCK.Events.FireEvent( 'OnSelectionChange' ) ;
+	}
 	window.close() ;
 }
 
@@ -158,7 +168,6 @@
 	}
 
 	oTabs[ tabCode ] = oDiv ;
-	oTabs[ tabCode ].Index = oTabs.length - 1 ;
 }
 
 function SetSelectedTab( tabCode )
@@ -202,7 +211,8 @@
 		{
 			case 13 :		// ENTER
 				var oTarget = e.srcElement || e.target ;
-				if ( oTarget.tagName == 'TEXTAREA' ) return ;
+				if ( oTarget.tagName == 'TEXTAREA' )
+					return true ;
 				Ok() ;
 				return false ;
 			case 27 :		// ESC
@@ -248,11 +258,6 @@
 	}
 }
 
-window.onfocus = function()
-{
-	document.getElementById('frmMain').contentWindow.focus() ;
-}
-
 if ( window.dialogArguments.Editor.FCKBrowserInfo.IsIE )
 {
 	function Window_OnBeforeUnload()
@@ -265,6 +270,14 @@
 	window.attachEvent( "onbeforeunload", Window_OnBeforeUnload ) ;
 }
 
+function Window_OnClose()
+{
+	window.dialogArguments.Editor.FCKFocusManager.Unlock() ;
+}
+
+if ( window.addEventListener )
+	window.addEventListener( 'unload', Window_OnClose, false ) ;
+
 		</script>
 	</head>
 	<body onload="LoadInnerDialog();" class="PopupBody">
@@ -288,7 +301,7 @@
 			</tr>
 			<tr>
 				<td id="FrameCell" height="100%" valign="top">
-					<iframe id="frmMain" src="fckblank.html" name="frmMain" frameborder="0" height="100%" width="100%" scrolling="auto">
+					<iframe id="frmMain" src="javascript:void(0)" name="frmMain" frameborder="0" height="100%" width="100%" scrolling="auto">
 					</iframe>
 				</td>
 			</tr>
@@ -298,8 +311,9 @@
 						<tr>
 							<td width="100%">&nbsp;</td>
 							<td nowrap="nowrap">
-								<input id="btnOk" style="VISIBILITY: hidden; WIDTH: 100px" type="button" value="Ok" class="Button"
-									onclick="Ok();" fckLang="DlgBtnOK" />&nbsp; <input type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
+								<input id="btnOk" style="VISIBILITY: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" />
+								&nbsp; 
+								<input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
 							</td>
 						</tr>
 					</table>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,58 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditor.html
- * 	Main page that holds the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Main page that holds the editor.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>FCKeditor</title>
-		<meta name="robots" content="noindex, nofollow" />
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-		<script type="text/javascript" src="lang/fcklanguagemanager.js"></script>
-		<meta http-equiv="Cache-Control" content="public">
-		<script type="text/javascript" src="js/fck_startup.js"></script>
-	</head>
-	<body>
-		<table height="100%" width="100%" cellpadding="0" cellspacing="0" border="0" style="TABLE-LAYOUT: fixed">
-			<tr>
-				<td unselectable="on" style="OVERFLOW: hidden">
-					<table width="100%" cellpadding="0" cellspacing="0" border="0">
-						<tr id="Collapsed" style="DISPLAY: none">
-							<td id="ExpandHandle" class="TB_Expand" unselectable="on" colspan="3" onclick="FCKToolbarSet.Expand();return false;"><img class="TB_ExpandImg" src="images/spacer.gif" width="8" height="4" unselectable="on"></td>
-						</tr>
-						<tr id="Expanded" style="DISPLAY: none">
-							<td id="CollapseHandle" style="DISPLAY: none" class="TB_Collapse" 
-								unselectable="on" valign="bottom" onclick="FCKToolbarSet.Collapse();return false;"><img class="TB_CollapseImg" src="images/spacer.gif" width="8" height="4" unselectable="on"></td>
-							<td id="eToolbar" class="TB_ToolbarSet" unselectable="on"></td>
-							<td width="1" class="TB_SideBorder"></td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-			<tr id="eWysiwyg">
-				<td id="eWysiwygCell" height="100%" valign="top">
-					<iframe id="eEditorArea" name="eEditorArea" height="100%" width="100%" frameborder="no" src="fckblank.html"></iframe>
-				</td>
-			</tr>
-			<tr id="eSource" style="DISPLAY: none">
-				<td class="Source" height="100%" valign="top">
-					<textarea id="eSourceField" dir="ltr" style="WIDTH: 100%; HEIGHT: 100%"></textarea>
-				</td>
-			</tr>
-		</table>
-	</body>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="Cache-Control" content="public" />
+	<script type="text/javascript">
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/scr' + 'ipt>' ) ;
+}
+
+function LoadCss( url )
+{
+	document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+if ( FCKBrowserInfo.IsIE )
+{
+	// Remove IE mouse flickering.
+	try
+	{
+		document.execCommand( 'BackgroundImageCache', false, true ) ;
+	}
+	catch (e)
+	{
+		// We have been reported about loading problems caused by the above
+		// line. For safety, let's just ignore errors.
+	}
+
+	// Create the default cleanup object used by the editor.
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+// Load the active skin CSS.
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+// Activate pasting operations.
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
+	FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		_AttachFormSubmitToAPI() ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;
+	}
+}
+
+// Gecko browsers doens't calculate well that IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko )
+{
+	function Window_OnResize()
+	{
+		if ( FCKBrowserInfo.IsOpera )
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement = oCell.firstChild ;
+		if ( eInnerElement )
+		{
+			eInnerElement.style.height = 0 ;
+			eInnerElement.style.height = oCell.scrollHeight - 2 ;
+		}
+	}
+	window.onresize = Window_OnResize ;
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td id="xEditingArea" valign="top" style="height: 100%"></td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.original.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.original.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/fckeditor.original.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,75 +1,319 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditor.original.html
- * 	Main page that holds the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Main page that holds the editor.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>FCKeditor</title>
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> <!-- @Packager.RemoveLine -->
-		<meta name="robots" content="noindex, nofollow" />
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-		<script type="text/javascript" src="lang/fcklanguagemanager.js"></script>
-		<!-- @Packager.RemoveLine
-		<meta http-equiv="Cache-Control" content="public">
-		@Packager.RemoveLine -->
-		<!-- @Packager.Remove.Start -->
-		<script type="text/javascript" src="_source/internals/fcknamespace.js"></script>
-		<script type="text/javascript" src="_source/internals/fckcoreextensions.js"></script>
-		<script type="text/javascript" src="_source/globals/fck_constants.js"></script>
-		<script type="text/javascript" src="_source/internals/fckbrowserinfo.js"></script>
-		<script type="text/javascript" src="_source/internals/fckscriptloader.js"></script>
-		<script type="text/javascript" src="_source/internals/fckurlparams.js"></script>
-		<script type="text/javascript" src="_source/internals/fck.js"></script>
-		<script type="text/javascript" src="_source/internals/fckconfig.js"></script>
-		<script type="text/javascript" src="_source/globals/fckeditorapi.js"></script>
-		<script type="text/javascript" src="_source/internals/fck_onload.js"></script>
-		<!-- @Packager.Remove.End -->
-		<!-- @Packager.RemoveLine
-		<script type="text/javascript" src="js/fck_startup.js"></script>
-		@Packager.RemoveLine -->
-	</head>
-	<body>
-		<table height="100%" width="100%" cellpadding="0" cellspacing="0" border="0" style="TABLE-LAYOUT: fixed">
-			<tr>
-				<td unselectable="on" style="OVERFLOW: hidden">
-					<table width="100%" cellpadding="0" cellspacing="0" border="0">
-						<tr id="Collapsed" style="DISPLAY: none">
-							<td id="ExpandHandle" class="TB_Expand" unselectable="on" colspan="3" onclick="FCKToolbarSet.Expand();return false;"><img class="TB_ExpandImg" src="images/spacer.gif" width="8" height="4" unselectable="on"></td>
-						</tr>
-						<tr id="Expanded" style="DISPLAY: none">
-							<td id="CollapseHandle" style="DISPLAY: none" class="TB_Collapse" 
-								unselectable="on" valign="bottom" onclick="FCKToolbarSet.Collapse();return false;"><img class="TB_CollapseImg" src="images/spacer.gif" width="8" height="4" unselectable="on"></td>
-							<td id="eToolbar" class="TB_ToolbarSet" unselectable="on"></td>
-							<td width="1" class="TB_SideBorder"></td>
-						</tr>
-					</table>
-				</td>
-			</tr>
-			<tr id="eWysiwyg">
-				<td id="eWysiwygCell" height="100%" valign="top">
-					<iframe id="eEditorArea" name="eEditorArea" height="100%" width="100%" frameborder="no" src="fckblank.html"></iframe>
-				</td>
-			</tr>
-			<tr id="eSource" style="DISPLAY: none">
-				<td class="Source" height="100%" valign="top">
-					<textarea id="eSourceField" dir="ltr" style="WIDTH: 100%; HEIGHT: 100%"></textarea>
-				</td>
-			</tr>
-		</table>
-	</body>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor</title>
+	<meta name="robots" content="noindex, nofollow" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<!-- @Packager.RemoveLine
+	<meta http-equiv="Cache-Control" content="public" />
+	@Packager.RemoveLine -->
+	<script type="text/javascript">
+
+// Instead of loading scripts and CSSs using inline tags, all scripts are
+// loaded by code. In this way we can guarantee the correct processing order,
+// otherwise external scripts and inline scripts could be executed in an
+// unwanted order (IE).
+
+function LoadScript( url )
+{
+	document.write( '<scr' + 'ipt type="text/javascript" src="' + url + '" onerror="alert(\'Error loading \' + this.src);"><\/scr' + 'ipt>' ) ;
+}
+
+function LoadCss( url )
+{
+	document.write( '<link href="' + url + '" type="text/css" rel="stylesheet" onerror="alert(\'Error loading \' + this.src);" />' ) ;
+}
+
+// Main editor scripts.
+var sSuffix = /msie/.test( navigator.userAgent.toLowerCase() ) ? 'ie' : 'gecko' ;
+
+/* @Packager.RemoveLine
+LoadScript( 'js/fckeditorcode_' + sSuffix + '.js' ) ;
+ at Packager.RemoveLine */
+// @Packager.Remove.Start
+
+LoadScript( '_source/fckconstants.js' ) ;
+LoadScript( '_source/fckjscoreextensions.js' ) ;
+
+if ( sSuffix == 'ie' )
+	LoadScript( '_source/classes/fckiecleanup.js' ) ;
+
+LoadScript( '_source/internals/fckbrowserinfo.js' ) ;
+LoadScript( '_source/internals/fckurlparams.js' ) ;
+LoadScript( '_source/classes/fckevents.js' ) ;
+LoadScript( '_source/internals/fck.js' ) ;
+LoadScript( '_source/internals/fck_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckconfig.js' ) ;
+
+LoadScript( '_source/internals/fckdebug.js' ) ;
+LoadScript( '_source/internals/fckdomtools.js' ) ;
+LoadScript( '_source/internals/fcktools.js' ) ;
+LoadScript( '_source/internals/fcktools_' + sSuffix + '.js' ) ;
+LoadScript( '_source/fckeditorapi.js' ) ;
+LoadScript( '_source/classes/fckimagepreloader.js' ) ;
+LoadScript( '_source/internals/fckregexlib.js' ) ;
+LoadScript( '_source/internals/fcklistslib.js' ) ;
+LoadScript( '_source/internals/fcklanguagemanager.js' ) ;
+LoadScript( '_source/internals/fckxhtmlentities.js' ) ;
+LoadScript( '_source/internals/fckxhtml.js' ) ;
+LoadScript( '_source/internals/fckxhtml_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fckcodeformatter.js' ) ;
+LoadScript( '_source/internals/fckundo_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckeditingarea.js' ) ;
+LoadScript( '_source/classes/fckkeystrokehandler.js' ) ;
+
+LoadScript( '_source/internals/fcklisthandler.js' ) ;
+LoadScript( '_source/classes/fckelementpath.js' ) ;
+LoadScript( '_source/classes/fckdomrange.js' ) ;
+LoadScript( '_source/classes/fckdocumentfragment_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckw3crange.js' ) ;
+LoadScript( '_source/classes/fckdomrange_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckenterkey.js' ) ;
+
+LoadScript( '_source/internals/fckdocumentprocessor.js' ) ;
+LoadScript( '_source/internals/fckselection.js' ) ;
+LoadScript( '_source/internals/fckselection_' + sSuffix + '.js' ) ;
+
+LoadScript( '_source/internals/fcktablehandler.js' ) ;
+LoadScript( '_source/internals/fcktablehandler_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckxml_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckstyledef.js' ) ;
+LoadScript( '_source/classes/fckstyledef_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckstylesloader.js' ) ;
+
+LoadScript( '_source/commandclasses/fcknamedcommand.js' ) ;
+LoadScript( '_source/commandclasses/fck_othercommands.js' ) ;
+LoadScript( '_source/commandclasses/fckspellcheckcommand_' + sSuffix + '.js' ) ;
+LoadScript( '_source/commandclasses/fcktextcolorcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpasteplaintextcommand.js' ) ;
+LoadScript( '_source/commandclasses/fckpastewordcommand.js' ) ;
+LoadScript( '_source/commandclasses/fcktablecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckstylecommand.js' ) ;
+LoadScript( '_source/commandclasses/fckfitwindow.js' ) ;
+LoadScript( '_source/internals/fckcommands.js' ) ;
+
+LoadScript( '_source/classes/fckpanel.js' ) ;
+LoadScript( '_source/classes/fckicon.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbuttonui.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbutton.js' ) ;
+LoadScript( '_source/classes/fckspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarspecialcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontscombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontsizecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarfontformatcombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarstylecombo.js' ) ;
+LoadScript( '_source/classes/fcktoolbarpanelbutton.js' ) ;
+LoadScript( '_source/internals/fcktoolbaritems.js' ) ;
+LoadScript( '_source/classes/fcktoolbar.js' ) ;
+LoadScript( '_source/classes/fcktoolbarbreak_' + sSuffix + '.js' ) ;
+LoadScript( '_source/internals/fcktoolbarset.js' ) ;
+LoadScript( '_source/internals/fckdialog.js' ) ;
+LoadScript( '_source/internals/fckdialog_' + sSuffix + '.js' ) ;
+LoadScript( '_source/classes/fckmenuitem.js' ) ;
+LoadScript( '_source/classes/fckmenublock.js' ) ;
+LoadScript( '_source/classes/fckmenublockpanel.js' ) ;
+LoadScript( '_source/classes/fckcontextmenu.js' ) ;
+LoadScript( '_source/internals/fck_contextmenu.js' ) ;
+LoadScript( '_source/classes/fckplugin.js' ) ;
+LoadScript( '_source/internals/fckplugins.js' ) ;
+
+// @Packager.Remove.End
+
+// Base configuration file.
+LoadScript( '../fckconfig.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+if ( FCKBrowserInfo.IsIE )
+{
+	// Remove IE mouse flickering.
+	try
+	{
+		document.execCommand( 'BackgroundImageCache', false, true ) ;
+	}
+	catch (e)
+	{
+		// We have been reported about loading problems caused by the above
+		// line. For safety, let's just ignore errors.
+	}
+
+	// Create the default cleanup object used by the editor.
+	FCK.IECleanup = new FCKIECleanup( window ) ;
+	FCK.IECleanup.AddItem( FCKTempBin, FCKTempBin.Reset ) ;
+	FCK.IECleanup.AddItem( FCK, FCK_Cleanup ) ;
+}
+
+// The config hidden field is processed immediately, because
+// CustomConfigurationsPath may be set in the page.
+FCKConfig.ProcessHiddenField() ;
+
+// Load the custom configurations file (if defined).
+if ( FCKConfig.CustomConfigurationsPath.length > 0 )
+	LoadScript( FCKConfig.CustomConfigurationsPath ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Load configurations defined at page level.
+FCKConfig_LoadPageConfig() ;
+
+FCKConfig_PreProcess() ;
+
+// Load the active skin CSS.
+LoadCss( FCKConfig.SkinPath + 'fck_editor.css' ) ;
+
+// Load the language file.
+FCKLanguageManager.Initialize() ;
+LoadScript( 'lang/' + FCKLanguageManager.ActiveLanguage.Code + '.js' ) ;
+
+	</script>
+	<script type="text/javascript">
+
+// Initialize the editing area context menu.
+FCK_ContextMenu_Init() ;
+
+FCKPlugins.Load() ;
+
+	</script>
+	<script type="text/javascript">
+
+// Set the editor interface direction.
+window.document.dir = FCKLang.Dir ;
+
+// Activate pasting operations.
+if ( FCKConfig.ForcePasteAsPlainText || FCKConfig.AutoDetectPasteFromWord )
+	FCK.Events.AttachEvent( 'OnPaste', FCK.Paste ) ;
+
+	</script>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	InitializeAPI() ;
+
+	if ( FCKBrowserInfo.IsIE )
+		FCK_PreloadImages() ;
+	else
+		LoadToolbarSetup() ;
+}
+
+function LoadToolbarSetup()
+{
+	FCKeditorAPI._FunctionQueue.Add( LoadToolbar ) ;
+}
+
+function LoadToolbar()
+{
+	var oToolbarSet = FCK.ToolbarSet = FCKToolbarSet_Create() ;
+
+	if ( oToolbarSet.IsLoaded )
+		StartEditor() ;
+	else
+	{
+		oToolbarSet.OnLoad = StartEditor ;
+		oToolbarSet.Load( FCKURLParams['Toolbar'] || 'Default' ) ;
+	}
+}
+
+function StartEditor()
+{
+	// Remove the onload listener.
+	FCK.ToolbarSet.OnLoad = null ;
+
+	FCKeditorAPI._FunctionQueue.Remove( LoadToolbar ) ;
+
+	FCK.Events.AttachEvent( 'OnStatusChange', WaitForActive ) ;
+
+	// Start the editor.
+	FCK.StartEditor() ;
+}
+
+function WaitForActive( editorInstance, newStatus )
+{
+	if ( newStatus == FCK_STATUS_ACTIVE )
+	{
+		if ( FCKBrowserInfo.IsGecko )
+			FCKTools.RunFunction( window.onresize ) ;
+
+		_AttachFormSubmitToAPI() ;
+
+		FCK.SetStatus( FCK_STATUS_COMPLETE ) ;
+
+		// Call the special "FCKeditor_OnComplete" function that should be present in
+		// the HTML page where the editor is located.
+		if ( typeof( window.parent.FCKeditor_OnComplete ) == 'function' )
+			window.parent.FCKeditor_OnComplete( FCK ) ;
+	}
+}
+
+// Gecko browsers doens't calculate well that IFRAME size so we must
+// recalculate it every time the window size changes.
+if ( FCKBrowserInfo.IsGecko )
+{
+	function Window_OnResize()
+	{
+		if ( FCKBrowserInfo.IsOpera )
+			return ;
+
+		var oCell = document.getElementById( 'xEditingArea' ) ;
+
+		var eInnerElement = oCell.firstChild ;
+		if ( eInnerElement )
+		{
+			eInnerElement.style.height = 0 ;
+			eInnerElement.style.height = oCell.scrollHeight - 2 ;
+		}
+	}
+	window.onresize = Window_OnResize ;
+}
+
+	</script>
+</head>
+<body>
+	<table width="100%" cellpadding="0" cellspacing="0" style="height: 100%; table-layout: fixed">
+		<tr id="xToolbarRow" style="display: none">
+			<td id="xToolbarSpace" style="overflow: hidden">
+				<table width="100%" cellpadding="0" cellspacing="0">
+					<tr id="xCollapsed" style="display: none">
+						<td id="xExpandHandle" class="TB_Expand" colspan="3">
+							<img class="TB_ExpandImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+					</tr>
+					<tr id="xExpanded" style="display: none">
+						<td id="xTBLeftBorder" class="TB_SideBorder" style="width: 1px; display: none;"></td>
+						<td id="xCollapseHandle" style="display: none" class="TB_Collapse" valign="bottom">
+							<img class="TB_CollapseImg" alt="" src="images/spacer.gif" width="8" height="4" /></td>
+						<td id="xToolbar" class="TB_ToolbarSet"></td>
+						<td class="TB_SideBorder" style="width: 1px"></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+		<tr>
+			<td id="xEditingArea" valign="top" style="height: 100%"></td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: browser.css
- * 	CSS styles used by all pages that compose the File Browser.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * CSS styles used by all pages that compose the File Browser.
  */
 
 body

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/browser.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: browser.html
- * 	This page compose the File Browser dialog frameset.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 compose the File Browser dialog frameset.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<title>FCKeditor - Resources Browser</title>
@@ -28,9 +32,9 @@
 {
 	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
 	var oMatch = oRegex.exec( window.top.location.search ) ;
-	
+
 	if ( oMatch && oMatch.length > 1 )
-		return oMatch[1] ;
+		return decodeURIComponent( oMatch[1] ) ;
 	else
 		return '' ;
 }
@@ -48,7 +52,7 @@
 
 var sServerPath = GetUrlParam( 'ServerPath' ) ;
 if ( sServerPath.length > 0 )
-	oConnector.ConnectorUrl += 'ServerPath=' + escape( sServerPath ) + '&' ;
+	oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;
 
 oConnector.ResourceType		= GetUrlParam( 'Type' ) ;
 oConnector.ShowAllTypes		= ( oConnector.ResourceType.length == 0 ) ;
@@ -60,27 +64,29 @@
 {
 	var sUrl = this.ConnectorUrl + 'Command=' + command ;
 	sUrl += '&Type=' + this.ResourceType ;
-	sUrl += '&CurrentFolder=' + escape( this.CurrentFolder ) ;
-	
+	sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;
+
 	if ( params ) sUrl += '&' + params ;
 
 	var oXML = new FCKXml() ;
-	
+
 	if ( callBackFunction )
 		oXML.LoadUrl( sUrl, callBackFunction ) ;	// Asynchronous load.
 	else
 		return oXML.LoadUrl( sUrl ) ;
+
+	return null ;
 }
 
 oConnector.CheckError = function( responseXml )
 {
-	var iErrorNumber = 0
+	var iErrorNumber = 0 ;
 	var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;
-	
+
 	if ( oErrorNode )
 	{
-		iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value ) ;
-		
+		iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ;
+
 		switch ( iErrorNumber )
 		{
 			case 0 :
@@ -110,10 +116,10 @@
 
 var oIcons = new Object() ;
 
-oIcons.AvailableIconsArray = [ 
+oIcons.AvailableIconsArray = [
 	'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
-	'mdb','mp3','pdf','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
-	
+	'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
+
 oIcons.AvailableIcons = new Object() ;
 
 for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
@@ -130,18 +136,18 @@
 }
 		</script>
 	</head>
-	<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="yes">
+	<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">
 		<frameset rows="50,*" framespacing="0">
-			<frame src="frmresourcetype.html" scrolling="no" frameborder="no">
-			<frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="yes">
+			<frame src="frmresourcetype.html" scrolling="no" frameborder="0">
+			<frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="1">
 		</frameset>
 		<frameset rows="50,*,50" framespacing="0">
-			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="no">
-			<frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="yes">
-			<frameset cols="150,*,0" framespacing="0" frameborder="no">
-				<frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="no">
-				<frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="no">
-				<frame name="frmUploadWorker" src="../../../fckblank.html" scrolling="no" frameborder="no">
+			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="0">
+			<frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="1">
+			<frameset cols="150,*,0" framespacing="0" frameborder="0">
+				<frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="0">
+				<frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="0">
+				<frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">
 			</frameset>
 		</frameset>
 	</frameset>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/basexml.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: basexml.asp
- * 	This file include the functions that create the base XML output.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file include the functions that create the base XML output.
 -->
 <%
 
@@ -36,7 +40,7 @@
 
 	' Create the main "Connector" node.
 	Response.Write "<Connector command=""" & command & """ resourceType=""" & resourceType & """>"
-	
+
 	' Add the current folder node.
 	Response.Write "<CurrentFolder path=""" & ConvertToXmlAttribute( currentFolder ) & """ url=""" & ConvertToXmlAttribute( GetUrlFromPath( resourceType, currentFolder) ) & """ />"
 End Sub
@@ -47,12 +51,12 @@
 
 Sub SendError( number, text )
 	SetXmlHeaders
-	
+
 	' Create the XML document header.
 	Response.Write "<?xml version=""1.0"" encoding=""utf-8"" ?>"
-	
+
 	Response.Write "<Connector><Error number=""" & number & """ text=""" & Server.HTMLEncode( text ) & """ /></Connector>"
-	
+
 	Response.End
 End Sub
 %>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/class_upload.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: class_upload.asp
- * 	These are the classes used to handle ASP upload without using third
- * 	part components (OCX/DLL).
- * 
- * File Authors:
- * 		NetRube (netrube at 126.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * These are the classes used to handle ASP upload without using third
+ * part components (OCX/DLL).
 -->
 <%
 '**********************************************
@@ -46,32 +50,32 @@
 	Public	File, Form
 	Private oSourceData
 	Private nMaxSize, nErr, sAllowed, sDenied
-	
+
 	Private Sub Class_Initialize
 		nErr		= 0
 		nMaxSize	= 1048576
-		
+
 		Set File			= Server.CreateObject("Scripting.Dictionary")
 		File.CompareMode	= 1
 		Set Form			= Server.CreateObject("Scripting.Dictionary")
 		Form.CompareMode	= 1
-		
+
 		Set oSourceData		= Server.CreateObject("ADODB.Stream")
 		oSourceData.Type	= 1
 		oSourceData.Mode	= 3
 		oSourceData.Open
 	End Sub
-	
+
 	Private Sub Class_Terminate
 		Form.RemoveAll
 		Set Form = Nothing
 		File.RemoveAll
 		Set File = Nothing
-		
+
 		oSourceData.Close
 		Set oSourceData = Nothing
 	End Sub
-	
+
 	Public Property Get Version
 		Version = "NetRube Upload Class Version 1.0 Build 20041218"
 	End Property
@@ -79,15 +83,15 @@
 	Public Property Get ErrNum
 		ErrNum	= nErr
 	End Property
-	
+
 	Public Property Let MaxSize(nSize)
 		nMaxSize	= nSize
 	End Property
-	
+
 	Public Property Let Allowed(sExt)
 		sAllowed	= sExt
 	End Property
-	
+
 	Public Property Let Denied(sExt)
 		sDenied	= sExt
 	End Property
@@ -99,7 +103,7 @@
 			nErr = 1
 			Exit Sub
 		End If
-		
+
 		Dim nTotalSize
 		nTotalSize	= Request.TotalBytes
 		If nTotalSize < 1 Then
@@ -110,23 +114,23 @@
 			nErr = 3
 			Exit Sub
 		End If
-		
+
 		oSourceData.Write Request.BinaryRead(nTotalSize)
 		oSourceData.Position = 0
-		
+
 		Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
-		
+
 		oTotalData	= oSourceData.Read
 		bCrLf		= ChrB(13) & ChrB(10)
 		sBoundary	= MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
 		nBoundLen	= LenB(sBoundary) + 2
 		nFormStart	= nBoundLen
-		
+
 		Set oFormStream = Server.CreateObject("ADODB.Stream")
-		
+
 		Do While (nFormStart + 2) < nTotalSize
 			nFormEnd	= InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
-			
+
 			With oFormStream
 				.Type	= 1
 				.Mode	= 3
@@ -139,12 +143,12 @@
 				sFormHeader	= .ReadText
 				.Close
 			End With
-			
+
 			nFormStart	= InStrB(nFormEnd, oTotalData, sBoundary) - 1
 			nPosStart	= InStr(22, sFormHeader, " name=", 1) + 7
 			nPosEnd		= InStr(nPosStart, sFormHeader, """")
 			sFormName	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
-			
+
 			If InStr(45, sFormHeader, " filename=", 1) > 0 Then
 				Set File(sFormName)			= New NetRube_FileInfo
 				File(sFormName).FormName	= sFormName
@@ -172,10 +176,10 @@
 					.Close
 				End With
 			End If
-			
+
 			nFormStart	= nFormStart + nBoundLen
 		Loop
-		
+
 		oTotalData = ""
 		Set oFormStream = Nothing
 	End Sub
@@ -185,12 +189,12 @@
 			nErr = 2
 			Exit Sub
 		End If
-		
+
 		If Not IsAllowed(File(sItem).Ext) Then
 			nErr = 4
 			Exit Sub
 		End If
-		
+
 		Dim oFileStream
 		Set oFileStream = Server.CreateObject("ADODB.Stream")
 		With oFileStream
@@ -205,13 +209,13 @@
 		End With
 		Set oFileStream = Nothing
 	End Sub
-	
+
 	Private Function IsAllowed(sExt)
 		Dim oRE
 		Set oRE	= New RegExp
 		oRE.IgnoreCase	= True
 		oRE.Global		= True
-		
+
 		If sDenied = "" Then
 			oRE.Pattern	= sAllowed
 			IsAllowed	= (sAllowed = "") Or oRE.Test(sExt)
@@ -219,7 +223,7 @@
 			oRE.Pattern	= sDenied
 			IsAllowed	= Not oRE.Test(sExt)
 		End If
-		
+
 		Set oRE	= Nothing
 	End Function
 End Class

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/commands.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: commands.asp
- * 	This file include the functions that handle the Command requests
- * 	in the ASP Connector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file include the functions that handle the Command requests
+ * in the ASP Connector.
 -->
 <%
 Sub GetFolders( resourceType, currentFolder )
@@ -34,9 +38,9 @@
 	For Each oFolder in oFolders
 		Response.Write "<Folder name=""" & ConvertToXmlAttribute( oFolder.name ) & """ />"
 	Next
-	
+
 	Set oFSO = Nothing
-	
+
 	' Close the "Folders" node.
 	Response.Write "</Folders>"
 End Sub
@@ -51,28 +55,28 @@
 	Set oCurrentFolder = oFSO.GetFolder( sServerDir )
 	Set oFolders	= oCurrentFolder.SubFolders
 	Set oFiles		= oCurrentFolder.Files
-	
+
 	' Open the "Folders" node.
 	Response.Write "<Folders>"
-	
+
 	For Each oFolder in oFolders
 		Response.Write "<Folder name=""" & ConvertToXmlAttribute( oFolder.name ) & """ />"
 	Next
-	
+
 	' Close the "Folders" node.
 	Response.Write "</Folders>"
-		
+
 	' Open the "Files" node.
 	Response.Write "<Files>"
-	
+
 	For Each oFile in oFiles
 		Dim iFileSize
 		iFileSize = Round( oFile.size / 1024 )
 		If ( iFileSize < 1 AND oFile.size <> 0 ) Then iFileSize = 1
-		
+
 		Response.Write "<File name=""" & ConvertToXmlAttribute( oFile.name ) & """ size=""" & iFileSize & """ />"
 	Next
-	
+
 	' Close the "Files" node.
 	Response.Write "</Files>"
 End Sub
@@ -89,17 +93,17 @@
 		' Map the virtual path to the local server path of the current folder.
 		Dim sServerDir
 		sServerDir = ServerMapFolder( resourceType, currentFolder & "/" & sNewFolderName )
-		
+
 		On Error Resume Next
 
 		CreateServerFolder sServerDir
-		
+
 		Dim iErrNumber, sErrDescription
 		iErrNumber		= err.number
 		sErrDescription	= err.Description
-		
+
 		On Error Goto 0
-		
+
 		Select Case iErrNumber
 			Case 0
 				sErrorNumber = "0"
@@ -128,7 +132,7 @@
 
 	Dim sErrorNumber
 	sErrorNumber = "0"
-	
+
 	Dim sFileName, sOriginalFileName, sExtension
 	sFileName = ""
 
@@ -141,7 +145,7 @@
 
 		Dim oFSO
 		Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
-	
+
 		' Get the uploaded file name.
 		sFileName	= oUploader.File( "NewFile" ).Name
 		sExtension	= oUploader.File( "NewFile" ).Ext

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/config.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,37 +1,41 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: config.asp
- * 	Configuration file for the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the File Manager Connector for ASP.
 -->
 <%
 
-' SECURITY: You must explicitelly enable this "connector" (set it to "True"). 
+' SECURITY: You must explicitelly enable this "connector" (set it to "True").
 Dim ConfigIsEnabled
 ConfigIsEnabled = False
 
 ' Path to user files relative to the document root.
 Dim ConfigUserFilesPath
-ConfigUserFilesPath = "/UserFiles/"
+ConfigUserFilesPath = "/userfiles/"
 
 Dim ConfigAllowedExtensions, ConfigDeniedExtensions
 Set ConfigAllowedExtensions	= CreateObject( "Scripting.Dictionary" )
 Set ConfigDeniedExtensions	= CreateObject( "Scripting.Dictionary" )
 
 ConfigAllowedExtensions.Add	"File", ""
-ConfigDeniedExtensions.Add	"File", "php|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg"
+ConfigDeniedExtensions.Add	"File", "html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis"
 
 ConfigAllowedExtensions.Add	"Image", "jpg|gif|jpeg|png|bmp"
 ConfigDeniedExtensions.Add	"Image", ""

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/connector.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,29 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <%
 Option Explicit
+Response.Buffer = True
 %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: connector.asp
- * 	This is the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 ASP.
 -->
 <!--#include file="config.asp"-->
 <!--#include file="util.asp"-->
@@ -42,7 +47,7 @@
 		sUserFilesPath = sUserFilesPath & "/"
 	End If
 Else
-	sUserFilesPath = "/UserFiles/"
+	sUserFilesPath = "/userfiles/"
 End If
 
 ' Map the "UserFiles" path to a local directory.
@@ -57,14 +62,14 @@
 
 Sub DoResponse()
 	Dim sCommand, sResourceType, sCurrentFolder
-	
+
 	' Get the main request information.
 	sCommand = Request.QueryString("Command")
 	If ( sCommand = "" ) Then Exit Sub
 
 	sResourceType = Request.QueryString("Type")
 	If ( sResourceType = "" ) Then Exit Sub
-	
+
 	sCurrentFolder = Request.QueryString("CurrentFolder")
 	If ( sCurrentFolder = "" ) Then Exit Sub
 
@@ -78,7 +83,7 @@
 	' Check for invalid folder paths (..)
 	If ( InStr( 1, sCurrentFolder, ".." ) <> 0 OR InStr( 1, sResourceType, ".." ) <> 0 ) Then
 		SendError 102, ""
-	End If 
+	End If
 
 	' File Upload doesn't have to Return XML, so it must be intercepted before anything.
 	If ( sCommand = "FileUpload" ) Then
@@ -87,7 +92,7 @@
 	End If
 
 	SetXmlHeaders
-	
+
 	CreateXmlHeader sCommand, sResourceType, sCurrentFolder
 
 	' Execute the required command.
@@ -111,9 +116,9 @@
 	oRE.IgnoreCase	= True
 	oRE.Global		= True
 	oRE.Pattern		= "^(File|Image|Flash|Media)$"
-	
+
 	IsAllowedType = oRE.Test( resourceType )
-	
+
 	Set oRE	= Nothing
 End Function
 %>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/io.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +1,31 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: io.asp
- * 	This file include IO specific functions used by the ASP Connector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file include IO specific functions used by the ASP Connector.
 -->
 <%
 Function GetUrlFromPath( resourceType, folderPath )
 	If resourceType = "" Then
 		GetUrlFromPath = RemoveFromEnd( sUserFilesPath, "/" ) & folderPath
 	Else
-		GetUrlFromPath = sUserFilesPath & resourceType & folderPath
+		GetUrlFromPath = sUserFilesPath & LCase( resourceType ) & folderPath
 	End If
 End Function
 
@@ -32,8 +36,8 @@
 Function ServerMapFolder( resourceType, folderPath )
 	' Get the resource type directory.
 	Dim sResourceTypePath
-	sResourceTypePath = sUserFilesDirectory & resourceType & "\"
-	
+	sResourceTypePath = sUserFilesDirectory & LCase( resourceType ) & "\"
+
 	' Ensure that the directory exists.
 	CreateServerFolder sResourceTypePath
 
@@ -44,17 +48,17 @@
 Sub CreateServerFolder( folderPath )
 	Dim oFSO
 	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
-	
+
 	Dim sParent
 	sParent = oFSO.GetParentFolderName( folderPath )
-	
+
 	' Check if the parent exists, or create it.
 	If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent )
-	
-	If ( oFSO.FolderExists( folderPath ) = False ) Then 
+
+	If ( oFSO.FolderExists( folderPath ) = False ) Then
 		oFSO.CreateFolder( folderPath )
 	End If
-	
+
 	Set oFSO = Nothing
 End Sub
 
@@ -63,23 +67,23 @@
 	Set oRE	= New RegExp
 	oRE.IgnoreCase	= True
 	oRE.Global		= True
-	
+
 	Dim sAllowed, sDenied
 	sAllowed	= ConfigAllowedExtensions.Item( resourceType )
 	sDenied		= ConfigDeniedExtensions.Item( resourceType )
-	
+
 	IsAllowedExt = True
-	
+
 	If sDenied <> "" Then
 		oRE.Pattern	= sDenied
 		IsAllowedExt	= Not oRE.Test( extension )
-	End If 
-	
+	End If
+
 	If IsAllowedExt And sAllowed <> "" Then
 		oRE.Pattern		= sAllowed
 		IsAllowedExt	= oRE.Test( extension )
 	End If
-	
+
 	Set oRE	= Nothing
 End Function
 %>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/asp/util.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: util.asp
- * 	This file include generic functions used by the ASP Connector.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file include generic functions used by the ASP Connector.
 -->
 <%
 Function RemoveFromStart( sourceString, charToRemove )

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,30 @@
 <%@ Page language="c#" Inherits="FredCK.FCKeditorV2.FileBrowserConnector" AutoEventWireup="false" %>
 <%--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: connector.aspx
- * 	This is the File Browser Connector for ASP.NET.
- * 	
- * 	The code of this page if included in the FCKeditor.Net package, 
- * 	in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must 
- * 	include that DLL in your "bin" directory.
- * 	
- * 	To download the FCKeditor.Net package, go to our official web site:
- * 	http://www.fckeditor.net
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Browser Connector for ASP.NET.
+ *
+ * The code of this page if included in the FCKeditor.Net package,
+ * in the FredCK.FCKeditorV2.dll assembly file. So to use it you must
+ * include that DLL in your "bin" directory.
+ *
+ * To download the FCKeditor.Net package, go to our official web site:
+ * http://www.fckeditor.net
 --%>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/config.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,47 @@
 <cfsetting enablecfoutputonly="Yes">
-
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+--->
 <cfscript>
 	config = structNew();
-	
+
 	// SECURITY: You must explicitly enable this "connector". (Set enabled to "true")
 	config.enabled = false;
-	
-	config.userFilesPath = "/UserFiles/";
-	
+
+	config.userFilesPath = "/userfiles/";
+
 	config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
-	
+
 	config.allowedExtensions = structNew();
 	config.deniedExtensions = structNew();
-	
+
 	// config.allowedExtensions["File"] = "doc,rtf,pdf,ppt,pps,xls,csv,vnd,zip";
 	config.allowedExtensions["File"] = "";
-	config.deniedExtensions["File"] = "php,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg";
-	
+	config.deniedExtensions["File"] = "html,htm,php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi,htaccess,asis";
+
 	config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
 	config.deniedExtensions["Image"] = "";
-	
+
 	config.allowedExtensions["Flash"] = "swf,fla";
 	config.deniedExtensions["Flash"] = "";
-	
+
 	config.allowedExtensions["Media"] = "swf,fla,jpg,gif,jpeg,png,avi,mpg,mpeg,mp3,mp4,m4a,wma,wmv,wav,mid,midi,rmi,rm,ram,rmvb,mov,qt";
 	config.deniedExtensions["Media"] = "";
 </cfscript>
@@ -35,11 +54,11 @@
 	</cflock>
 
 <cfelseif isDefined("server.userFilesPath")>
-	
+
 	<cflock scope="server" type="readonly" timeout="5">
 	<cfset config.userFilesPath = server.userFilesPath>
 	</cflock>
-	
+
 </cfif>
 
 <!--- look for config struct in request, application and server scopes --->

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/cfm/connector.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,42 @@
 <cfsetting enablecfoutputonly="yes" showdebugoutput="no">
-<!--- @Packager.Header
-<FileDescription>
-	File Browser connector for ColdFusion.
-	(based on the original CF connector by Hendrik Kramer - hk at lwd.de)
-
-	Note: 
-	FCKeditor requires that the connector responds with UTF-8 encoded XML.
-	As ColdFusion 5 does not fully support UTF-8 encoding, we force ASCII 
-	file and folder names in this connector to allow CF5 send a UTF-8 
-	encoded response - code points under 127 in UTF-8 are stored using a 
-	single byte, using the same encoding as ASCII, which is damn handy. 
-	This is all grand for the English speakers, like meself, but I dunno 
-	how others are gonna take to it. Well, the previous version of this 
-	connector already did this with file names and nobody seemed to mind, 
-	so fingers-crossed nobody will mind their folder names being munged too.
-	  
-</FileDescription>
-<Author name="Mark Woods" email="mark at thickpaddy.com" />
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * File Browser connector for ColdFusion.
+ * (based on the original CF connector by Hendrik Kramer - hk at lwd.de)
+ *
+ * Note:
+ * FCKeditor requires that the connector responds with UTF-8 encoded XML.
+ * As ColdFusion 5 does not fully support UTF-8 encoding, we force ASCII
+ * file and folder names in this connector to allow CF5 send a UTF-8
+ * encoded response - code points under 127 in UTF-8 are stored using a
+ * single byte, using the same encoding as ASCII, which is damn handy.
+ * This is all grand for the English speakers, like meself, but I dunno
+ * how others are gonna take to it. Well, the previous version of this
+ * connector already did this with file names and nobody seemed to mind,
+ * so fingers-crossed nobody will mind their folder names being munged too.
+ *
 --->
 
 <cfparam name="url.command">
-<cfparam name="url.type"> 
+<cfparam name="url.type">
 <cfparam name="url.currentFolder">
 <!--- note: no serverPath url parameter - see config.cfm if you need to set the serverPath manually --->
 
@@ -30,17 +46,13 @@
 	userFilesPath = config.userFilesPath;
 	lAllowedExtensions = config.allowedExtensions[url.type];
 	lDeniedExtensions = config.deniedExtensions[url.type];
-	
+
 	// make sure the user files path is correctly formatted
 	userFilesPath = replace(userFilesPath, "\", "/", "ALL");
-	userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
 	if ( right(userFilesPath,1) neq "/" ) {
 		userFilesPath = userFilesPath & "/";
 	}
-	if ( left(userFilesPath,1) neq "/" ) {
-		userFilesPath = "/" & userFilesPath;
-	}
-	
+
 	// make sure the current folder is correctly formatted
 	url.currentFolder = replace(url.currentFolder, "\", "/", "ALL");
 	url.currentFolder = replace(url.currentFolder, '//', '/', 'ALL');
@@ -56,48 +68,53 @@
 	} else {
 		fs = "\";
 	}
-	
+
 	// Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
-	// the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a 
+	// the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a
 	// virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
 	if ( len(config.serverPath) ) {
 		serverPath = config.serverPath;
 	} else {
 		serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
 	}
-	if ( right(serverPath,1) neq fs ) {
-		serverPath = serverPath & fs;
-	}
-			
+
 	// map the user files path to a physical directory
-	userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
-	
+	userFilesServerPath = serverPath & url.type & replace(url.currentFolder,"/",fs,"all");
+
 	xmlContent = ""; // append to this string to build content
 </cfscript>
 
+<cfif not config.enabled>
+
+	<cfset xmlContent = "<Error number=""1"" text=""This connector is disabled. Please check the 'editor/filemanager/browser/default/connectors/cfm/config.cfm' file"" />">
+
+<cfelseif find("..",url.currentFolder)>
+
+	<cfset xmlContent = "<Error number=""102"" />">
+
+</cfif>
+
+<cfif not len(xmlContent)>
+
 <!--- create directories in physical path if they don't already exist --->
-<cfset currentPath = serverPath>
+<cfset currentPath = "">
 <cftry>
+	<cfloop list="#userFilesServerPath#" index="name" delimiters="/">
 
-	<cfloop list="#userFilesPath#" index="name" delimiters="/">
-		
 		<cfif not directoryExists(currentPath & fs & name)>
-			
-				<cfdirectory action="create" directory="#currentPath##name#" mode="755">
-			
+				<cfdirectory action="create" directory="#currentPath##fs##name#" mode="755">
 		</cfif>
-		
+
 		<cfset currentPath = currentPath & fs & name>
-		
+
 	</cfloop>
-	
+
 	<!--- create sub-directory for file type if it doesn't already exist --->
-	<cfif not directoryExists(userFilesServerPath & fs & url.type)>
-	
+	<!---
+		<cfif not directoryExists(userFilesServerPath & url.type)>
 		<cfdirectory action="create" directory="#userFilesServerPath##url.type#" mode="755">
-	
 	</cfif>
-
+	--->
 <cfcatch>
 
 	<!--- this should only occur as a result of a permissions problem --->
@@ -106,35 +123,27 @@
 </cfcatch>
 </cftry>
 
-<cfif not config.enabled>
-
-	<cfset xmlContent = "<Error number=""1"" text=""This connector is disabled. Please check the 'editor/filemanager/browser/default/connectors/cfm/config.cfm' file"" />">
-	
-<cfelseif find("..",url.currentFolder)>
-	
-	<cfset xmlContent = "<Error number=""102"" />">
-	
 </cfif>
 
 <cfif not len(xmlContent)>
 
 	<!--- no errors thus far - run command --->
-	
+
 	<!--- we need to know the physical path to the current folder for all commands --->
-	<cfset currentFolderPath = userFilesServerPath & url.type & replace(url.currentFolder,"/",fs,"all")>
-	
+	<cfset currentFolderPath = userFilesServerPath>
+
 	<cfswitch expression="#url.command#">
-	
-	
+
+
 		<cfcase value="FileUpload">
-		
+
 			<cfset fileName = "">
 			<cfset fileExt = "">
-		
+
 			<cftry>
-			
+
 				<!--- TODO: upload to a temp directory and move file if extension is allowed --->
-			
+
 				<!--- first upload the file with an unique filename --->
 				<cffile action="upload"
 					fileField="NewFile"
@@ -142,20 +151,24 @@
 					nameConflict="makeunique"
 					mode="644"
 					attributes="normal">
-				
+
+				<cfif cffile.fileSize EQ 0>
+					<cfthrow>
+				</cfif>
+
 				<cfif ( len(lAllowedExtensions) and not listFindNoCase(lAllowedExtensions,cffile.ServerFileExt) )
 					or ( len(lDeniedExtensions) and listFindNoCase(lDeniedExtensions,cffile.ServerFileExt) )>
-				
+
 					<cfset errorNumber = "202">
 					<cffile action="delete" file="#cffile.ServerDirectory##fs##cffile.ServerFile#">
-				
+
 				<cfelse>
-				
+
 					<cfscript>
 					errorNumber = 0;
 					fileName = cffile.ClientFileName;
 					fileExt = cffile.ServerFileExt;
-			
+
 					// munge filename for html download. Only a-z, 0-9, _, - and . are allowed
 					if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
 						fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
@@ -163,7 +176,7 @@
 						fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
 						fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
 					}
-					
+
 					// When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
 					if( compare( cffile.ServerFileName, fileName ) ) {
 						counter = 0;
@@ -174,10 +187,10 @@
 						}
 					}
 					</cfscript>
-					
+
 					<!--- Rename the uploaded file, if neccessary --->
 					<cfif compare(cffile.ServerFileName,fileName)>
-					
+
 						<cfset errorNumber = "201">
 						<cffile
 							action="rename"
@@ -185,22 +198,22 @@
 							destination="#currentFolderPath##fileName#.#fileExt#"
 							mode="644"
 							attributes="normal">
-					
-					</cfif>					
-				
+
+					</cfif>
+
 				</cfif>
-		
+
 				<cfcatch type="Any">
-				
+
 					<cfset errorNumber = "202">
-					
+
 				</cfcatch>
-				
+
 			</cftry>
-			
-			
+
+
 			<cfif errorNumber eq 201>
-			
+
 				<!--- file was changed (201), submit the new filename --->
 				<cfoutput>
 				<script type="text/javascript">
@@ -209,30 +222,30 @@
 				</cfoutput>
 
 			<cfelse>
-			
+
 				<!--- file was uploaded succesfully(0) or an error occured(202). Submit only the error code. --->
 				<cfoutput>
 				<script type="text/javascript">
 				window.parent.frames['frmUpload'].OnUploadCompleted(#errorNumber#);
 				</script>
 				</cfoutput>
-				
+
 			</cfif>
-			
+
 			<cfabort>
-		
+
 		</cfcase>
-		
-		
+
+
 		<cfcase value="GetFolders">
-		
+
 			<!--- Sort directories first, name ascending --->
-			<cfdirectory 
-				action="list" 
-				directory="#currentFolderPath#" 
+			<cfdirectory
+				action="list"
+				directory="#currentFolderPath#"
 				name="qDir"
 				sort="type,name">
-			
+
 			<cfscript>
 				i=1;
 				folders = "";
@@ -240,50 +253,50 @@
 					if( not compareNoCase( qDir.type[i], "FILE" ))
 						break;
 					if( not listFind(".,..", qDir.name[i]) )
-						folders = folders & '<Folder name="#qDir.name[i]#" />';
+						folders = folders & '<Folder name="#HTMLEditFormat( qDir.name[i] )#" />';
 					i=i+1;
 				}
-		
+
 				xmlContent = xmlContent & '<Folders>' & folders & '</Folders>';
 			</cfscript>
-		
+
 		</cfcase>
-		
-		
+
+
 		<cfcase value="GetFoldersAndFiles">
-		
+
 			<!--- Sort directories first, name ascending --->
-			<cfdirectory 
-				action="list" 
-				directory="#currentFolderPath#" 
+			<cfdirectory
+				action="list"
+				directory="#currentFolderPath#"
 				name="qDir"
 				sort="type,name">
-				
+
 			<cfscript>
 				i=1;
 				folders = "";
 				files = "";
 				while( i lte qDir.recordCount ) {
 					if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind(".,..", qDir.name[i]) ) {
-						folders = folders & '<Folder name="#qDir.name[i]#" />';
+						folders = folders & '<Folder name="#HTMLEditFormat(qDir.name[i])#" />';
 					} else if( not compareNoCase( qDir.type[i], "FILE" ) ) {
 						fileSizeKB = round(qDir.size[i] / 1024);
-						files = files & '<File name="#qDir.name[i]#" size="#IIf( fileSizeKB GT 0, DE( fileSizeKB ), 1)#" />';
+						files = files & '<File name="#HTMLEditFormat(qDir.name[i])#" size="#IIf( fileSizeKB GT 0, DE( fileSizeKB ), 1)#" />';
 					}
 					i=i+1;
 				}
-		
+
 				xmlContent = xmlContent & '<Folders>' & folders & '</Folders>';
 				xmlContent = xmlContent & '<Files>' & files & '</Files>';
 			</cfscript>
-		
+
 		</cfcase>
-		
-		
+
+
 		<cfcase value="CreateFolder">
-		
+
 			<cfparam name="url.newFolderName" default="">
-			
+
 			<cfscript>
 				newFolderName = url.newFolderName;
 				if( reFind("[^A-Za-z0-9_\-\.]", newFolderName) ) {
@@ -295,46 +308,46 @@
 					newFolderName = reReplace(newFolderName, "$_([^_]+)$", "\1", "all");
 				}
 			</cfscript>
-		
+
 			<cfif not len(newFolderName) or len(newFolderName) gt 255>
-				<cfset errorNumber = 102>	
+				<cfset errorNumber = 102>
 			<cfelseif directoryExists(currentFolderPath & newFolderName)>
 				<cfset errorNumber = 101>
 			<cfelseif reFind("^\.\.",newFolderName)>
 				<cfset errorNumber = 103>
 			<cfelse>
 				<cfset errorNumber = 0>
-		
+
 				<cftry>
 					<cfdirectory
 						action="create"
 						directory="#currentFolderPath##newFolderName#"
 						mode="755">
 					<cfcatch>
-						<!--- 
+						<!---
 						un-resolvable error numbers in ColdFusion:
-						* 102 : Invalid folder name. 
-						* 103 : You have no permissions to create the folder. 
+						* 102 : Invalid folder name.
+						* 103 : You have no permissions to create the folder.
 						--->
 						<cfset errorNumber = 110>
 					</cfcatch>
 				</cftry>
 			</cfif>
-			
+
 			<cfset xmlContent = xmlContent & '<Error number="#errorNumber#" />'>
-		
+
 		</cfcase>
-		
-		
+
+
 		<cfdefaultcase>
-		
+
 			<cfthrow type="fckeditor.connector" message="Illegal command: #url.command#">
-			
+
 		</cfdefaultcase>
-		
-		
+
+
 	</cfswitch>
-	
+
 </cfif>
 
 <cfscript>
@@ -343,6 +356,7 @@
 	xmlFooter = '</Connector>';
 </cfscript>
 
+<cfheader name="Expires" value="#GetHttpTimeString(Now())#">
 <cfheader name="Pragma" value="no-cache">
 <cfheader name="Cache-Control" value="no-cache, no-store, must-revalidate">
 <cfcontent reset="true" type="text/xml; charset=UTF-8">

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/config.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,45 +1,54 @@
 [//lasso
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: config.lasso
- * 	Configuration file for the File Manager Connector for Lasso.
- * 
- * File Authors:
- * 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the File Manager Connector for Lasso.
  */
 
-
-
-
-    /*.....................................................................     
+    /*.....................................................................
     The connector uses the file tags, which require authentication. Enter a
     valid username and password from Lasso admin for a group with file tags
-    permissions for uploads and the path you define in UserFilesPath below.                                                                        
-    */ 
-    
+    permissions for uploads and the path you define in UserFilesPath below.
+    */
+
 	var('connection') = array(
 		-username='xxxxxxxx',
 		-password='xxxxxxxx'
 	);
 
 
-    /*.....................................................................     
+    /*.....................................................................
     Set the base path for files that users can upload and browse (relative
     to server root).
-    
-    Set which file extensions are allowed and/or denied for each file type.                                                                           
-    */                                                                          
+
+    Set which file extensions are allowed and/or denied for each file type.
+    */
 	var('config') = map(
-		'UserFilesPath' = '/UserFiles/',
+	    'Enabled' = true,
+		'UserFilesPath' = '/userfiles/',
+		'Subdirectories' = map(
+			'File' = 'File/',
+			'Image' = 'Image/',
+			'Flash' = 'Flash/',
+			'Media' = 'Media/'
+		),
 		'AllowedExtensions' = map(
 			'File' = array(),
 			'Image' = array('jpg','gif','jpeg','png'),
@@ -47,7 +56,7 @@
 			'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
 		),
 		'DeniedExtensions' = map(
-			'File' = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg','inc','lasso','lassoapp','cgi'),
+			'File' = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp','htaccess','asis'),
 			'Image' = array(),
 			'Flash' = array(),
 			'Media' = array()

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/lasso/connector.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,41 +1,42 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
-* 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: connector.lasso
- * 	This is the File Manager Connector for Lasso.
- * 
- * File Authors:
- * 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Lasso.
  */
 
+    /*.....................................................................
+    Include global configuration. See config.lasso for details.
+    */
+	include('config.lasso');
 
 
-
-    /*.....................................................................     
-    Include global configuration. See config.lasso for details.                                                                           
-    */                                                                          
-	include('config.lasso');
-
-		
-    /*.....................................................................     
-    Translate current date/time to GMT for custom header.                                                                          
-    */                                                                          
+    /*.....................................................................
+    Translate current date/time to GMT for custom header.
+    */
 	var('headerDate') = date_localtogmt(date)->format('%a, %d %b %Y %T GMT');
 
 
-    /*.....................................................................     
-    Convert query string parameters to variables and initialize output.                                                                           
-    */                                                                          
+    /*.....................................................................
+    Convert query string parameters to variables and initialize output.
+    */
 	var(
 		'Command'		=	action_param('Command'),
 		'Type'			=	action_param('Type'),
@@ -55,40 +56,40 @@
 	);
 
 
-    /*.....................................................................     
-    Calculate the path to the current folder.                                                                           
-    */                                                                          
+    /*.....................................................................
+    Calculate the path to the current folder.
+    */
 	$ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
-		
-	var('currentFolderURL' = $ServerPath 
-		+ action_param('Type') 
+
+	var('currentFolderURL' = $ServerPath
+		+ $config->find('Subdirectories')->find(action_param('Type'))
 		+ action_param('CurrentFolder')
 	);
 
 
-    /*.....................................................................     
+    /*.....................................................................
     Build the appropriate response per the 'Command' parameter. Wrap the
-    entire process in an inline for file tag permissions.                                                                         
-    */                                                                          
+    entire process in an inline for file tag permissions.
+    */
 	inline($connection);
-		select($Command);	
-            /*.............................................................     
-            List all subdirectories in the 'Current Folder' directory.                                                                   
-            */                                                                  
+		select($Command);
+            /*.............................................................
+            List all subdirectories in the 'Current Folder' directory.
+            */
 			case('GetFolders');
 				$commandData += '\t<Folders>\n';
-			
+
 				iterate(file_listdirectory($currentFolderURL), local('this'));
 					#this->endswith('/') ? $commandData += '\t\t<Folder name="' + #this->removetrailing('/')& + '" />\n';
 				/iterate;
-				
+
 				$commandData += '\t</Folders>\n';
 
 
-            /*.............................................................     
+            /*.............................................................
             List both files and folders in the 'Current Folder' directory.
-            Include the file sizes in kilobytes.                                                                   
-            */                                                                  				
+            Include the file sizes in kilobytes.
+            */
 			case('GetFoldersAndFiles');
 				iterate(file_listdirectory($currentFolderURL), local('this'));
 					if(#this->endswith('/'));
@@ -96,26 +97,26 @@
 					else;
 						local('size') = file_getsize($currentFolderURL + #this) / 1024;
 						$files += '\t\t<File name="' + #this + '" size="' + #size + '" />\n';
-					/if;					
+					/if;
 				/iterate;
 
 				$folders += '\t</Folders>\n';
 				$files += '\t</Files>\n';
-				
+
 				$commandData += $folders + $files;
 
 
-            /*.............................................................     
-            Create a directory 'NewFolderName' within the 'Current Folder.'                                                                 
-            */                                                                  				
+            /*.............................................................
+            Create a directory 'NewFolderName' within the 'Current Folder.'
+            */
 			case('CreateFolder');
-				var('newFolder' = $currentFolderURL + $NewFolderName + '/');			
-				file_create($newFolder);			
-				
-				
-                /*.........................................................     
-                Map Lasso's file error codes to FCKEditor's error codes.                                                              
-                */                                                              				
+				var('newFolder' = $currentFolderURL + $NewFolderName + '/');
+				file_create($newFolder);
+
+
+                /*.........................................................
+                Map Lasso's file error codes to FCKEditor's error codes.
+                */
 				select(file_currenterror( -errorcode));
 					case(0);
 						$errorNumber = 0;
@@ -130,62 +131,62 @@
 					case;
 						$errorNumber = 110;
 				/select;
-				
+
 				$commandData += '<Error number="' + $errorNumber + '" />\n';
 
 
-            /*.............................................................     
-            Process an uploaded file.                                                                  
-            */                                                                  				
-			case('FileUpload');		
-                /*.........................................................     
-                This is the only command that returns an HTML response.                                                              
-                */                                                              			
+            /*.............................................................
+            Process an uploaded file.
+            */
+			case('FileUpload');
+                /*.........................................................
+                This is the only command that returns an HTML response.
+                */
 				$responseType = 'html';
-				
-				
-                /*.........................................................     
-                Was a file actually uploaded?                                                              
-                */                                                              
+
+
+                /*.........................................................
+                Was a file actually uploaded?
+                */
 				file_uploads->size ? $NewFile = file_uploads->get(1) | $uploadResult = '202';
-								
+
 				if($uploadResult == '0');
-                    /*.....................................................     
+                    /*.....................................................
                     Split the file's extension from the filename in order
                     to follow the API's naming convention for duplicate
-                    files. (Test.txt, Test(1).txt, Test(2).txt, etc.)                                                          
-                    */                                                          
-					$NewFileName = $NewFile->find('OrigName');													
+                    files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
+                    */
+					$NewFileName = $NewFile->find('OrigName');
 					$OrigFilePath = $currentFolderURL + $NewFileName;
 					$NewFilePath = $OrigFilePath;
-					local('fileExtension') = '.' + $NewFile->find('OrigExtension');					
+					local('fileExtension') = '.' + $NewFile->find('OrigExtension');
 					local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
 
 
-                    /*.....................................................     
-                    Make sure the file extension is allowed.                                                          
-                    */                                                          
+                    /*.....................................................
+                    Make sure the file extension is allowed.
+                    */
 					if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
 						$uploadResult = '202';
 					else;
-                        /*.................................................     
-                        Rename the target path until it is unique.                                                    
-                        */                                                      										
+                        /*.................................................
+                        Rename the target path until it is unique.
+                        */
 						while(file_exists($NewFilePath));
 							$NewFilePath = $currentFolderURL + #shortFileName + '(' + loop_count + ')' + #fileExtension;
 						/while;
-						
-						
-                        /*.................................................     
-                        Copy the uploaded file to its final location.                                                     
-                        */                                                      
+
+
+                        /*.................................................
+                        Copy the uploaded file to its final location.
+                        */
 						file_copy($NewFile->find('path'), $NewFilePath);
 
 
-                        /*.................................................     
+                        /*.................................................
                         Set the error code for the response. Note whether
-                        the file had to be renamed.                                                      
-                        */                                                      						
+                        the file had to be renamed.
+                        */
 						select(file_currenterror( -errorcode));
 							case(0);
 								$OrigFilePath != $NewFilePath ? $uploadResult = '201, \'' + $NewFilePath->split('/')->last + '\'';
@@ -196,9 +197,9 @@
 				/if;
 
 
-                /*.........................................................     
-                Set the HTML response.                                                               
-                */                                                              				
+                /*.........................................................
+                Set the HTML response.
+                */
 				$__html_reply__ = '\
 <script type="text/javascript">
 	window.parent.frames[\'frmUpload\'].OnUploadCompleted(' + $uploadResult + ');
@@ -208,9 +209,9 @@
 	/inline;
 
 
-    /*.....................................................................     
-    Send a custom header for xml responses.                                                                          
-    */                                                                          
+    /*.....................................................................
+    Send a custom header for xml responses.
+    */
 	if($responseType == 'xml');
 		header;
 ]
@@ -228,15 +229,15 @@
 		/header;
 
 
-        /*.................................................................     
-        Set the content type encoding for Lasso.                                                                      
-        */                                                                      
+        /*.................................................................
+        Set the content type encoding for Lasso.
+        */
 		content_type('text/xml; charset=utf-8');
 
 
-        /*.................................................................     
-        Wrap the response as XML and output.                                                                      
-        */                                                                      
+        /*.................................................................
+        Wrap the response as XML and output.
+        */
 		$__html_reply__ = '\
 <?xml version="1.0" encoding="utf-8" ?>
 <Connector command="' + $Command + '" resourceType="' + $Type + '">
@@ -245,4 +246,4 @@
 </Connector>
 		';
 	/if;
-]	
+]

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/basexml.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: basexml.pl
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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
@@ -50,9 +54,9 @@
 
 	# Create the XML document header
 	print '<?xml version="1.0" encoding="utf-8" ?>' ;
-	
+
 	print '<Connector><Error number="' . $number . '" text="' . &specialchar_cnv( $text ) . '" /></Connector>' ;
-	
+
 	exit ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/commands.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: commands.pl
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/connector.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,26 @@
-#!/usr/bin/env perl 
+#!/usr/bin/env perl
 
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: connector.cgi
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
-#  		Frederico Caldeira Knabben (fredck at fckeditor.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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.
 #####
 
 ##
@@ -69,7 +72,7 @@
 			$GLOBALS{'UserFilesPath'} .= '/' ;
 		}
 	} else {
-		$GLOBALS{'UserFilesPath'} = '/UserFiles/';
+		$GLOBALS{'UserFilesPath'} = '/userfiles/';
 	}
 
 	# Map the "UserFiles" path to a local directory.
@@ -96,7 +99,7 @@
 	if(!($sCurrentFolder =~ /^\//)) {
 		$sCurrentFolder = '/' . $sCurrentFolder;
 	}
-	
+
 	# Check for invalid folder paths (..)
 	if ( $sCurrentFolder =~ /\.\./ ) {
 		SendError( 102, "" ) ;
@@ -117,7 +120,7 @@
 _HTML_HEAD_
 
 	&CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
-	
+
 	# Execute the required command.
 	if($sCommand eq 'GetFolders') {
 		&GetFolders($sResourceType,$sCurrentFolder);
@@ -126,9 +129,9 @@
 	} elsif($sCommand eq 'CreateFolder') {
 		&CreateFolder($sResourceType,$sCurrentFolder);
 	}
-	
+
 	&CreateXmlFooter();
-	
+
 	exit ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/io.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: io.pl
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/upload_fck.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: upload_fck.pl
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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
@@ -189,7 +193,7 @@
 							$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");
@@ -345,7 +349,7 @@
 				$ImageWidth		= $XbmWidth;
 				$ImageHeight	= $XbmHeight;
 			}
-		} else {		# 
+		} else {		#
 			$Ext = 'txt';
 		}
 	}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/perl/util.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: util.pl
-#  	This is the File Manager Connector for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/basexml.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,25 +1,32 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: basexml.php
- * 	This is the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * These functions define the base of the XML response sent by the PHP
+ * connector.
  */
 
 function SetXmlHeaders()
 {
+	ob_end_clean() ;
+
 	// Prevent the browser from caching the result.
 	// Date in the past
 	header('Expires: Mon, 26 Jul 1997 05:00:00 GMT') ;
@@ -38,13 +45,13 @@
 function CreateXmlHeader( $command, $resourceType, $currentFolder )
 {
 	SetXmlHeaders() ;
-	
+
 	// Create the XML document header.
 	echo '<?xml version="1.0" encoding="utf-8" ?>' ;
 
 	// Create the main "Connector" node.
 	echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
-	
+
 	// Add the current folder node.
 	echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder ) ) . '" />' ;
 }
@@ -57,12 +64,12 @@
 function SendError( $number, $text )
 {
 	SetXmlHeaders() ;
-	
+
 	// Create the XML document header
 	echo '<?xml version="1.0" encoding="utf-8" ?>' ;
-	
+
 	echo '<Connector><Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" /></Connector>' ;
-	
+
 	exit ;
 }
 ?>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/commands.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: commands.php
- * 	This is the File Manager Connector for PHP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 PHP.
  */
 
 function GetFolders( $resourceType, $currentFolder )
@@ -38,7 +42,7 @@
 
 	// Open the "Folders" node.
 	echo "<Folders>" ;
-	
+
 	natcasesort( $aFolders ) ;
 	foreach ( $aFolders as $sFolder )
 		echo $sFolder ;
@@ -151,6 +155,8 @@
 
 	if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
 	{
+		global $Config ;
+
 		$oFile = $_FILES['NewFile'] ;
 
 		// Map the virtual path to the local server path.
@@ -158,12 +164,17 @@
 
 		// Get the uploaded file name.
 		$sFileName = $oFile['name'] ;
+
+		// Replace dots in the name with underscores (only one dot can be there... security issue).
+		if ( $Config['ForceSingleExtension'] )
+			$sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
+
 		$sOriginalFileName = $sFileName ;
+
+		// Get the extension.
 		$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
 		$sExtension = strtolower( $sExtension ) ;
 
-		global $Config ;
-
 		$arAllowed	= $Config['AllowedExtensions'][$resourceType] ;
 		$arDenied	= $Config['DeniedExtensions'][$resourceType] ;
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/config.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/config.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/config.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: config.php
- * 	Configuration file for the File Manager Connector for PHP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the File Manager Connector for PHP.
  */
 
 global $Config ;
@@ -23,17 +27,22 @@
 // SECURITY: You must explicitelly enable this "connector". (Set it to "true").
 $Config['Enabled'] = false ;
 
+
 // Path to user files relative to the document root.
-$Config['UserFilesPath'] = '/UserFiles/' ;
+$Config['UserFilesPath'] = '/userfiles/' ;
 
 // Fill the following value it you prefer to specify the absolute path for the
 // user files directory. Usefull if you are using a virtual directory, symbolic
-// link or alias. Examples: 'C:\\MySite\\UserFiles\\' or '/root/mysite/UserFiles/'.
+// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
 // Attention: The above 'UserFilesPath' must point to the same directory.
 $Config['UserFilesAbsolutePath'] = '' ;
 
+// Due to security issues with Apache modules, it is reccomended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
 $Config['AllowedExtensions']['File']	= array() ;
-$Config['DeniedExtensions']['File']		= array('php','php3','php5','phtml','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg','cgi') ;
+$Config['DeniedExtensions']['File']		= array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ;
 
 $Config['AllowedExtensions']['Image']	= array('jpg','gif','jpeg','png') ;
 $Config['DeniedExtensions']['Image']	= array() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/connector.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,29 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: connector.php
- * 	This is the File Manager Connector for PHP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 PHP.
  */
 
+ob_start() ;
+
 include('config.php') ;
 include('util.php') ;
 include('io.php') ;
@@ -35,12 +41,12 @@
 else if ( isset( $_GET['ServerPath'] ) )
 	$GLOBALS["UserFilesPath"] = $_GET['ServerPath'] ;
 else
-	$GLOBALS["UserFilesPath"] = '/UserFiles/' ;
+	$GLOBALS["UserFilesPath"] = '/userfiles/' ;
 
 if ( ! ereg( '/$', $GLOBALS["UserFilesPath"] ) )
 	$GLOBALS["UserFilesPath"] .= '/' ;
 
-if ( strlen( $Config['UserFilesAbsolutePath'] ) > 0 ) 
+if ( strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
 {
 	$GLOBALS["UserFilesDirectory"] = $Config['UserFilesAbsolutePath'] ;
 
@@ -72,7 +78,7 @@
 	// Check the current folder syntax (must begin and start with a slash).
 	if ( ! ereg( '/$', $sCurrentFolder ) ) $sCurrentFolder .= '/' ;
 	if ( strpos( $sCurrentFolder, '/' ) !== 0 ) $sCurrentFolder = '/' . $sCurrentFolder ;
-	
+
 	// Check for invalid folder paths (..)
 	if ( strpos( $sCurrentFolder, '..' ) )
 		SendError( 102, "" ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/io.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/io.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/io.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: io.php
- * 	This is the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 PHP.
  */
 
 function GetUrlFromPath( $resourceType, $folderPath )
@@ -23,7 +27,7 @@
 	if ( $resourceType == '' )
 		return RemoveFromEnd( $GLOBALS["UserFilesPath"], '/' ) . $folderPath ;
 	else
-		return $GLOBALS["UserFilesPath"] . $resourceType . $folderPath ;
+		return $GLOBALS["UserFilesPath"] . strtolower( $resourceType ) . $folderPath ;
 }
 
 function RemoveExtension( $fileName )
@@ -34,7 +38,7 @@
 function ServerMapFolder( $resourceType, $folderPath )
 {
 	// Get the resource type directory.
-	$sResourceTypePath = $GLOBALS["UserFilesDirectory"] . $resourceType . '/' ;
+	$sResourceTypePath = $GLOBALS["UserFilesDirectory"] . strtolower( $resourceType ) . '/' ;
 
 	// Ensure that the directory exists.
 	CreateServerFolder( $sResourceTypePath ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/util.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/util.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/php/util.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: util.php
- * 	This is the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Utility functions for the File Manager Connector for PHP.
  */
 
 function RemoveFromStart( $sourceString, $charToRemove )

Added: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,785 @@
+#!/usr/bin/env python
+
+"""
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2007 Frederico Caldeira Knabben
+
+== BEGIN LICENSE ==
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/licenses/lgpl.html
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+   http://www.mozilla.org/MPL/MPL-1.1.html
+
+== END LICENSE ==
+
+Connector for Python.
+
+Tested With:
+Standard:
+	Python 2.3.3
+Zope:
+	Zope Version: (Zope 2.8.1-final, python 2.3.5, linux2)
+	Python Version: 2.3.5 (#4, Mar 10 2005, 01:40:25)
+		[GCC 3.3.3 20040412 (Red Hat Linux 3.3.3-7)]
+	System Platform: linux2
+"""
+
+"""
+Author Notes (04 December 2005):
+This module has gone through quite a few phases of change.  Obviously,
+I am only supporting that part of the code that I use.  Initially
+I had the upload directory as a part of zope (ie. uploading files
+directly into Zope), before realising that there were too many
+complex intricacies within Zope to deal with.  Zope is one ugly piece
+of code.  So I decided to complement Zope by an Apache server (which
+I had running anyway, and doing nothing).  So I mapped all uploads
+from an arbitrary server directory to an arbitrary web directory.
+All the FCKeditor uploading occurred this way, and I didn't have to
+stuff around with fiddling with Zope objects and the like (which are
+terribly complex and something you don't want to do - trust me).
+
+Maybe a Zope expert can touch up the Zope components.  In the end,
+I had FCKeditor loaded in Zope (probably a bad idea as well), and
+I replaced the connector.py with an alias to a server module.
+Right now, all Zope components will simple remain as is because
+I've had enough of Zope.
+
+See notes right at the end of this file for how I aliased out of Zope.
+
+Anyway, most of you probably wont use Zope, so things are pretty
+simple in that regard.
+
+Typically, SERVER_DIR is the root of WEB_DIR (not necessarily).
+Most definitely, SERVER_USERFILES_DIR points to WEB_USERFILES_DIR.
+"""
+
+import cgi
+import re
+import os
+import string
+
+"""
+escape
+
+Converts the special characters '<', '>', and '&'.
+
+RFC 1866 specifies that these characters be represented
+in HTML as &lt; &gt; and &amp; respectively. In Python
+1.5 we use the new string.replace() function for speed.
+"""
+def escape(text, replace=string.replace):
+    text = replace(text, '&', '&amp;') # must be done 1st
+    text = replace(text, '<', '&lt;')
+    text = replace(text, '>', '&gt;')
+    text = replace(text, '"', '&quot;')
+    return text
+
+"""
+getFCKeditorConnector
+
+Creates a new instance of an FCKeditorConnector, and runs it
+"""
+def getFCKeditorConnector(context=None):
+	# Called from Zope.  Passes the context through
+	connector = FCKeditorConnector(context=context)
+	return connector.run()
+
+
+"""
+FCKeditorRequest
+
+A wrapper around the request object
+Can handle normal CGI request, or a Zope request
+Extend as required
+"""
+class FCKeditorRequest(object):
+	def __init__(self, context=None):
+		if (context is not None):
+			r = context.REQUEST
+		else:
+			r = cgi.FieldStorage()
+		self.context = context
+		self.request = r
+
+	def isZope(self):
+		if (self.context is not None):
+			return True
+		return False
+
+	def has_key(self, key):
+		return self.request.has_key(key)
+
+	def get(self, key, default=None):
+		value = None
+		if (self.isZope()):
+			value = self.request.get(key, default)
+		else:
+			if key in self.request.keys():
+				value = self.request[key].value
+			else:
+				value = default
+		return value
+
+"""
+FCKeditorConnector
+
+The connector class
+"""
+class FCKeditorConnector(object):
+	# Configuration for FCKEditor
+	# can point to another server here, if linked correctly
+	#WEB_HOST = "http://127.0.0.1/"
+	WEB_HOST = ""
+	SERVER_DIR = "/var/www/html/"
+
+	WEB_USERFILES_FOLDER = WEB_HOST + "upload/"
+	SERVER_USERFILES_FOLDER = SERVER_DIR + "upload/"
+
+	# Allow access (Zope)
+	__allow_access_to_unprotected_subobjects__ = 1
+	# Class Attributes
+	parentFolderRe = re.compile("[\/][^\/]+[\/]?$")
+
+	"""
+	Constructor
+	"""
+	def __init__(self, context=None):
+		# The given root path will NOT be shown to the user
+		# Only the userFilesPath will be shown
+
+		# Instance Attributes
+		self.context = context
+		self.request = FCKeditorRequest(context=context)
+		self.rootPath = self.SERVER_DIR
+		self.userFilesFolder = self.SERVER_USERFILES_FOLDER
+		self.webUserFilesFolder = self.WEB_USERFILES_FOLDER
+
+		# Enables / Disables the connector
+		self.enabled = False # Set to True to enable this connector
+
+		# These are instance variables
+		self.zopeRootContext = None
+		self.zopeUploadContext = None
+
+		# Copied from php module =)
+		self.allowedExtensions = {
+				"File": None,
+				"Image": None,
+				"Flash": None,
+				"Media": None
+				}
+		self.deniedExtensions = {
+				"File": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
+				"Image": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
+				"Flash": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ],
+				"Media": [ "html","htm","php","php2","php3","php4","php5","phtml","pwml","inc","asp","aspx","ascx","jsp","cfm","cfc","pl","bat","exe","com","dll","vbs","js","reg","cgi","htaccess","asis" ]
+				}
+
+	"""
+	Zope specific functions
+	"""
+	def isZope(self):
+		# The context object is the zope object
+		if (self.context is not None):
+			return True
+		return False
+
+	def getZopeRootContext(self):
+		if self.zopeRootContext is None:
+			self.zopeRootContext = self.context.getPhysicalRoot()
+		return self.zopeRootContext
+
+	def getZopeUploadContext(self):
+		if self.zopeUploadContext is None:
+			folderNames = self.userFilesFolder.split("/")
+			c = self.getZopeRootContext()
+			for folderName in folderNames:
+				if (folderName <> ""):
+					c = c[folderName]
+			self.zopeUploadContext = c
+		return self.zopeUploadContext
+
+	"""
+	Generic manipulation functions
+	"""
+	def getUserFilesFolder(self):
+		return self.userFilesFolder
+
+	def getWebUserFilesFolder(self):
+		return self.webUserFilesFolder
+
+	def getAllowedExtensions(self, resourceType):
+		return self.allowedExtensions[resourceType]
+
+	def getDeniedExtensions(self, resourceType):
+		return self.deniedExtensions[resourceType]
+
+	def removeFromStart(self, string, char):
+		return string.lstrip(char)
+
+	def removeFromEnd(self, string, char):
+		return string.rstrip(char)
+
+	def convertToXmlAttribute(self, value):
+		if (value is None):
+			value = ""
+		return escape(value)
+
+	def convertToPath(self, path):
+		if (path[-1] <> "/"):
+			return path + "/"
+		else:
+			return path
+
+	def getUrlFromPath(self, resourceType, path):
+		if (resourceType is None) or (resourceType == ''):
+			url = "%s%s" % (
+					self.removeFromEnd(self.getUserFilesFolder(), '/'),
+					path
+					)
+		else:
+			url = "%s%s%s" % (
+					self.getUserFilesFolder(),
+					resourceType,
+					path
+					)
+		return url
+
+	def getWebUrlFromPath(self, resourceType, path):
+		if (resourceType is None) or (resourceType == ''):
+			url = "%s%s" % (
+					self.removeFromEnd(self.getWebUserFilesFolder(), '/'),
+					path
+					)
+		else:
+			url = "%s%s%s" % (
+					self.getWebUserFilesFolder(),
+					resourceType,
+					path
+					)
+		return url
+
+	def removeExtension(self, fileName):
+		index = fileName.rindex(".")
+		newFileName = fileName[0:index]
+		return newFileName
+
+	def getExtension(self, fileName):
+		index = fileName.rindex(".") + 1
+		fileExtension = fileName[index:]
+		return fileExtension
+
+	def getParentFolder(self, folderPath):
+		parentFolderPath = self.parentFolderRe.sub('', folderPath)
+		return parentFolderPath
+
+	"""
+	serverMapFolder
+
+	Purpose: works out the folder map on the server
+	"""
+	def serverMapFolder(self, resourceType, folderPath):
+		# Get the resource type directory
+		resourceTypeFolder = "%s%s/" % (
+				self.getUserFilesFolder(),
+				resourceType
+				)
+		# Ensure that the directory exists
+		self.createServerFolder(resourceTypeFolder)
+
+		# Return the resource type directory combined with the
+		# required path
+		return "%s%s" % (
+				resourceTypeFolder,
+				self.removeFromStart(folderPath, '/')
+				)
+
+	"""
+	createServerFolder
+
+	Purpose: physically creates a folder on the server
+	"""
+	def createServerFolder(self, folderPath):
+		# Check if the parent exists
+		parentFolderPath = self.getParentFolder(folderPath)
+		if not(os.path.exists(parentFolderPath)):
+			errorMsg = self.createServerFolder(parentFolderPath)
+			if errorMsg is not None:
+				return errorMsg
+		# Check if this exists
+		if not(os.path.exists(folderPath)):
+			os.mkdir(folderPath)
+			os.chmod(folderPath, 0755)
+			errorMsg = None
+		else:
+			if os.path.isdir(folderPath):
+				errorMsg = None
+			else:
+				raise "createServerFolder: Non-folder of same name already exists"
+		return errorMsg
+
+
+	"""
+	getRootPath
+
+	Purpose: returns the root path on the server
+	"""
+	def getRootPath(self):
+		return self.rootPath
+
+	"""
+	setXmlHeaders
+
+	Purpose: to prepare the headers for the xml to return
+	"""
+	def setXmlHeaders(self):
+		#now = self.context.BS_get_now()
+		#yesterday = now - 1
+		self.setHeader("Content-Type", "text/xml")
+		#self.setHeader("Expires", yesterday)
+		#self.setHeader("Last-Modified", now)
+		#self.setHeader("Cache-Control", "no-store, no-cache, must-revalidate")
+		self.printHeaders()
+		return
+
+	def setHeader(self, key, value):
+		if (self.isZope()):
+			self.context.REQUEST.RESPONSE.setHeader(key, value)
+		else:
+			print "%s: %s" % (key, value)
+		return
+
+	def printHeaders(self):
+		# For non-Zope requests, we need to print an empty line
+		# to denote the end of headers
+		if (not(self.isZope())):
+			print ""
+
+	"""
+	createXmlFooter
+
+	Purpose: returns the xml header
+	"""
+	def createXmlHeader(self, command, resourceType, currentFolder):
+		self.setXmlHeaders()
+		s = ""
+		# Create the XML document header
+		s += """<?xml version="1.0" encoding="utf-8" ?>"""
+		# Create the main connector node
+		s += """<Connector command="%s" resourceType="%s">""" % (
+				command,
+				resourceType
+				)
+		# Add the current folder node
+		s += """<CurrentFolder path="%s" url="%s" />""" % (
+				self.convertToXmlAttribute(currentFolder),
+				self.convertToXmlAttribute(
+					self.getWebUrlFromPath(
+						resourceType,
+						currentFolder
+						)
+					),
+				)
+		return s
+
+	"""
+	createXmlFooter
+
+	Purpose: returns the xml footer
+	"""
+	def createXmlFooter(self):
+		s = """</Connector>"""
+		return s
+
+	"""
+	sendError
+
+	Purpose: in the event of an error, return an xml based error
+	"""
+	def sendError(self, number, text):
+		self.setXmlHeaders()
+		s = ""
+		# Create the XML document header
+		s += """<?xml version="1.0" encoding="utf-8" ?>"""
+		s += """<Connector>"""
+		s += """<Error number="%s" text="%s" />""" % (number, text)
+		s += """</Connector>"""
+		return s
+
+	"""
+	getFolders
+
+	Purpose: command to recieve a list of folders
+	"""
+	def getFolders(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.getZopeFolders(resourceType, currentFolder)
+		else:
+			return self.getNonZopeFolders(resourceType, currentFolder)
+
+	def getZopeFolders(self, resourceType, currentFolder):
+		# Open the folders node
+		s = ""
+		s += """<Folders>"""
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		for (name, o) in zopeFolder.objectItems(["Folder"]):
+			s += """<Folder name="%s" />""" % (
+					self.convertToXmlAttribute(name)
+					)
+		# Close the folders node
+		s += """</Folders>"""
+		return s
+
+	def getNonZopeFolders(self, resourceType, currentFolder):
+		# Map the virtual path to our local server
+		serverPath = self.serverMapFolder(resourceType, currentFolder)
+		# Open the folders node
+		s = ""
+		s += """<Folders>"""
+		for someObject in os.listdir(serverPath):
+			someObjectPath = os.path.join(serverPath, someObject)
+			if os.path.isdir(someObjectPath):
+				s += """<Folder name="%s" />""" % (
+						self.convertToXmlAttribute(someObject)
+						)
+		# Close the folders node
+		s += """</Folders>"""
+		return s
+
+	"""
+	getFoldersAndFiles
+
+	Purpose: command to recieve a list of folders and files
+	"""
+	def getFoldersAndFiles(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.getZopeFoldersAndFiles(resourceType, currentFolder)
+		else:
+			return self.getNonZopeFoldersAndFiles(resourceType, currentFolder)
+
+	def getNonZopeFoldersAndFiles(self, resourceType, currentFolder):
+		# Map the virtual path to our local server
+		serverPath = self.serverMapFolder(resourceType, currentFolder)
+		# Open the folders / files node
+		folders = """<Folders>"""
+		files = """<Files>"""
+		for someObject in os.listdir(serverPath):
+			someObjectPath = os.path.join(serverPath, someObject)
+			if os.path.isdir(someObjectPath):
+				folders += """<Folder name="%s" />""" % (
+						self.convertToXmlAttribute(someObject)
+						)
+			elif os.path.isfile(someObjectPath):
+				size = os.path.getsize(someObjectPath)
+				files += """<File name="%s" size="%s" />""" % (
+						self.convertToXmlAttribute(someObject),
+						os.path.getsize(someObjectPath)
+						)
+		# Close the folders / files node
+		folders += """</Folders>"""
+		files += """</Files>"""
+		# Return it
+		s = folders + files
+		return s
+
+	def getZopeFoldersAndFiles(self, resourceType, currentFolder):
+		folders = self.getZopeFolders(resourceType, currentFolder)
+		files = self.getZopeFiles(resourceType, currentFolder)
+		s = folders + files
+		return s
+
+	def getZopeFiles(self, resourceType, currentFolder):
+		# Open the files node
+		s = ""
+		s += """<Files>"""
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		for (name, o) in zopeFolder.objectItems(["File","Image"]):
+			s += """<File name="%s" size="%s" />""" % (
+					self.convertToXmlAttribute(name),
+					((o.get_size() / 1024) + 1)
+					)
+		# Close the files node
+		s += """</Files>"""
+		return s
+
+	def findZopeFolder(self, resourceType, folderName):
+		# returns the context of the resource / folder
+		zopeFolder = self.getZopeUploadContext()
+		folderName = self.removeFromStart(folderName, "/")
+		folderName = self.removeFromEnd(folderName, "/")
+		if (resourceType <> ""):
+			try:
+				zopeFolder = zopeFolder[resourceType]
+			except:
+				zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=resourceType, title=resourceType)
+				zopeFolder = zopeFolder[resourceType]
+		if (folderName <> ""):
+			folderNames = folderName.split("/")
+			for folderName in folderNames:
+				zopeFolder = zopeFolder[folderName]
+		return zopeFolder
+
+	"""
+	createFolder
+
+	Purpose: command to create a new folder
+	"""
+	def createFolder(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.createZopeFolder(resourceType, currentFolder)
+		else:
+			return self.createNonZopeFolder(resourceType, currentFolder)
+
+	def createZopeFolder(self, resourceType, currentFolder):
+		# Find out where we are
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFolderName"):
+			newFolder = self.request.get("NewFolderName", None)
+			zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=newFolder, title=newFolder)
+		else:
+			errorNo = 102
+		error = """<Error number="%s" originalDescription="%s" />""" % (
+				errorNo,
+				self.convertToXmlAttribute(errorMsg)
+				)
+		return error
+
+	def createNonZopeFolder(self, resourceType, currentFolder):
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFolderName"):
+			newFolder = self.request.get("NewFolderName", None)
+			currentFolderPath = self.serverMapFolder(
+					resourceType,
+					currentFolder
+					)
+			try:
+				newFolderPath = currentFolderPath + newFolder
+				errorMsg = self.createServerFolder(newFolderPath)
+				if (errorMsg is not None):
+					errorNo = 110
+			except:
+				errorNo = 103
+		else:
+			errorNo = 102
+		error = """<Error number="%s" originalDescription="%s" />""" % (
+				errorNo,
+				self.convertToXmlAttribute(errorMsg)
+				)
+		return error
+
+	"""
+	getFileName
+
+	Purpose: helper function to extrapolate the filename
+	"""
+	def getFileName(self, filename):
+		for splitChar in ["/", "\\"]:
+			array = filename.split(splitChar)
+			if (len(array) > 1):
+				filename = array[-1]
+		return filename
+
+	"""
+	fileUpload
+
+	Purpose: command to upload files to server
+	"""
+	def fileUpload(self, resourceType, currentFolder):
+		if (self.isZope()):
+			return self.zopeFileUpload(resourceType, currentFolder)
+		else:
+			return self.nonZopeFileUpload(resourceType, currentFolder)
+
+	def zopeFileUpload(self, resourceType, currentFolder, count=None):
+		zopeFolder = self.findZopeFolder(resourceType, currentFolder)
+		file = self.request.get("NewFile", None)
+		fileName = self.getFileName(file.filename)
+		fileNameOnly = self.removeExtension(fileName)
+		fileExtension = self.getExtension(fileName).lower()
+		if (count):
+			nid = "%s.%s.%s" % (fileNameOnly, count, fileExtension)
+		else:
+			nid = fileName
+		title = nid
+		try:
+			zopeFolder.manage_addProduct['OFSP'].manage_addFile(
+					id=nid,
+					title=title,
+					file=file.read()
+					)
+		except:
+			if (count):
+				count += 1
+			else:
+				count = 1
+			self.zopeFileUpload(resourceType, currentFolder, count)
+		return
+
+	def nonZopeFileUpload(self, resourceType, currentFolder):
+		errorNo = 0
+		errorMsg = ""
+		if self.request.has_key("NewFile"):
+			# newFile has all the contents we need
+			newFile = self.request.get("NewFile", "")
+			# Get the file name
+			newFileName = newFile.filename
+			newFileNameOnly = self.removeExtension(newFileName)
+			newFileExtension = self.getExtension(newFileName).lower()
+			allowedExtensions = self.getAllowedExtensions(resourceType)
+			deniedExtensions = self.getDeniedExtensions(resourceType)
+			if (allowedExtensions is not None):
+				# Check for allowed
+				isAllowed = False
+				if (newFileExtension in allowedExtensions):
+					isAllowed = True
+			elif (deniedExtensions is not None):
+				# Check for denied
+				isAllowed = True
+				if (newFileExtension in deniedExtensions):
+					isAllowed = False
+			else:
+				# No extension limitations
+				isAllowed = True
+
+			if (isAllowed):
+				if (self.isZope()):
+					# Upload into zope
+					self.zopeFileUpload(resourceType, currentFolder)
+				else:
+					# Upload to operating system
+					# Map the virtual path to the local server path
+					currentFolderPath = self.serverMapFolder(
+							resourceType,
+							currentFolder
+							)
+					i = 0
+					while (True):
+						newFilePath = "%s%s" % (
+								currentFolderPath,
+								newFileName
+								)
+						if os.path.exists(newFilePath):
+							i += 1
+							newFilePath = "%s%s(%s).%s" % (
+									currentFolderPath,
+									newFileNameOnly,
+									i,
+									newFileExtension
+									)
+							errorNo = 201
+							break
+						else:
+							fileHandle = open(newFilePath,'w')
+							linecount = 0
+							while (1):
+								#line = newFile.file.readline()
+								line = newFile.readline()
+								if not line: break
+								fileHandle.write("%s" % line)
+								linecount += 1
+							os.chmod(newFilePath, 0777)
+							break
+			else:
+				newFileName = "Extension not allowed"
+				errorNo = 203
+		else:
+			newFileName = "No File"
+			errorNo = 202
+
+		string = """
+<script type="text/javascript">
+window.parent.frames["frmUpload"].OnUploadCompleted(%s,"%s");
+</script>
+				""" % (
+						errorNo,
+						newFileName.replace('"',"'")
+						)
+		return string
+
+	def run(self):
+		s = ""
+		try:
+			# Check if this is disabled
+			if not(self.enabled):
+				return self.sendError(1, "This connector is disabled.  Please check the connector configurations and try again")
+			# Make sure we have valid inputs
+			if not(
+					(self.request.has_key("Command")) and
+					(self.request.has_key("Type")) and
+					(self.request.has_key("CurrentFolder"))
+					):
+				return
+			# Get command
+			command = self.request.get("Command", None)
+			# Get resource type
+			resourceType = self.request.get("Type", None)
+			# folder syntax must start and end with "/"
+			currentFolder = self.request.get("CurrentFolder", None)
+			if (currentFolder[-1] <> "/"):
+				currentFolder += "/"
+			if (currentFolder[0] <> "/"):
+				currentFolder = "/" + currentFolder
+			# Check for invalid paths
+			if (".." in currentFolder):
+				return self.sendError(102, "")
+			# File upload doesn't have to return XML, so intercept
+			# her:e
+			if (command == "FileUpload"):
+				return self.fileUpload(resourceType, currentFolder)
+			# Begin XML
+			s += self.createXmlHeader(command, resourceType, currentFolder)
+			# Execute the command
+			if (command == "GetFolders"):
+				f = self.getFolders
+			elif (command == "GetFoldersAndFiles"):
+				f = self.getFoldersAndFiles
+			elif (command == "CreateFolder"):
+				f = self.createFolder
+			else:
+				f = None
+			if (f is not None):
+				s += f(resourceType, currentFolder)
+			s += self.createXmlFooter()
+		except Exception, e:
+			s = "ERROR: %s" % e
+		return s
+
+# Running from command line
+if __name__ == '__main__':
+	# To test the output, uncomment the standard headers
+	#print "Content-Type: text/html"
+	#print ""
+	print getFCKeditorConnector()
+
+"""
+Running from zope, you will need to modify this connector.
+If you have uploaded the FCKeditor into Zope (like me), you need to
+move this connector out of Zope, and replace the "connector" with an
+alias as below.  The key to it is to pass the Zope context in, as
+we then have a like to the Zope context.
+
+## Script (Python) "connector.py"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=*args, **kws
+##title=ALIAS
+##
+import Products.connector as connector
+return connector.getFCKeditorConnector(context=context).run()
+"""
+
+


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/py/connector.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/test.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/test.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/connectors/test.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,39 +1,39 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: test.html
- * 	Test page for the File Browser connectors.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the File Browser connectors.
 -->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>FCKeditor - Connectors Tests</title>
-		<script language="javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - Connectors Tests</title>
+	<script type="text/javascript">
 
 function BuildBaseUrl( command )
 {
-	var sUrl =  
+	var sUrl =
 		document.getElementById('cmbConnector').value +
 		'?Command=' + command +
 		'&Type=' + document.getElementById('cmbType').value +
 		'&CurrentFolder=' + document.getElementById('txtFolder').value ;
-	
-	var sServerPath = document.getElementById('txtServerPath').value ;
-	if ( sServerPath.length > 0 && sServerPath.toLowerCase() != '/userfiles/' )
-		sUrl += '&ServerPath=' + sServerPath ;
-	
+
 	return sUrl ;
 }
 
@@ -43,12 +43,12 @@
 		eRunningFrame.document.location = url ;
 	else
 		document.getElementById('eRunningFrame').src = url ;
-		
+
 	document.getElementById('eUrl').innerHTML = url ;
 }
 
 function GetFolders()
-{	
+{
 	SetFrameUrl( BuildBaseUrl( 'GetFolders' ) ) ;
 	return false ;
 }
@@ -62,12 +62,12 @@
 function CreateFolder()
 {
 	var sFolder = prompt( 'Type the folder name:', 'Test Folder' ) ;
-	
+
 	if ( ! sFolder )
-		return ;
-	
+		return false ;
+
 	var sUrl = BuildBaseUrl( 'CreateFolder' ) ;
-	sUrl += '&NewFolderName=' + escape( sFolder ) ;
+	sUrl += '&NewFolderName=' + encodeURIComponent( sFolder ) ;
 
 	SetFrameUrl( sUrl ) ;
 	return false ;
@@ -81,7 +81,7 @@
 			alert( 'File uploaded with no errors' ) ;
 			break ;
 		case 201 :
-			GetFoldersAndFiles()
+			GetFoldersAndFiles() ;
 			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
 			break ;
 		case 202 :
@@ -102,65 +102,79 @@
 	document.getElementById('frmUpload').action = sUrl ;
 }
 
-		</script>
-	</head>
-	<body>
-		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
-			<tr>
-				<td>
-					<table cellSpacing="0" cellPadding="0" border="0">
-						<tr>
-							<td>Connector:<br>
-								<select id="cmbConnector" name="cmbConnector">
-									<option value="asp/connector.asp" selected>ASP</option>
-									<option value="aspx/connector.aspx">ASP.Net</option>
-									<option value="cfm/connector.cfm">ColdFusion</option>
-									<option value="perl/connector.cgi">Perl</option>
-									<option value="php/connector.php">PHP</option>
-								</select></td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td>Current Folder<BR>
-								<INPUT id="txtFolder" type="text" value="/" name="txtFolder"></td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td>Resource Type<BR>
-								<select id="cmbType" name="cmbType">
-									<option value="File" selected>File</option>
-									<option value="Image">Image</option>
-									<option value="Flash">Flash</option>
-									<option value="Media">Media</option>
-									<option value="Invalid">Invalid Type (for testing)</option>
-								</select></td>
-							<TD>&nbsp;&nbsp;&nbsp;</TD>
-							<TD>Server Path<BR>
-								<INPUT id="txtServerPath" type="text" value="/UserFiles/" /></TD>
-						</tr>
-					</table>
-					<br>
-					<table cellSpacing="0" cellPadding="0" border="0">
-						<tr>
-							<td valign="top"><a href="#" onclick="GetFolders();">Get Folders</a></td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td valign="top"><a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td valign="top"><a href="#" onclick="CreateFolder();">Create Folder</a></td>
-							<td>&nbsp;&nbsp;&nbsp;</td>
-							<td valign="top">
-								<form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
-									File Upload<br>
-									<input id="txtFileUpload" type="file" name="NewFile"> <input type="submit" value="Upload" onclick="SetAction();">
-								</form>
-							</td>
-						</tr>
-					</table>
-					<br>
-					URL: <span id="eUrl"></span>
-				</td>
-			</tr>
-			<tr>
-				<td height="100%" vAlign="top">
-					<iframe id="eRunningFrame" src="../../../../fckblank.html" name="eRunningFrame" width="100%" height="100%"></iframe>
-				</td>
-			</tr>
-		</table>
-	</body>
+	</script>
+</head>
+<body>
+	<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
+		<tr>
+			<td>
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td>
+							Connector:<br />
+							<select id="cmbConnector" name="cmbConnector">
+								<option value="asp/connector.asp" selected="selected">ASP</option>
+								<option value="aspx/connector.aspx">ASP.Net</option>
+								<option value="cfm/connector.cfm">ColdFusion</option>
+								<option value="lasso/connector.lasso">Lasso</option>
+								<option value="perl/connector.cgi">Perl</option>
+								<option value="php/connector.php">PHP</option>
+								<option value="py/connector.py">Python</option>
+							</select>
+						</td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Current Folder<br />
+							<input id="txtFolder" type="text" value="/" name="txtFolder" /></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td>
+							Resource Type<br />
+							<select id="cmbType" name="cmbType">
+								<option value="File" selected="selected">File</option>
+								<option value="Image">Image</option>
+								<option value="Flash">Flash</option>
+								<option value="Media">Media</option>
+								<option value="Invalid">Invalid Type (for testing)</option>
+							</select>
+						</td>
+					</tr>
+				</table>
+				<br />
+				<table cellspacing="0" cellpadding="0" border="0">
+					<tr>
+						<td valign="top">
+							<a href="#" onclick="GetFolders();">Get Folders</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="GetFoldersAndFiles();">Get Folders and Files</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<a href="#" onclick="CreateFolder();">Create Folder</a></td>
+						<td>
+							&nbsp;&nbsp;&nbsp;</td>
+						<td valign="top">
+							<form id="frmUpload" action="" target="eRunningFrame" method="post" enctype="multipart/form-data">
+								File Upload<br />
+								<input id="txtFileUpload" type="file" name="NewFile" />
+								<input type="submit" value="Upload" onclick="SetAction();" />
+							</form>
+						</td>
+					</tr>
+				</table>
+				<br />
+				URL: <span id="eUrl"></span>
+			</td>
+		</tr>
+		<tr>
+			<td height="100%" valign="top">
+				<iframe id="eRunningFrame" src="javascript:void(0)" name="eRunningFrame" width="100%"
+					height="100%"></iframe>
+			</td>
+		</tr>
+	</table>
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmactualfolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmactualfolder.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmactualfolder.html
- * 	This page shows the actual folder path.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 shows the actual folder path.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<link href="browser.css" type="text/css" rel="stylesheet">

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmcreatefolder.html
- * 	Page used to create new folders in the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Page used to create new folders in the current folder.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
@@ -27,17 +31,17 @@
 function SetCurrentFolder( resourceType, folderPath )
 {
 	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath
+	oConnector.CurrentFolder = folderPath ;
 }
 
 function CreateFolder()
 {
 	var sFolderName ;
-	
-	while ( true ) 
+
+	while ( true )
 	{
 		sFolderName = prompt( 'Type the name of the new folder:', '' ) ;
-	
+
 		if ( sFolderName == null )
 			return ;
 		else if ( sFolderName.length == 0 )
@@ -45,20 +49,20 @@
 		else
 			break ;
 	}
-	
-	oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + escape( sFolderName) , CreateFolderCallBack ) ;
+
+	oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ;
 }
 
 function CreateFolderCallBack( fckXml )
 {
 	if ( oConnector.CheckError( fckXml ) == 0 )
 		window.parent.frames['frmResourcesList'].Refresh() ;
-	
+
 	/*
 	// Get the current folder path.
 	var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
 	var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
-	
+
 	switch ( iErrorNumber )
 	{
 		case 0 :

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmfolders.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmfolders.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmfolders.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmfolders.html
- * 	This page shows the list of folders available in the parent folder 
- * 	of the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 shows the list of folders available in the parent folder
+ * of the current folder.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<link href="browser.css" type="text/css" rel="stylesheet">
@@ -36,7 +40,7 @@
 	this.Table = document.getElementById('tableFiles') ;
 	this.UpRow = document.getElementById('trUp') ;
 
-	this.TableRows = new Object() ;	
+	this.TableRows = new Object() ;
 }
 
 oListManager.Clear = function()
@@ -67,14 +71,14 @@
 	oCell = oRow.insertCell(-1) ;
 	oCell.noWrap = true ;
 	oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;
-	
+
 	this.TableRows[ folderPath ] = oRow ;
 }
 
 oListManager.ShowUpFolder = function( upFolderPath )
 {
 	this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;
-	
+
 	if ( upFolderPath != null )
 	{
 		document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
@@ -87,8 +91,8 @@
 
 function CheckLoaded()
 {
-	if ( window.top.IsLoadedActualFolder 
-		&& window.top.IsLoadedCreateFolder 
+	if ( window.top.IsLoadedActualFolder
+		&& window.top.IsLoadedCreateFolder
 		&& window.top.IsLoadedUpload
 		&& window.top.IsLoadedResourcesList )
 	{
@@ -112,7 +116,7 @@
 	// Change the style for the select row (to show the opened folder).
 	for ( var sFolderPath in oListManager.TableRows )
 	{
-		oListManager.TableRows[ sFolderPath ].className = 
+		oListManager.TableRows[ sFolderPath ].className =
 			( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;
 	}
 
@@ -120,7 +124,7 @@
 	window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
 	window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
 	window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
-	
+
 	// Load the resources list for this folder.
 	window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;
 }
@@ -137,11 +141,11 @@
 
 	// Show/Hide the Up Folder.
 	oListManager.ShowUpFolder( sParentFolderPath ) ;
-	
+
 	if ( folderPath != '/' )
 	{
 		sActiveFolder = folderPath ;
-		oConnector.CurrentFolder = sParentFolderPath
+		oConnector.CurrentFolder = sParentFolderPath ;
 		oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;
 	}
 	else
@@ -152,19 +156,19 @@
 {
 	if ( oConnector.CheckError( fckXml ) != 0 )
 		return ;
-		
+
 	// Get the current folder path.
 	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
 	var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
-	
+
 	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
-	
+
 	for ( var i = 0 ; i < oNodes.length ; i++ )
 	{
 		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
 		oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
 	}
-	
+
 	OpenFolder( sActiveFolder ) ;
 }
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourceslist.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourceslist.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,87 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmresourceslist.html
- * 	This page shows all resources available in a folder in the File Browser.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 shows all resources available in a folder in the File Browser.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<link href="browser.css" type="text/css" rel="stylesheet" />
+	<script type="text/javascript" src="js/common.js"></script>
+	<script type="text/javascript">
 
 var oListManager = new Object() ;
 
-oListManager.Init = function()
-{
-	this.Table = document.getElementById('tableFiles') ;
-}
-
 oListManager.Clear = function()
 {
-	// Remove all other rows available.
-	while ( this.Table.rows.length > 0 )
-		this.Table.deleteRow(0) ;
+	document.body.innerHTML = '' ;
 }
 
-oListManager.AddFolder = function( folderName, folderPath )
+oListManager.GetFolderRowHtml = function( folderName, folderPath )
 {
-	// Create the new row.
-	var oRow = this.Table.insertRow(-1) ;
-
 	// Build the link to view the folder.
-	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
+	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath.replace( /'/g, '\\\'') + '\');return false;">' ;
 
-	// Add the folder icon cell.
-	var oCell = oRow.insertCell(-1) ;
-	oCell.width = 16 ;
-	oCell.innerHTML = sLink + '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' ;
-
-	// Add the folder name cell.
-	oCell = oRow.insertCell(-1) ;
-	oCell.noWrap = true ;
-	oCell.colSpan = 2 ;
-	oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;
+	return '<tr>' +
+			'<td width="16">' +
+				sLink +
+				'<img alt="" src="images/Folder.gif" width="16" height="16" border="0"></a>' +
+			'</td><td nowrap colspan="2">&nbsp;' +
+				sLink +
+				folderName +
+				'</a>' +
+		'</td></tr>' ;
 }
 
-oListManager.AddFile = function( fileName, fileUrl, fileSize )
+oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
 {
-	// Create the new row.
-	var oRow = this.Table.insertRow(-1) ;
-
 	// Build the link to view the folder.
-	var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl + '\');return false;">' ;
+	var sLink = '<a href="#" onclick="OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;">' ;
 
 	// Get the file icon.
 	var sIcon = oIcons.GetIcon( fileName ) ;
 
-	// Add the file icon cell.
-	var oCell = oRow.insertCell(-1) ;
-	oCell.width = 16 ;
-	oCell.innerHTML = sLink + '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' ;
-
-	// Add the file name cell.
-	oCell = oRow.insertCell(-1) ;
-	oCell.innerHTML = '&nbsp;' + sLink + fileName + '</a>' ;
-	
-	// Add the file size cell.
-	oCell = oRow.insertCell(-1) ;
-	oCell.noWrap = true ;
-	oCell.align = 'right' ;
-	oCell.innerHTML = '&nbsp;' + fileSize + ' KB' ;
+	return '<tr>' +
+			'<td width="16">' +
+				sLink +
+				'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"></a>' +
+			'</td><td>&nbsp;' +
+				sLink +
+				fileName +
+				'</a>' +
+			'</td><td align="right" nowrap>&nbsp;' +
+				fileSize +
+				' KB' +
+		'</td></tr>' ;
 }
 
 function OpenFolder( folderPath )
@@ -101,7 +89,7 @@
 {
 	oListManager.Clear() ;
 	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath
+	oConnector.CurrentFolder = folderPath ;
 	oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
 }
 
@@ -116,37 +104,57 @@
 		return ;
 
 	// Get the current folder path.
-	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
-	var sCurrentFolderPath	= oNode.attributes.getNamedItem('path').value ;
-	var sCurrentFolderUrl	= oNode.attributes.getNamedItem('url').value ;
+	var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
+	if ( oFolderNode == null )
+	{
+		alert( 'The server didn\'t reply with a proper XML file\r\nCheck your configuration.' ) ;
+		return ;
+	}
+	var sCurrentFolderPath	= oFolderNode.attributes.getNamedItem('path').value ;
+	var sCurrentFolderUrl	= oFolderNode.attributes.getNamedItem('url').value ;
 
-	// Add the Folders.	
-	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
+//	var dTimer = new Date() ;
+
+	var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' ) ;
+
+	// Add the Folders.
+	var oNodes ;
+	oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
 	for ( var i = 0 ; i < oNodes.length ; i++ )
 	{
 		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
-		oListManager.AddFolder( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
+		oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ) ;
 	}
-	
-	// Add the Files.	
-	var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
-	for ( var i = 0 ; i < oNodes.length ; i++ )
+
+	// Add the Files.
+	oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
+	for ( var j = 0 ; j < oNodes.length ; j++ )
 	{
-		var sFileName = oNodes[i].attributes.getNamedItem('name').value ;
-		var sFileSize = oNodes[i].attributes.getNamedItem('size').value ;
-		oListManager.AddFile( sFileName, sCurrentFolderUrl + sFileName, sFileSize ) ;
+		var oNode = oNodes[j] ;
+		var sFileName = oNode.attributes.getNamedItem('name').value ;
+		var sFileSize = oNode.attributes.getNamedItem('size').value ;
+
+		// Get the optional "url" attribute. If not available, build the url.
+		var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url') ;
+		var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : sCurrentFolderUrl + sFileName ;
+
+		oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) ) ;
 	}
+
+	oHtml.Append( '<\/table>' ) ;
+
+	document.body.innerHTML = oHtml.ToString() ;
+
+//	window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
+
 }
 
 window.onload = function()
 {
-	oListManager.Init() ;
 	window.top.IsLoadedResourcesList = true ;
 }
-		</script>
-	</head>
-	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
-		<table id="tableFiles" cellSpacing="1" cellPadding="0" width="100%" border="0">
-		</table>
-	</body>
+	</script>
+</head>
+<body class="FileArea" bottommargin="10" leftmargin="10" topmargin="10" rightmargin="10">
+</body>
 </html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourcetype.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmresourcetype.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmresourcetype.html
- * 	This page shows the list of available resource types.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 shows the list of available resource types.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmupload.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmupload.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/frmupload.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,34 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmupload.html
- * 	Page used to upload new files in the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Page used to upload new files in the current folder.
 -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
+<html xmlns="http://www.w3.org/1999/xhtml">
 	<head>
 		<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 )
 {
-	var sUrl = oConnector.ConnectorUrl +'Command=FileUpload' ;
+	var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
 	sUrl += '&Type=' + resourceType ;
-	sUrl += '&CurrentFolder=' + folderPath ;
-	
+	sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath ) ;
+
 	document.getElementById('frmUpload').action = sUrl ;
 }
 
@@ -43,33 +47,36 @@
 	// Set the interface elements.
 	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
 	document.getElementById('btnUpload').disabled = true ;
-	
+
 	return true ;
 }
 
-function OnUploadCompleted( errorNumber, fileName )
+function OnUploadCompleted( errorNumber, data )
 {
 	// Reset the Upload Worker Frame.
-	window.parent.frames['frmUploadWorker'].location = 'about:blank' ;
-	
+	window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;
+
 	// Reset the upload form (On IE we must do a little trick to avout problems).
 	if ( document.all )
 		document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
 	else
 		document.getElementById('frmUpload').reset() ;
-	
+
 	// Reset the interface elements.
 	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
 	document.getElementById('btnUpload').disabled = false ;
-	
+
 	switch ( errorNumber )
 	{
 		case 0 :
 			window.parent.frames['frmResourcesList'].Refresh() ;
 			break ;
+		case 1 :	// Custom error.
+			alert( data ) ;
+			break ;
 		case 201 :
 			window.parent.frames['frmResourcesList'].Refresh() ;
-			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
+			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' ) ;
 			break ;
 		case 202 :
 			alert( 'Invalid file' ) ;
@@ -86,16 +93,16 @@
 }
 		</script>
 	</head>
-	<body bottomMargin="0" topMargin="0">
+	<body bottommargin="0" topmargin="0">
 		<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 height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
 				<tr>
-					<td nowrap>
+					<td nowrap="nowrap">
 						<span id="eUploadMessage">Upload a new file in this folder</span><br>
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
+						<table cellspacing="0" cellpadding="0" width="100%" border="0">
 							<tr>
 								<td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>
-								<td nowrap>&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
+								<td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
 							</tr>
 						</table>
 					</td>

Added: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/images/icons/png.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/common.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/common.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/common.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: common.js
- * 	Common objects and functions shared by all pages that compose the
- * 	File Browser dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Common objects and functions shared by all pages that compose the
+ * File Browser dialog window.
  */
 
 function AddSelectOption( selectElement, optionText, optionValue )
@@ -23,7 +27,7 @@
 	var oOption = document.createElement("OPTION") ;
 
 	oOption.text	= optionText ;
-	oOption.value	= optionValue ;	
+	oOption.value	= optionValue ;
 
 	selectElement.options.add(oOption) ;
 
@@ -31,4 +35,21 @@
 }
 
 var oConnector	= window.parent.oConnector ;
-var oIcons		= window.parent.oIcons ;
\ No newline at end of file
+var oIcons		= window.parent.oIcons ;
+
+
+function StringBuilder( value )
+{
+    this._Strings = new Array( value || '' ) ;
+}
+
+StringBuilder.prototype.Append = function( value )
+{
+    if ( value )
+        this._Strings.push( value ) ;
+}
+
+StringBuilder.prototype.ToString = function()
+{
+    return this._Strings.join( '' ) ;
+}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/fckxml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/fckxml.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/default/js/fckxml.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,28 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxml.js
- * 	Defines the FCKXml object that is used for XML data calls
- * 	and XML processing.
- * 	This script is shared by almost all pages that compose the 
- * 	File Browser frameset.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Defines the FCKXml object that is used for XML data calls
+ * and XML processing.
+ *
+ * This script is shared by almost all pages that compose the
+ * File Browser frameset.
  */
 
 var FCKXml = function()
@@ -25,10 +30,19 @@
 
 FCKXml.prototype.GetHttpRequest = function()
 {
-	if ( window.XMLHttpRequest )		// Gecko
+	// Gecko / IE7
+	if ( typeof(XMLHttpRequest) != 'undefined' )
 		return new XMLHttpRequest() ;
-	else if ( window.ActiveXObject )	// IE
-		return new ActiveXObject("MsXml2.XmlHttp") ;
+
+	// IE6
+	try { return new ActiveXObject( 'Msxml2.XMLHTTP' ) ; }
+	catch(e) {}
+
+	// IE5
+	try { return new ActiveXObject( 'Microsoft.XMLHTTP' ) ; }
+	catch(e) {}
+
+	return null ;
 }
 
 FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
@@ -38,15 +52,22 @@
 	var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
 
 	var oXmlHttp = this.GetHttpRequest() ;
-		
+
 	oXmlHttp.open( "GET", urlToCall, bAsync ) ;
-	
+
 	if ( bAsync )
-	{	
-		oXmlHttp.onreadystatechange = function() 
+	{
+		oXmlHttp.onreadystatechange = function()
 		{
 			if ( oXmlHttp.readyState == 4 )
 			{
+				if ( oXmlHttp.responseXML == null || oXmlHttp.responseXML.firstChild == null)
+				{
+					alert( 'The server didn\'t send back a proper XML response.\r\n\r\n' +
+							'Requested URL: ' + urlToCall + '\r\n' +
+							'Response text:\r\n' + oXmlHttp.responseText ) ;
+					return ;
+				}
 				oFCKXml.DOMDocument = oXmlHttp.responseXML ;
 				if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
 					asyncFunctionPointer( oFCKXml ) ;
@@ -55,9 +76,9 @@
 			}
 		}
 	}
-	
+
 	oXmlHttp.send( null ) ;
-	
+
 	if ( ! bAsync )
 	{
 		if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
@@ -71,15 +92,15 @@
 
 FCKXml.prototype.SelectNodes = function( xpath )
 {
-	if ( document.all )		// IE
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
 		return this.DOMDocument.selectNodes( xpath ) ;
 	else					// Gecko
 	{
 		var aNodeArray = new Array();
 
-		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, 
+		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
 				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
-		if ( xPathResult ) 
+		if ( xPathResult )
 		{
 			var oNode = xPathResult.iterateNext() ;
  			while( oNode )
@@ -87,14 +108,14 @@
  				aNodeArray[aNodeArray.length] = oNode ;
  				oNode = xPathResult.iterateNext();
  			}
-		} 
+		}
 		return aNodeArray ;
 	}
 }
 
-FCKXml.prototype.SelectSingleNode = function( xpath ) 
+FCKXml.prototype.SelectSingleNode = function( xpath )
 {
-	if ( document.all )		// IE
+	if ( navigator.userAgent.indexOf('MSIE') >= 0 )		// IE
 		return this.DOMDocument.selectSingleNode( xpath ) ;
 	else					// Gecko
 	{
@@ -103,7 +124,7 @@
 
 		if ( xPathResult && xPathResult.singleNodeValue )
 			return xPathResult.singleNodeValue ;
-		else	
+		else
 			return null ;
 	}
 }

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,214 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: browser.css
- * 	CSS styles used by all pages that compose the File Browser.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-body
-{
-	background-color: #e3e9f1;
-}
-
-form
-{
-	margin: 0px 0px 0px 0px ;
-	padding: 0px 0px 0px 0px ;
-}
-
-a, :link, :active, :visited {
-	color: #000000;
-	text-decoration: none;
-}
-
-:hover {
-	color: #0000fa;
-}	
-
-a img {
-	border-width: 0px;
-	border-style: none;
-}
-
-frame
-{
-background-color: #e3e9f1;
-border-color: #000000;
-border-collapse: collapse;
-}
-
-frameset
-{
-background-color: #e3e9f1;
-border-color: #000000;
-border-collapse: collapse;
-}
-
-.progress_hollow
-{
-	background-color: transparent;
-}
-
-.progress_filled
-{
-	background-color: #8fa7c7;
-}
-
-.progress_bar
-{
-	background-color: #F0F7FF;
-	border-width: 1px;
-	border-color: #000000;
-	border-style: solid;
-}
-
-.Frame_none
-{
-	border-width: 0px;
-	border-style: none;
-}
-
-.Frame_t
-{
-	border-right: 0px none;
-	border-top: 1px solid;
-	border-left: 0px none;
-	border-bottom: 0px none;
-}
-
-.Frame_tr
-{
-	border-right: 1px solid;
-	border-top: 1px solid;
-	border-left: 0px none;
-	border-bottom: 0px none;
-}
-
-.Frame_tl
-{
-	border-right: 0px none;
-	border-top: 1px solid;
-	border-left: 1px solid;
-	border-bottom: 0px none;
-}
-
-.Frame_r
-{
-	border-right: 1px solid;
-	border-top: 0px none;
-	border-left: 0px none;
-	border-bottom: 0px none;
-}
-
-.Frame_l
-{
-	border-right: 0px none;
-	border-top: 0px none;
-	border-left: 1px solid;
-	border-bottom: 0px none;
-}
-
-.Frame_rl
-{
-	border-right: 1px solid;
-	border-top: 0px none;
-	border-left: 1px solid;
-	border-bottom: 0px none;
-}
-
-.Frame_b
-{
-	border-right: 0px none;
-	border-top: 0px none;
-	border-left: 0px none;
-	border-bottom: 1px solid;
-}
-
-.Frame_br
-{
-	border-right: 1px solid;
-	border-top: 0px none;
-	border-left: 0px none;
-	border-bottom: 1px solid;
-}
-
-.Frame_bl
-{
-	border-right: 0px none;
-	border-top: 0px none;
-	border-left: 1px solid;
-	border-bottom: 1px solid;
-}
-
-.Frame_tb
-{
-	border-right: 0px none;
-	border-top: 1px solid;
-	border-left: 0px none;
-	border-bottom: 1px solid;
-}
-
-.Frame_all
-{
-	border-right: 1px solid;
-	border-top: 1px solid;
-	border-left: 1px solid;
-	border-bottom: 1px solid;
-}
-
-body.FileArea
-{
-
-	background-color: #ffffff;
-}
-
-body, td, input, select
-{
-	font-size: 11px;
-	font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
-}
-
-.ActualFolder
-{
-	font-weight: bold;
-	font-size: 14px;
-}
-
-.PopupButtons
-{
-	border-top: #8fa7c7 1px solid;
-	background-color: #ffffff;
-	padding: 7px 10px 7px 10px;
-}
-
-.Button, button
-{
-	border-right: #737357 1px solid;
-	border-top: #737357 1px solid;
-	border-left: #737357 1px solid;
-	color: #ffffff;
-	border-bottom: #737357 1px solid;
-	background-color: #8fa7c7;
-}
-
-.FolderListCurrentFolder img
-{
-	background-image: url(images/FolderOpened.gif);
-}
-
-.FolderListFolder img
-{
-	background-image: url(images/Folder.gif);
-}
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/browser.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,40 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: browser.html
- * 	This page compose the File Browser dialog frameset.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>FCKeditor - Resources Browser</title>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-	</head>
-	<frameset cols="150,*" framespacing="0" bordercolor="#f1f1e3" frameborder="no" class="Frame_none">
-		<frameset rows="50,*" framespacing="0"  class="Frame_r">
-			<frame src="frmresourcetype.html" scrolling="no" frameborder="no">
-			<frame name="frmFolders" id="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="no">
-		</frameset>
-		<frameset rows="50,*,50" framespacing="0" class="Frame_none">
-			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="no">
-			<frame name="frmResourcesList" id="mainWindow" src="frmresourceslist.html" scrolling="auto" frameborder="no">
-			<frameset cols="150,*,0" framespacing="0" frameborder="no" class="Frame_t">
-				<frame name="frmCreateFolder" id="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="no">
-				<frame name="frmUpload" id="frmUpload" src="frmupload.html" scrolling="no" frameborder="no">
-				<frame name="frmUploadWorker" src="" scrolling="no" frameborder="no">
-			</frameset>
-		</frameset>
-	</frameset>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Auth/Default.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Auth/Default.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Auth/Default.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,86 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: Default.php
- * 	Im not very clued up on authentication but even i can see that anyone 
- * 	who can spoof an IP could perform a replay attack on this, but its 
- * 	better than nothing. 
- * 	There is a 1 hour time out on tokens to help this slightly.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class Auth {
-	
-	function authenticate($data,$fckphp_config) {
-
-		//Hold relevant$fckphp_config vars locally
-		$key=$fckphp_config['auth']['Handler']['SharedKey'];
-		$fckphp_config['authSuccess']=false;
-		
-		//Decrypt the data passed to us
-		$decData="";
-		for ($i=0;$i<strlen($data)-1;$i+=2) $decData.=chr(hexdec($data[$i].$data[$i+1]));
-		
-		$decArray=explode("|^SEP^|",$decData);
-		
-		if (sizeof($decArray)==4) {
-			//0 = Timestamp
-			//1 = Client IP
-			//2 = Username
-			//3 = MD5
-			if ($decArray[3]==md5($decArray[0]."|^SEP^|".$decArray[1]."|^SEP^|".$decArray[2].$key)) {
-				if (time()-$decArray[0]<3600) { //Token valid for max of 1 hour
-					if ($_SERVER['REMOTE_ADDR']==$decArray[1]) {
-						
-						//Set the file root to the users individual one
-						$top=str_replace("//","/",$fckphp_config['basedir'].'/'.$fckphp_config['UserFilesPath']."/users");
-						$fckphp_config['UserFilesPath']=$fckphp_config['UserFilesPath']."/users/".$decArray[2];
-						$up=str_replace("//","/",$fckphp_config['basedir'].'/'.$fckphp_config['UserFilesPath']);
-						
-						if (!file_exists($top)) {
-							mkdir($top,0777) or die("users folder in UserFilesPath does not exist and could not be created.");
-							chmod($top,0777);
-						}
-						
-						//Create folder if it doesnt exist
-						if (!file_exists($up)) {
-							mkdir($up,0777) or die("users/".$decArray[2]." folder in UserFilesPath does not exist and could not be created.");
-							chmod($up,0777); //Just for good measure
-						}
-						
-						//Create resource area subfolders if they dont exist
-						foreach ($fckphp_config['ResourceTypes'] as $value) {
-							if (!file_exists("$up/$value")) {
-								mkdir("$up/$value",0777) or die("users/".$decArray[2]."/$value folder in UserFilesPath does not exist and could not be created.");
-								chmod("$up/$value",0777); //Just for good measure
-							}
-						}
-						$fckphp_config['authSuccess']=true;
-					} else {
-						//Not same client as auth token is for
-					}
-				} else {
-					//Token more than an hour old
-				}
-			} else {
-				//Data integrity failed
-			}
-		} else {
-			//Not enough data (decryption failed?)
-		}
-		
-		return $fckphp_config;
-	}
-}
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/CreateFolder.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/CreateFolder.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/CreateFolder.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,91 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: CreateFolder.php
- * 	Implements the CreateFolder command to make a new folder
- * 	in the current directory. Output is in XML.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class CreateFolder {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function CreateFolder($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($this->fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->newfolder=str_replace(array("..","/"),"",$_GET['NewFolderName']);
-	}
-	
-	function checkFolderName($folderName) {
-		
-		//Check the name is not too long
-		if (strlen($folderName)>$this->fckphp_config['MaxDirNameLength']) return false;
-		
-		//Check that it only contains valid characters
-		for($i=0;$i<strlen($folderName);$i++) if (!in_array(substr($folderName,$i,1),$this->fckphp_config['DirNameAllowedChars'])) return false;
-		
-		//If it got this far all is ok
-		return true;
-	}
-	
-	function run() {
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="CreateFolder" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<?php
-		$newdir=str_replace("//","/",($this->real_cwd."/".$this->newfolder));
-		
-		//Check the new name
-		if ($this->checkFolderName($this->newfolder)) {
-			
-			//Check if it already exists
-			if (is_dir($newdir)) {
-				$err_no=101; //Folder already exists
-			} else {
-				
-				//Check if we can create the directory here
-				if (is_writeable($this->real_cwd)) {
-					
-					//Make the directory
-					if (mkdir($newdir,0777)) {
-						$err_no=0; //Success
-					} else {
-					
-						$err_no=110; //Unknown error
-					}	
-				} else {
-					$err_no=103; //No permissions to create
-				}
-			}
-		} else {
-			$err_no=102; //Invalid Folder Name
-		}
-		
-	?>
-	<Error number="<?php echo "".$err_no; ?>" />
-</Connector>
-		<?php
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFile.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFile.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFile.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,64 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: DeleteFile.php
- * 	Implements the DeleteFile command to delete a file
- * 	in the current directory. Output is in XML.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class DeleteFile {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function DeleteFile($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($this->fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->filename=str_replace(array("..","/"),"",$_GET['FileName']);
-	}
-	
-	function run() {
-		$result1=false;
-		$result2=true;
-		
-		$thumb=$this->real_cwd.'/.thumb_'.$this->filename;
-		$result1=unlink($this->real_cwd.'/'.$this->filename);
-		if (file_exists($thumb)) $result2=unlink($thumb);
-		
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="DeleteFile" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<?php
-		if ($result1&&$result2) {
-			$err_no=0;
-		} else {
-			$err_no=302;
-		}
-		
-	?>
-	<Error number="<?php echo "".$err_no; ?>" />
-</Connector>
-		<?php
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFolder.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFolder.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/DeleteFolder.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,78 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: DeleteFolder.php
- * 	Implements the DeleteFolder command to delete a folder
- * 	in the current directory. Output is in XML.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class DeleteFolder {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function DeleteFolder($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($this->fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->foldername=str_replace(array("..","/"),"",$_GET['FolderName']);
-	}
-	
-	function run() {
-		
-		if ($this->delDir($this->real_cwd.'/'.$this->foldername)) {
-			$err_no=0;
-		} else {
-			$err_no=402;
-		}
-		
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="DeleteFolder" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<Error number="<?php echo "".$err_no; ?>" />
-</Connector>
-		<?php
-	}
-	
-	
-	function delDir($dir) {
-		$dh=opendir($dir);
-		if ($dh) {
-			while ($entry=readdir($dh)) {
-				if (($entry!=".")&&($entry!="..")) {
-					if (is_dir($dir.'/'.$entry)) {
-						$this->delDir($dir.'/'.$entry);	
-					} else {
-						$thumb=$dir.'/.thumb_'.$entry;
-						if (file_exists($thumb)) if (!unlink($thumb)) return false;
-						if (!unlink($dir.'/'.$entry)) return false;
-					}
-				}
-			}	
-			closedir($dh);
-			return rmdir($dir);
-		} else {
-			return false;
-		}
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/FileUpload.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/FileUpload.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/FileUpload.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,248 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: FileUpload.php
- * 	Implements the FileUpload command,
- * 	Checks the file uploaded is allowed, 
- * 	then moves it to the user data area. 
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class FileUpload {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function FileUpload($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($this->fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-	}
-	
-	function cleanFilename($filename) {
-		$n_filename="";
-		
-		//Check that it only contains valid characters
-		for($i=0;$i<strlen($filename);$i++) if (in_array(substr($filename,$i,1),$this->fckphp_config['FileNameAllowedChars'])) $n_filename.=substr($filename,$i,1);
-		
-		//If it got this far all is ok
-		return $n_filename;
-	}
-	
-	function run() {
-		//If using CGI Upload script, get file info and insert into $_FILE array
-		if 	(
-				(sizeof($_FILES)==0) && 
-				isset($_GET['file']) && 
-				isset($_GET['file']['NewFile']) && 
-				is_array($_GET['file']['NewFile'])
-			) {
-			if (isset($_GET['file']['NewFile']['name'])&&$_GET['file']['NewFile']['size']&&$_GET['file']['NewFile']['tmp_name']) {
-				$_FILES['NewFile']['name']=basename(str_replace("\\","/",$_GET['file']['NewFile']['name']));
-				$_FILES['NewFile']['size']=$_GET['file']['NewFile']['size'];
-				$_FILES['NewFile']['tmp_name']=$_GET['file']['NewFile']['tmp_name'];
-			} else {
-				$disp="202,'Incomplete file information from upload CGI'";
-			}
-		}
-		
-// 		if (isset($_FILES['NewFile'])&&isset($_FILES['NewFile']['name'])&&($_FILES['NewFile']['name']!=""))
-// 			$_FILES['NewFile']['name']=$_FILES['NewFile']['name']; //$this->cleanFilename($_FILES['NewFile']['name']);
-		
-		$typeconfig=$this->fckphp_config['ResourceAreas'][$this->type];
-		
-		header ("content-type: text/html");
-		if (sizeof($_FILES)>0) {
-			if (array_key_exists("NewFile",$_FILES)) {
-				if ($_FILES['NewFile']['size']<($typeconfig['MaxSize']*1024)) {
-
-					$filename=basename(str_replace("\\","/",$_FILES['NewFile']['name']));
-					
-					$lastdot=strrpos($filename,".");
-					
-					if ($lastdot!==false) {
-						$ext=substr($filename,($lastdot+1));
-						$filename=substr($filename,0,$lastdot);
-						
-						if (in_array(strtolower($ext),$typeconfig['AllowedExtensions'])) {
-						
-							$test=0;
-							$dirSizes=array();
-							$globalSize=0;
-							$failSizeCheck=false;
-							if ($this->fckphp_config['DiskQuota']['Global']!=-1) {
-								foreach ($this->fckphp_config['ResourceTypes'] as $resType) {
-									
-									$dirSizes[$resType]=
-										$this->getDirSize(
-											$this->fckphp_config['basedir']."/".$this->fckphp_config['UserFilesPath']."/$resType");
-									
-									if ($dirSizes[$resType]===false) {
-										//Failed to stat a directory, fall out
-										$failSizeCheck=true;
-										$msg="\\nUnable to determine the size of a folder.";
-										break;
-									}
-									$globalSize+=$dirSizes[$resType];
-								}
-								
-								$globalSize+=$_FILES['NewFile']['size'];
-								
-								if (!$failSizeCheck) {
-									if ($globalSize>($this->fckphp_config['DiskQuota']['Global']*1048576)) {
-										$failSizeCheck=true;
-										$msg="\\nYou are over the global disk quota.";
-									}
-								}
-							}
-							
-							if (($typeconfig['DiskQuota']!=-1)&&(!$failSizeCheck)) {
-								if ($this->fckphp_config['DiskQuota']['Global']==-1) {
-									$dirSizes[$this->type]=
-										$this->getDirSize(
-											$this->fckphp_config['basedir']."/".$this->fckphp_config['UserFilesPath']."/".$this->type);
-								}
-								
-								if (($dirSizes[$this->type]+$_FILES['NewFile']['size'])>
-									($typeconfig['DiskQuota']*1048576)) {
-									$failSizeCheck=true;	
-									$msg="\\nYou are over the disk quota for this resource type.";
-								}
-							}
-							
-							if ((($this->fckphp_config['DiskQuota']['Global']!=-1)||($typeconfig['DiskQuota']!=-1))&&$failSizeCheck) {
-								//Disk Quota over
-								$disp="202,'Over disk quota, ".$msg."'";
-							} else {
-						
-								if (file_exists($this->real_cwd."/$filename.$ext")) {
-									$taskDone=false;
-									
-									//File already exists, try renaming
-									//If there are more than 200 files with
-									//	the same name giveup
-									for ($i=1;(($i<200)&&($taskDone==false));$i++) {
-										if (!file_exists($this->real_cwd."/$filename($i).$ext")) {
-											if (is_uploaded_file($_FILES['NewFile']['tmp_name'])) {
-												if 
-												(move_uploaded_file($_FILES['NewFile']['tmp_name'],($this->real_cwd."/$filename($i).$ext"))) {
-													chmod(($this->real_cwd."/$filename($i).$ext"),0777);
-													$disp="201,'..$filename($i).$ext'";
-												} else {
-													$disp="202,'Failed to upload file, internal error.'";
-												}
-											} else {
-												if 
-												(rename($_FILES['NewFile']['tmp_name'],($this->real_cwd."/$filename($i).$ext"))) {
-													chmod(($this->real_cwd."/$filename($i).$ext"),0777);
-													$disp="201,'$filename($i).$ext'";
-												} else {
-													$disp="202,'Failed to upload file, internal error.'";
-												}
-											}
-											$taskDone=true;	
-										}
-									}
-									if ($taskDone==false) {
-										$disp="202,'Failed to upload file, internal error..'";
-									}
-								} else {
-									//Upload file
-									if (is_uploaded_file($_FILES['NewFile']['tmp_name'])) {
-										if (move_uploaded_file($_FILES['NewFile']['tmp_name'],($this->real_cwd."/$filename.$ext"))) {
-											chmod(($this->real_cwd."/$filename.$ext"),0777);
-											$disp="0";
-										} else {
-											$disp="202,'Failed to upload file, internal error...'";
-										}
-									} else {
-										if (rename($_FILES['NewFile']['tmp_name'],($this->real_cwd."/$filename.$ext"))) {
-											chmod(($this->real_cwd."/$filename.$ext"),0777);
-											$disp="0";
-										} else {
-											$disp="202,'Failed to upload file, internal error...'";
-										}
-									}
-								}
-							}
-						} else {
-							//Disallowed file extension
-							$disp="202,'Disallowed file type.'";
-						}
-						
-					} else {
-						//No file extension to check
-						$disp="202,'Unable to determine file type of file'";
-					}	
-					
-				} else {
-					//Too big
-					$disp="202,'This file exceeds the maximum upload size.'";
-				}
-			} else {
-				//No file uploaded with field name NewFile
-				$disp="202,'Unable to find uploaded file.'";
-			}
-		} else {
-			//No files uploaded
-			
-			//Should really send something back saying
-			//invalid file, but this breaks the filemanager 
-			//with firefox, so for now we'll just exit
-			exit(0);
-			//$disp="202";
-		}
-
-		?>
-		<html>
-		<head>
-			<title>Upload Complete</title>
-		</head>
-		<body>
-		<script type="text/javascript">
-			window.parent.frames['frmUpload'].OnUploadCompleted(<?php echo $disp; ?>) ;
-		</script>
-		</body>
-		</html>
-		<?php
-		
-	}
-	
-	function getDirSize($dir) {
-		$dirSize=0;
-		if ($dh=@opendir($dir)) {
-			while ($file=@readdir($dh)) {
-				if (($file!=".")&&($file!="..")) {
-					if (is_dir($dir."/".$file)) {
-						$tmp_dirSize=$this->getDirSize($dir."/".$file);
-						if ($tmp_dirSize!==false) $dirSize+=$tmp_dirSize;
-					} else {
-						$dirSize+=filesize($dir."/".$file);
-					}
-				}
-			}
-			@closedir($dh);
-		} else {
-			return false;
-		}
-		
-		return $dirSize;
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFolders.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFolders.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFolders.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,66 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: GetFolders.php
- * 	Implements the GetFolders command, to list the folders 
- * 	in the current directory. Output is in XML
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class GetFolders {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	
-	function GetFolders($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-	}
-	
-	function run() {
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="GetFolders" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<Folders>
-		<?php
-			if ($dh=opendir($this->real_cwd)) {
-				while (($filename=readdir($dh))!==false) {
-					if (($filename!=".")&&($filename!="..")) {
-						if (is_dir($this->real_cwd."/$filename")) {
-							
-							//check if$fckphp_configured not to show this folder
-							$hide=false;
-							for($i=0;$i<sizeof($this->fckphp_config['ResourceAreas'][$this->type]['HideFolders']);$i++) 
-								$hide=(ereg($this->fckphp_config['ResourceAreas'][$this->type]['HideFolders'][$i],$filename)?true:$hide);
-							
-							if (!$hide) echo "<Folder name=\"$filename\" />\n";
-						}
-					}
-				}
-				closedir($dh);
-			}
-		?>
-	</Folders>
-</Connector>
-		<?php
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetFoldersAndFiles.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,152 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: GetFoldersAndFiles.php
- * 	Implements the GetFoldersAndFiles command, to list
- * 	files and folders in the current directory.
- * 	Output is in XML
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class GetFoldersAndFiles {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	
-	function GetFoldersAndFiles($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-	}
-	
-	function run() {
-
-		header ("Content-Type: application/xml; charset=utf-8");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<!DOCTYPE Connector [
-
-<?php include "dtd/iso-lat1.ent";?>
-	
-	<!ELEMENT Connector	(CurrentFolder,Folders,Files)>
-		<!ATTLIST Connector command CDATA "noname">
-		<!ATTLIST Connector resourceType CDATA "0">
-		
-	<!ELEMENT CurrentFolder	(#PCDATA)>
-		<!ATTLIST CurrentFolder path CDATA "noname">
-		<!ATTLIST CurrentFolder url CDATA "0">
-		
-	<!ELEMENT Folders	(#PCDATA)>
-	
-	<!ELEMENT Folder	(#PCDATA)>
-		<!ATTLIST Folder name CDATA "noname_dir">
-		
-	<!ELEMENT Files		(#PCDATA)>
-		
-	<!ELEMENT File		(#PCDATA)>
-		<!ATTLIST File name CDATA "noname_file">
-		<!ATTLIST File size CDATA "0">
-] >
-		
-<Connector command="GetFoldersAndFiles" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->fckphp_config['urlprefix'] . $this->actual_cwd; ?>" />
-	<Folders>
-<?php
-			$files=array();
-			if ($dh=opendir($this->real_cwd)) {
-				while (($filename=readdir($dh))!==false) {
-					
-					if (($filename!=".")&&($filename!="..")) {
-						if (is_dir($this->real_cwd."/$filename")) {
-							//check if$fckphp_configured not to show this folder
-							$hide=false;
-							for($i=0;$i<sizeof($this->fckphp_config['ResourceAreas'][$this->type]['HideFolders']);$i++) 
-								$hide=(ereg($this->fckphp_config['ResourceAreas'][$this->type]['HideFolders'][$i],$filename)?true:$hide);
-							
-							if (!$hide) echo "\t\t<Folder name=\"$filename\" />\n";
-							
-						} else {
-							array_push($files,$filename);
-						}
-					}
-				}
-				closedir($dh); 
-			}
-			echo "\t</Folders>\n";
-			echo "\t<Files>\n";
-
-			for ($i=0;$i<sizeof($files);$i++) {
-				
-				$lastdot=strrpos($files[$i],".");
-				$ext=(($lastdot!==false)?(substr($files[$i],$lastdot+1)):"");
-				
-				if (in_array(strtolower($ext),$this->fckphp_config['ResourceAreas'][$this->type]['AllowedExtensions'])) {
-				
-					//check if$fckphp_configured not to show this file
-					$editable=$hide=false;
-					for($j=0;$j<sizeof($this->fckphp_config['ResourceAreas'][$this->type]['HideFiles']);$j++) 
-						$hide=(ereg($this->fckphp_config['ResourceAreas'][$this->type]['HideFiles'][$j],$files[$i])?true:$hide);
-					
-					if (!$hide) {
-						if ($this->fckphp_config['ResourceAreas'][$this->type]['AllowImageEditing']) 
-							$editable=$this->isImageEditable($this->real_cwd."/".$files[$i]);
-						
-						echo "\t\t<File name=\"".htmlentities($files[$i])."\" size=\"".ceil(filesize($this->real_cwd."/".$files[$i])/1024)."\" editable=\"" . ( $editable?"1":"0" ) . "\" />\n";	
-					}
-
-				}
-				
-			}
-		
-			echo "\t</Files>\n"; 
-			echo "</Connector>\n";
-	}
-	
-	
-	function isImageEditable($file) {
-		$fh=fopen($file,"r");
-		if ($fh) {
-			$start4=fread($fh,4);
-			fclose($fh);
-			
-			$start3=substr($start4,0,3);
-			
-			if ($start4=="\x89PNG") { //PNG
-				return (function_exists("imagecreatefrompng") && function_exists("imagepng"));
-				
-			} elseif ($start3=="GIF") { //GIF
-				return (function_exists("imagecreatefromgif") && function_exists("imagegif"));
-				
-			} elseif ($start3=="\xFF\xD8\xFF") { //JPEG
-				return (function_exists("imagecreatefromjpeg")&& function_exists("imagejpeg"));
-				
-			} elseif ($start4=="hsi1") { //JPEG
-				return (function_exists("imagecreatefromjpeg")&& function_exists("imagejpeg"));
-				
-			} else {
-				return false;
-			}
-			
-		} else {
-			return false;
-		}
-	}
-	
-	
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetUploadProgress.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetUploadProgress.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/GetUploadProgress.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,89 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: GetUploadProgress.php
- * 	Implements the GetFolders command, to list the folders 
- * 	in the current directory. Output is in XML
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class GetUploadProgress {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $uploadID;
-	
-	function GetUploadProgress($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->uploadID=$_GET['uploadID'];
-		$this->refreshURL=$_GET['refreshURL'];
-		
-	}
-	
-	function run() {
-		if (isset($this->refreshURL)&&($this->refreshURL!="")) {
-			//Continue monitoring
-			$uploadProgress=file($this->refreshURL);
-			$url=$this->refreshURL;
-		} else {
-			//New download
-			$uploadProgressHandler=$this->fckphp_config['uploadProgressHandler'];
-			if ($uploadProgressHandler=='') {
-				//Progresshandler not specified, return generic response
-		?>
-<Connector command="GetUploadProgress" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<Progress max="2" value="1" />
-	<RefreshURL url="" />
-</Connector>
-		<?php
-				exit(0);
-			}
-			
-			$url=$uploadProgressHandler."?iTotal=0&iRead=0&iStatus=1&sessionid=".$this->uploadID."&dtnow=".time()."&dtstart=".time();
-			
-			$_SESSION[$this->uploadID]=$url;
-			$uploadProgress=file($url);
-			
-		}
-		
-		$uploadProgress2=implode("\n",$uploadProgress);
-		
-		$parser = xml_parser_create();
-		xml_parse_into_struct($parser, $uploadProgress2, $vals, $index);
-		
-		$refreshURL=isset($vals[$index['REFRESHURL'][0]]['value'])?$vals[$index['REFRESHURL'][0]]['value']:"";
-		$totalBytes=isset($vals[$index['TOTALBYTES'][0]]['value'])?$vals[$index['TOTALBYTES'][0]]['value']:0;
-		$readBytes=isset($vals[$index['READBYTES'][0]]['value'])?$vals[$index['READBYTES'][0]]['value']:0;
-		$status=isset($vals[$index['STATUS'][0]]['value'])?$vals[$index['STATUS'][0]]['value']:1;
-		
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="GetUploadProgress" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<Progress max="<?php echo $totalBytes; ?>" value="<?php echo $readBytes; ?>" />
-	<RefreshURL url="<?php echo htmlentities($refreshURL); ?>" />
-</Connector>
-		<?php
-		xml_parser_free($parser);
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFile.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFile.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFile.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,99 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: RenameFile.php
- * 	Implements the DeleteFile command to delete a file
- * 	in the current directory. Output is in XML
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class RenameFile {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function RenameFile($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->filename=str_replace(array("..","/"),"",$_GET['FileName']);
-		$this->newname=str_replace(array("..","/"),"",$this->checkName($_GET['NewName']));
-	}
-	
-	function checkName($name) {
-		$newName="";
-		for ($i=0;$i<strlen($name);$i++) {
-			if (in_array($name[$i],$this->fckphp_config['FileNameAllowedChars'])) $newName.=$name[$i];
-		}
-		return $newName;
-	}
-	
-	function run() {
-		$result1=false;
-		$result2=true;
-		
-		if ($this->newname!='') {
-		
-			if ($this->nameValid($this->newname)) {
-				//Remove thumbnail if it exists
-				$result2=true;
-				$thumb=$this->real_cwd.'/.thumb_'.$this->filename;
-				if (file_exists($thumb)) $result2=unlink($thumb);
-				
-				$result1=rename($this->real_cwd.'/'.$this->filename,$this->real_cwd.'/'.$this->newname);
-			} else {
-				$result1=false;
-			}
-		}
-		
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="RenameFile" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<?php
-		if ($result1&&$result2) {
-			$err_no=0;
-		} else {
-			$err_no=502;
-		}
-	?>
-	<Error number="<?php echo "".$err_no; ?>" />
-</Connector>
-		<?php
-	}
-	
-	function nameValid($fname) {
-		$type_config=$this->fckphp_config['ResourceAreas'][$this->type];
-		
-		$lastdot=strrpos($fname,".");
-			
-		if ($lastdot!==false) {
-			$ext=substr($fname,($lastdot+1));
-			$fname=substr($fname,0,$lastdot);
-				
-			if (in_array(strtolower($ext),$type_config['AllowedExtensions'])) {
-				return true;
-			} else {
-				return false;
-			}
-		}
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFolder.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFolder.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/RenameFolder.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,73 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: RenameFolder.php
- * 	Implements the DeleteFile command to delete a file
- * 	in the current directory. Output is in XML
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-class RenameFolder {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $newfolder;
-	
-	function RenameFolder($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->foldername=str_replace(array("..","/"),"",$_GET['FolderName']);
-		$this->newname=str_replace(array("..","/"),"",$this->checkName($_GET['NewName']));
-	}
-	
-	function checkName($name) {
-		$newName="";
-		for ($i=0;$i<strlen($name);$i++) {
-			if (in_array($name[$i],$this->fckphp_config['DirNameAllowedChars'])) $newName.=$name[$i];
-		}
-		return $newName;
-	}
-	
-	function run() {
-		$result1=false;
-
-		
-		if ($this->newname!='') {
-			$result1=rename($this->real_cwd.'/'.$this->foldername,$this->real_cwd.'/'.$this->newname);
-		}
-		
-		header ("content-type: text/xml");
-		echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-		?>
-<Connector command="RenameFolder" resourceType="<?php echo $this->type; ?>">
-	<CurrentFolder path="<?php echo $this->raw_cwd; ?>" url="<?php echo $this->actual_cwd; ?>" />
-	<?php
-		if ($result1) {
-			$err_no=0;
-		} else {
-			$err_no=602;
-		}
-		
-	?>
-	<Error number="<?php echo "".$err_no; ?>" />
-</Connector>
-		<?php
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/Thumbnail.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/Thumbnail.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/Thumbnail.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,243 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: Thumbnail.php
- * 	Implements the Thumbnail command, to return
- * 	a thumbnail to the browser for the sent file,
- * 	if the file is an image an attempt is made to
- * 	generate a thumbnail, otherwise an appropriate
- * 	icon is returned.
- * 	Output is image data
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-include "helpers/iconlookup.php";
-
-class Thumbnail {
-	var $fckphp_config;
-	var $type;
-	var $cwd;
-	var $actual_cwd;
-	var $filename;
-	
-	function Thumbnail($fckphp_config,$type,$cwd) {
-		$this->fckphp_config=$fckphp_config;
-		$this->type=$type;
-		$this->raw_cwd=$cwd;
-		$this->actual_cwd=str_replace("//","/",($fckphp_config['UserFilesPath']."/$type/".$this->raw_cwd));
-		$this->real_cwd=str_replace("//","/",($this->fckphp_config['basedir']."/".$this->actual_cwd));
-		$this->filename=str_replace(array("..","/"),"",$_GET['FileName']);
-	}
-	
-	function run() {
-		//$mimeIcon=getMimeIcon($mime);
-		$fullfile=$this->real_cwd.'/'.$this->filename;
-		$thumbfile=$this->real_cwd.'/.thumb_'.$this->filename;
-		$icon=false;
-		
-		if (file_exists($thumbfile)) {
-			$icon=$thumbfile;
-		} else {
-			$mime=$this->getMIME($fullfile);
-			$ext=strtolower($this->getExtension($this->filename));	
-			
-			if ($this->isImage($mime,$ext))
-				{
-				
-				//Try and find a thumbnail, else try to generate one
-				//	else send generic picture icon.
-				
-				if ($this->isJPEG($mime,$ext)) {
-					$result=$this->resizeFromJPEG($fullfile);
-					
-				} elseif ($this->isGIF($mime,$ext)) {
-					$result=$this->resizeFromGIF($fullfile);
-					
-				} elseif ($this->isPNG($mime,$ext)) {
-					$result=$this->resizeFromPNG($fullfile);
-				}
-				
-				if ($result!==false) {
-					if (function_exists("imagejpeg")) {
-						imagejpeg($result,$thumbfile,70);
-						chmod($thumbfile,0777);
-						$icon=$thumbfile;
-					} elseif (function_exists("imagepng")) {
-						imagepng($result,$thumbfile);
-						chmod($thumbfile,0777);
-						$icon=$thumbfile;
-					} elseif (function_exists("imagegif")) {
-						imagegif($result,$thumbfile);
-						chmod($thumbfile,0777);
-						$icon=$thumbfile;
-					} else {
-						$icon=iconLookup($mime,$ext);
-					}
-					
-				} else {
-					$icon=iconLookup($mime,$ext);
-				}
-			} else {
-				$icon=iconLookup($mime,$ext);
-			}
-		}
-		
-		
-		$iconMime=$this->image2MIME($icon);
-		if ($iconMime==false) $iconMime="image/jpeg";
-		
-		header("Content-type: $iconMime",true);
-		readfile($icon);
-		
-	}
-	
-	function getMIME($file) {
-		$mime="text/plain";
-		
-		//If mime magic is installed
-		if (function_exists("mime_content_type")) {
-			$mime=mime_content_type($file);
-		} else {
-			$mime=$this->image2MIME($file);
-		}
-		
-		return strtolower($mime);
-	}
-	
-	function image2MIME($file) {
-		$fh=fopen($file,"r");
-		if ($fh) {
-			$start4=fread($fh,4);
-			$start3=substr($start4,0,3);
-			
-			if ($start4=="\x89PNG") {
-				return "image/png";
-			} elseif ($start3=="GIF") {
-				return "image/gif";
-			} elseif ($start3=="\xFF\xD8\xFF") {
-				return "image/jpeg";
-			} elseif ($start4=="hsi1") {
-				return "image/jpeg";
-			} else {
-				return false;
-			}
-			
-			unset($start3);unset($start4);
-			fclose($fh);
-		} else {
-			return false;
-		}
-	}
-	
-	
-	function isImage($mime,$ext) {
-		if (
-			($mime=="image/gif")||
-			($mime=="image/jpeg")||
-			($mime=="image/jpg")||
-			($mime=="image/pjpeg")||
-			($mime=="image/png")||
-			($ext=="jpg")||
-			($ext=="jpeg")||
-			($ext=="png")||
-			($ext=="gif") ) {
-		
-			return true;
-		} else {
-			return false;
-		}
-	}
-	
-	function isJPEG($mime,$ext) {
-		if (($mime=="image/jpeg")||($mime=="image/jpg")||($mime=="image/pjpeg")||($ext=="jpg")||($ext=="jpeg")) {
-			return true; 
-		} else {
-			return false;
-		}
-	}
-
-	function isGIF($mime,$ext) {
-		if (($mime=="image/gif")||($ext=="gif")) {
-			return true; 
-		} else {
-			return false;
-		}
-	}
-	
-	function isPNG($mime,$ext) {
-		if (($mime=="image/png")||($ext=="png")) {
-			return true; 
-		} else {
-			return false;
-		}
-	}	
-	
-	function getExtension($filename) {
-		//Get Extension
-		$ext=""; 
-		$lastpos=strrpos($this->filename,'.'); 
-		if ($lastpos!==false) $ext=substr($this->filename,($lastpos+1));
-		return strtolower($ext);
-	}
-	
-	function resizeFromJPEG($file) {
-		if (function_exists("imagecreatefromjpeg")) {
-			$img=@imagecreatefromjpeg($this->real_cwd.'/'.$this->filename);
-			return (($img)?$this->resizeImage($img):false);
-		} else { return false; }
-	}
-	
-	function resizeFromGIF($file) {
-		if (function_exists("imagecreatefromgif")) {
-			$img=@imagecreatefromgif($this->real_cwd.'/'.$this->filename);
-			return (($img)?$this->resizeImage($img):false);
-		} else { return false; }
-	}
-	
-	function resizeFromPNG($file) {
-		if (function_exists("imagecreatefrompng")) {
-			$img=@imagecreatefrompng($this->real_cwd.'/'.$this->filename);
-			return (($img)?$this->resizeImage($img):false);
-		} else { return false; }
-	}
-	
-	function resizeImage($img) {
-		//Get size for thumbnail
-		$width=imagesx($img); $height=imagesy($img);
-		if ($width>$height) { $n_height=$height*(96/$width); $n_width=96; } else { $n_width=$width*(96/$height); $n_height=96; }
-		
-		$x=0;$y=0;
-		if ($n_width<96) $x=round((96-$n_width)/2);
-		if ($n_height<96) $y=round((96-$n_height)/2);
-		
-		$thumb=imagecreatetruecolor(96,96);
-		
-		#Background colour fix by:
-		#Ben Lancaster (benlanc at ster.me.uk)
-		$bgcolor = imagecolorallocate($thumb,255,255,255);
-		imagefill($thumb, 0, 0, $bgcolor);
-		
-		if (function_exists("imagecopyresampled")) {
-			if (!($result=@imagecopyresampled($thumb,$img,$x,$y,0,0,$n_width,$n_height,$width,$height))) {
-				$result=imagecopyresized($thumb,$img,$x,$y,0,0,$n_width,$n_height,$width,$height);
-			}	
-		} else {
-			$result=imagecopyresized($thumb,$img,$x,$y,0,0,$n_width,$n_height,$width,$height);
-		}
-
-		return ($result)?$thumb:false;
-	}
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/.htaccess
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/.htaccess	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/.htaccess	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1 +0,0 @@
-Options ExecCGI

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/header.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/header.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/header.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,41 +0,0 @@
-#!/usr/bin/perl
-
-# Mega Upload
-# PHP File Uploader with progress bar Version 1.42
-# Copyright (C) Raditha Dissanyake 2003
-# http://www.raditha.com
-
-# Licence:
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-# 
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-# 
-# The Initial Developer of the Original Code is Raditha Dissanayake.
-# Portions created by Raditha are Copyright (C) 2003
-# Raditha Dissanayake. All Rights Reserved.
-# 
-
-$tmp_dir="/www/m/c/mcpuk.net/tmp";
-
-$|=1;								#unbuffers streams
-
-$interval=1;				  # how often to refresh the progress bar
-
-$max_upload = 500000000000; # set this to whatever you feel suitable for you.
-					    
-
-
-# don't change the next few lines unless you have a very good reason to.
-
-$post_data_file = "$tmp_dir/$sessionid"."_postdata";
-$monitor_file = "$tmp_dir/$sessionid"."_flength";
-$signal_file = "$tmp_dir/$sessionid"."_signal";
-
-
-1;

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/iconlookup.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/iconlookup.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/iconlookup.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,111 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: iconlookup.php
- * 	(!)
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-function iconLookup($mime,$ext) {
-
-	$mimeIcons=array(
-			"image"=>"image.jpg",
-			"audio"=>"sound.jpg",
-			"video"=>"video.jpg",
-			"text"=>"document2.jpg",
-			"text/html"=>"html.jpg",
-			"application"=>"binary.jpg",
-			"application/pdf"=>"pdf.jpg",
-			"application/msword"=>"document2.jpg",
-			"application/postscript"=>"postscript.jpg",
-			"application/rtf"=>"document2.jpg",
-			"application/vnd.ms-excel"=>"document2.jpg",
-			"application/vnd.ms-powerpoint"=>"document2.jpg",
-			"application/x-tar"=>"tar.jpg",
-			"application/zip"=>"tar.jpg",
-			"message"=>"email.jpg",
-			"message/html"=>"html.jpg",
-			"model"=>"kmplot.jpg",
-			"multipart"=>"kmultiple.jpg"
-			);
-	
-	$extIcons=array(
-			"pdf"=>"pdf.jpg",
-			"ps"=>"postscript.jpg",
-			"eps"=>"postscript.jpg",
-			"ai"=>"postscript.jpg",
-			"ra"=>"real_doc.jpg",
-			"rm"=>"real_doc.jpg",
-			"ram"=>"real_doc.jpg",
-			"wav"=>"sound.jpg",
-			"mp3"=>"sound.jpg",
-			"ogg"=>"sound.jpg",
-			"eml"=>"email.jpg",
-			"tar"=>"tar.jpg",
-			"zip"=>"tar.jpg",
-			"bz2"=>"tar.jpg",
-			"tgz"=>"tar.jpg",
-			"gz"=>"tar.jpg",
-			"rar"=>"tar.jpg",
-			"avi"=>"video.jpg",
-			"mpg"=>"video.jpg",
-			"mpeg"=>"video.jpg",
-			"jpg"=>"image.jpg",
-			"gif"=>"image.jpg",
-			"png"=>"image.jpg",
-			"jpeg"=>"image.jpg",
-			"nfo"=>"info.jpg",
-			"xls"=>"spreadsheet.jpg",
-			"csv"=>"spreadsheet.jpg",
-			"html"=>"html.jpg",
-			"doc"=>"document2.jpg",
-			"rtf"=>"document2.jpg",
-			"txt"=>"document2.jpg",
-			"xla"=>"document2.jpg",
-			"xlc"=>"document2.jpg",
-			"xlt"=>"document2.jpg",
-			"xlw"=>"document2.jpg",
-			"txt"=>"document2.jpg"
-			);
-
-	if ($mime!="text/plain") {
-		//Check specific cases
-		$mimes=array_keys($mimeIcons);
-		if (in_array($mime,$mimes)) {
-			return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/".$mimeIcons[$mime];
-		} else {
-			//Check for the generic mime type
-			$mimePrefix="text";
-			$firstSlash=strpos($mime,"/"); 
-			if ($firstSlash!==false) $mimePrefix=substr($mime,0,$firstSlash);
-			
-			if (in_array($mimePrefix,$mimes)) {
-				return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/".$mimeIcons[$mimePrefix];
-			} else {
-				return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/empty.jpg";	
-			}
-		}
-	} else {
-		$extensions=array_keys($extIcons);
-		if (in_array($ext,$extensions)) {
-			return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/".$extIcons[$ext];
-		} else {
-			return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/empty.jpg";
-		}
-	}
-
-	return $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF'])."/images/empty.jpg";
-}
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/progress.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/progress.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/progress.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,413 +0,0 @@
-#!/usr/bin/perl -w
-
-# PHP File Uploader with progress bar Version 1.43	
-# Copyright (C) Raditha Dissanyake 2003,2004
-# http://www.raditha.com
-
-# Licence:
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-# 
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-# 
-# The Initial Developer of the Original Code is Raditha Dissanayake.
-# Portions created by Raditha are Copyright (C) 2003,2004
-# Raditha Dissanayake. All Rights Reserved.
-# 
-# Portions contributed by Orest Kinasevych are Copyright (C)
-# 2003 Kinasevych Saj
-
-#
-# CHANGES
-# 1.00 
-#   No longer uses cookies. This has two major benefits; the first
-#   being that minority of users who do not like cookies are not 
-#   inconvinienced. Secondly there is one less dependecy and this 
-#   would lead to a smoother setup for most people.
-#   (if you want to use cookies look at the contrib folder)
-#
-# 1.02
-#   added a cache control header in version 1.02
-#
-# 1.10
-#   Added a more detailed progress bar in version 
-#
-# 1.42
-#   The organization of the temporary files have been improved so to
-#   make is easier to clean up after abandoned uploads. (as suggested
-#   by Igor Kryltsov)
-#
-#
-	
-
-
-use CGI;
-use Fcntl qw(:DEFAULT :flock);
-
-#use Carp;		
-# Carp is only needed if you want debugging. Uncomment the above line
-# if you comment out any of the carp statements in the body of the 
-# script.
-
-
-#
-# the most obvious issue that we will face is file locking.
-# if two threads read and write from the same file at the same
-# time only one of them will be allowed to finish the operation.
-# Since we are storing our temporary data in a file we are likely to
-# run into that exact same problem.
-# We can't overcome it but we can make sure the progress bar does
-# not display junk when that happens.
-#
-#
-# status codes = 0-uploading, 1-started, 2- complete
-
-
-$query = new CGI();
-$sessionid = $query->param('sessionid');
-$sessionid =~ s/[^a-zA-Z0-9]//g;  # santized as suggested by Terrence Johnson.
-
-$iTotal = $query->param('iTotal');
-$iRead = $query->param('iRead');
-$status =  $query->param('iStatus');
-
-
-##
-# The code that deals with calculating elapsed time, time remaining 
-# and upload speed were contributed by Orest Kinasevych 
-##
-
-##
-# Get values assigned for current time and upload start time
-##
-#$dtnow = $query->param('dtnow'); # assign value for current time
-$dtnow=time;
-$dtstart = $query->param('dtstart'); # assign value for upload start time
-##
-
-
-#carp "$dtnow  $dtstart";
-
-$thisUrl = $query->url;
-
-##
-# Elapsed time
-# Calculate elapsed time and format for display
-##
-$dtelapsed = $dtnow - $dtstart;
-$dtelapsed_sec = ($dtelapsed % 60); # gets number of seconds
-$dtelapsed_min = ((($dtelapsed - $dtelapsed_sec) % 3600) / 60); # gets number of minutes
-$dtelapsed_hours = (((($dtelapsed - $dtelapsed_sec) - ($dtelapsed_min * 60)) % 86400) / 3600);
-# gets number of hours; assuming that we won't be going into days!
-if ($dtelapsed_sec < 10) { $dtelapsed_sec = "0$dtelapsed_sec"; } # append leading zero
-if ($dtelapsed_min < 10) { $dtelapsed_min = "0$dtelapsed_min"; } # append leading zero
-if ($dtelapsed_hours < 10) { $dtelapsed_hours = "0$dtelapsed_hours"; } # append leading zero
-$dtelapsedf = "$dtelapsed_hours:$dtelapsed_min:$dtelapsed_sec"; # display as 00:00:00
-##
-
-##
-# Upload speed
-##
-$bSpeed = 0; # if not yet determined
-if ($dtelapsed > 0) # avoid divide by zero errors
-{
-	$bSpeed = $iRead / $dtelapsed; # Bytes uploaded / Seconds elapsed = Bytes/Second speed
-	$bitSpeed = $bSpeed * 8; # bps
-	$kbitSpeed = $bitSpeed / 1000; # Kbps
-}
-else
-{
-	$kbitSpeed = $bSpeed; # just pass the zero value
-}
-$bSpeedf = sprintf("%d",$kbitSpeed); # remove decimals
-
-
-##
-# Est remaining time
-# Calculate remaining time based on upload speed so far
-##
-
-$bRemaining = $iTotal - $iRead; # Total size - amount uploaded = amount remaining
-$dtRemaining = 0;
-if ($bSpeed > 0) {
-	# Bytes remaining / Bytes/Second = Seconds 
-	$dtRemaining = $bRemaining / $bSpeed;
-}
-$dtRemaining = sprintf("%d",$dtRemaining); # remove decimals
-$dtRemaining_sec = ($dtRemaining % 60); # gets number of seconds
-$dtRemaining_min = ((($dtRemaining - $dtRemaining_sec) % 3600) / 60); # gets number of minutes
-$dtRemaining_hours = (((($dtRemaining - $dtRemaining_sec) - ($dtRemaining_min * 60)) % 86400) / 3600); # gets number of hours; assuming that we won't be going into days!
-if ($dtRemaining_sec < 10)
-{
- 	# append leading zero
-	$dtRemaining_sec = "0$dtRemaining_sec";
-}
-if ($dtRemaining_min < 10)
-{
-	# append leading zero
-	$dtRemaining_min = "0$dtRemaining_min";
-}
-if ($dtRemaining_hours < 10)
-{
- 	# append leading zero
-	$dtRemaining_hours = "0$dtRemaining_hours";
-}
-$dtRemainingf = "$dtRemaining_hours:$dtRemaining_min:$dtRemaining_sec"; # display as 00:00:00
-
-##
-# The values for iStatus are
-#	0 - in progress
-#	1 - New upload
-#	2 - Complete
-##
-
-#carp "iTotal = $iTotal, iRead = $iRead, status = $status, sessionId = $sessionid";
-
-require("./header.cgi");
-
-
-sub readFlength()
-{
-	
-	if(open (STAT, $monitor_file))
-	{
-		sysopen(STAT,  $monitor_file, O_RDONLY)
-				or die "can't open numfile: $!";
-		$ofh = select(STAT); $| = 1; select ($ofh);
-		$iTotal = <STAT>;
-
-		#carp "trying to read the stuff in $iTotal";
-		if(defined($iTotal) && $iTotal ne "")
-		{
-			return 1;
-		
-		}
-		else
-		{
-			return 0;
-		}
-	} 
-	return 0;
-	
-}
-
-##
-# many thanx to Terrence Johnson who pointed out the fact that i should have added 
-# cache control header.
-##
-
-print "Pragma: no-cache\n";
-print "Content-type: text/xml\n\n ";
-
-if($status == 1)
-{
-	#new upload starting
-	show_starting();
-}
-elsif($status ==0)
-{
-	##
-	# in progress
-	# we will try to read in the total size of data to be transfered from the
-	# shared file. It will also tell us how much data has been transfered upto
-	# now.
-	##
-	$bRead = -s "$post_data_file";
-		
-	if(defined $bRead)
-	{
-		# We have  been able to read in it from the file.
-		$percent = $bRead * 100 / $iTotal;
-		$iRead=$bRead;
-		
-	}
-	else
-	{
-		&show_error();
-		exit();
-	}
-
-	#
-	# division results in truncation errors at times so don't compare percentage
-	# There have been occaisional reports of the progress bar showing 100% but not
-	# disappearing even after file upload has been completed.
-	#
-	# Nils Menrad came up with the solution which is to modify the end of upload
-	# test.
-	#
-	if((($iTotal == $bRead) && $bRead != 0) || $bRead>$iTotal) 
-	{
-		if($status == 1 && -e "$signal_file")
-		{
-			$bRead=0;
-			$status=0;
-			&get_last_values();
-		}
-		else
-		{
-			show_complete();
-			unlink $monitor_file;
-			unlink $post_data_file;
-			unlink $signal_file;
-			
-			exit;
-		}
-	}
-	else
-	{
-		$kachal = "$bRead , $iTotal";
-	}
-
-
-	&make_progress_bar();
-	exit;
-}
-else 
-{
-	show_complete();
-}
-
-#
-# Since the progress bar is in html, so it needs to refresh itself periodicaly to
-# obtain new values. The refresh url with the query string is generated by this 
-# function.
-
-sub make_url
-{
-
-	#print "Content-type: text/html\n\n ";
-	#print "hellow $iTotal $iStatus $sessionid $iRead <br>\n" ;
-
-	##
-	$url = "$thisUrl?iTotal=$iTotal&iRead=$iRead&iStatus=$status&sessionid=$sessionid&dtnow=$dtnow&dtstart=$dtstart";
-	##
-	$url =~ s/\n//;
-	
-	return $url;
-
-}
-
-sub make_progress_bar
-{
-	$url = make_url();
-	
-	print <<__PART1__;
-	<UploadProgress sessionID="$sessionid">
-		<RefreshURL><![CDATA[$url]]></RefreshURL>
-		<TotalBytes>$iTotal</TotalBytes>
-		<ReadBytes>$iRead</ReadBytes>
-		<Status>$status</Status>
-		<Speed>$bSpeedf</Speed>
-		<TimeRemaining>$dtRemainingf</TimeRemaining>
-		<TimeElapsed>$dtelapsedf</TimeElapsed>
-	</UploadProgress>
-__PART1__
-
-}
-
-
-sub show_complete
-{
-	
-	$status=2;
-	$url = make_url();
-
-	print <<__PART2__;
-	<UploadProgress sessionID="$sessionid">
-		<RefreshURL><![CDATA[$url]]></RefreshURL>
-		<TotalBytes>$iTotal</TotalBytes>
-		<ReadBytes>$iRead</ReadBytes>
-		<Status>$status</Status>
-		<Speed>$bSpeedf</Speed>
-		<TimeRemaining>0</TimeRemaining>
-		<TimeElapsed>$dtelapsedf</TimeElapsed>
-	</UploadProgress>
-__PART2__
-
-}
-
-sub show_starting
-{
-	#carp "starting";
-	if(readFlength() == 1)
-	{
-		$status=0;
-	}
-	$url = make_url();
-
-	print <<__PART2__;
-	<UploadProgress sessionID="$sessionid">
-		<RefreshURL><![CDATA[$url]]></RefreshURL>
-		<TotalBytes>$iTotal</TotalBytes>
-		<ReadBytes>$iRead</ReadBytes>
-		<Status>$status</Status>
-		<Speed>$bSpeedf</Speed>
-		<TimeRemaining>$dtRemainingf</TimeRemaining>
-		<TimeElapsed>$dtelapsedf</TimeElapsed>
-	</UploadProgress>
-__PART2__
-}
-
-sub show_error
-{
-	$url = make_url();
-	print <<__PART2__;
-	<UploadProgress sessionID="$sessionid">
-		<RefreshURL><![CDATA[$url]]></RefreshURL>
-		<TotalBytes>$iTotal</TotalBytes>
-		<ReadBytes>$iRead</ReadBytes>
-		<Status>-1</Status>
-		<Speed>$bSpeedf</Speed>
-		<TimeRemaining>$dtRemainingf</TimeRemaining>
-		<TimeElapsed>$dtelapsedf</TimeElapsed>
-	</UploadProgress>
-__PART2__
-
-}
-
-# this function may not return;
-sub get_last_values()
-{
-	if($status == 1)
-	{
-		show_starting();
-		exit;
-	}
-	else
-	{
-
-	 	if($status == 2)
-		{
-
-			
-			show_complete();
-			exit;
-		}
-		else
-		{
-
-			#
-			# we have done everything possible to try to retrieve the data
-			# now try to calculate the percentage once again
-			#
-			$iTotal = $iTotal;
-			$bRead = $iRead;
-
-			if(defined($iTotal) && $iTotal != 0)
-			{
-				$percent = $bRead * 100 / $iTotal;
-				$kachal="1";
-			}
-			else
-			{
-				&show_error();
-				exit;
-			}
-		}
-	}
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/upload.cgi
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/upload.cgi	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Commands/helpers/upload.cgi	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,195 +0,0 @@
-#!/usr/bin/perl
-
-# PHP File Uploader with progress bar Version 1.43
-# Copyright (C) Raditha Dissanyake 2003
-# http://www.raditha.com
-
-# Licence:
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-# 
-# Software distributed under this License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-# 
-# The Initial Developer of the Original Code is Raditha Dissanayake.
-# Portions created by Raditha are Copyright (C) 2003
-# Raditha Dissanayake. All Rights Reserved.
-# 
-
-# CHANGES:
-# As of version 1.00 cookies were abolished!
-# as of version 1.02 stdin is no longer set to non blocking.
-# 1.40 - POST is no longer required and processing is more efficient.
-#	Please refer online docs  for details.
-# 1.42 - The temporary locations were changed, to make it easier to
-#	clean up afterwards.	
-
-use CGI;
-use Fcntl qw(:DEFAULT :flock);
-use File::Temp qw/ tempfile tempdir /;
-#use Carp;
-
-
- at qstring=split(/&/,$ENV{'QUERY_STRING'});
- at p1 = split(/=/,$qstring[0]);
-$sessionid = $p1[1];
-$sessionid =~ s/[^a-zA-Z0-9]//g;  # sanitized as suggested by Terrence Johnson.
-
- at p1 = split(/=/,$qstring[1]);
-$php_uploader = $p1[1];
-
-require("./header.cgi");
-
-#carp "$post_data_file and $monitor_file";
-
-$content_type = $ENV{'CONTENT_TYPE'};
-$len = $ENV{'CONTENT_LENGTH'};
-$bRead=0;
-$|=1;
-
-sub bye_bye {
-	$mes = shift;
-	print "Content-type: text/html\n\n";
-	print "<br>$mes<br>\n";
-
-	exit;
-}
-
-
-#
-# The thing to watch out for is file locking. Only
-# one thread may open a file for writing at any given time.
-# 
-
-if (-e "$post_data_file") {
-	unlink("$post_data_file");
-}
-
-if (-e "$monitor_file") {
-	unlink("$monitor_file");
-}
-
-
-sysopen(FH, $monitor_file, O_RDWR | O_CREAT, 0x777)
-	or die "can't open numfile: $!";
-
-# autoflush FH
-$ofh = select(FH); $| = 1; select ($ofh);
-flock(FH, LOCK_EX)
-	or die "can't write-lock numfile: $!";
-seek(FH, 0, 0)
-	or die "can't rewind numfile : $!";
-print FH $len;	
-close(FH);	
-	
-sleep(1);
-
-
-open(TMP,">","$post_data_file") or &bye_bye ("can't open temp file");
-
-#
-# read and store the raw post data on a temporary file so that we can
-# pass it though to a CGI instance later on.
-#
-
-
-
-my $i=0;
-
-$ofh = select(TMP); $| = 1; select ($ofh);
-			
-while (read (STDIN ,$LINE, 32768) && $bRead < $len )
-{
-	$bRead += length $LINE;
-	
-	select(undef, undef, undef,0.01);	# sleep for 0.35 of a second.
-	
-	# Many thanx to Patrick Knoell who came up with the optimized value for
-	# the duration of the sleep
-
-	$i++;
-	print TMP $LINE;
-}
-
-close (TMP);
-
-
-
-#
-# We don't want to decode the post data ourselves. That's like
-# reinventing the wheel. If we handle the post data with the perl
-# CGI module that means the PHP script does not get access to the
-# files, but there is a way around this.
-#
-# We can ask the CGI module to save the files, then we can pass
-# these filenames to the PHP script. In other words instead of
-# giving the raw post data (which contains the 'bodies' of the
-# files), we just send a list of file names.
-#
-#print "\n\n";
-open(STDIN,"$post_data_file") or die "can't open temp file";
-
-# chmod the file so everyone can read it
-# added by Ben Lancaster (benlanc at ster.me.uk)
-chmod (0666, $post_data_file);
-
-my $cg = new CGI();
-my $qstring="?";
-my %vars = $cg->Vars;
-my $j=0;
-
-while(($key,$value) = each %vars)
-{
- 	
-	$file_upload = $cg->param($key);
-
-	if(defined $value && $value ne '')
-	{	
-
-		my $fh = $cg->upload($key);
-		#print "::".$key."::".$fh."::\n";
-		if(defined $fh)
-		{
-			#carp $fh;
-			($tmp_fh, $tmp_filename) = tempfile();
-
-			# chmod the file so everyone can read it
-			# added by Ben Lancaster (benlanc at ster.me.uk)	
-			chmod (0666, $tmp_filename);
-			
-			while(<$fh>) {
-				print $tmp_fh $_;
-			}
-
-			close($tmp_fh);
-
-			$fsize =(-s $fh);
-
-			
-			$fh =~ s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg;
-			
-			$tmp_filename =~ s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg;
-			$qstring .= "file[$key][name]=$fh&file[$key][size]=$fsize&";
-			$qstring .= "file[$key][tmp_name]=$tmp_filename&";
-			$j++;
-		}
-		else
-		{
-			$value =~ s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg;
-			$qstring .= "$key=$value&" ;
-		}
-	}
-}
-
-
-my $url = $php_uploader . $qstring . "&" . $ENV{'QUERY_STRING'};
-
-open (SIGNAL,">", $signal_file);
-print SIGNAL "\n";
-close (SIGNAL);
-
-print "Location: $url\n\n";
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/AuthenticationHandlers.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/AuthenticationHandlers.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/AuthenticationHandlers.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,68 +0,0 @@
-Authentication via connector::
-
-In my PHP connector the one from the FBXP project, it is 
-possible to require authentication before a user can use
-the connector. 
-
-The works in the following manor:-
-
-A1/ File Browser Requests Command From Connector
-A2/ Connector.php recieves the request
-	B1/ File config.php imported
-	B2/ If authentication required load the authentication
-		handler file specified in the config, i.e.
-		$config['auth']['HandlerClass']='Default';
-		the Auth/Default.php will be imported
-	B3/ Create new instance of Auth class (defined in the
-		authentication handler imported.
-		C1/ Auth class, authenticate method called, passing
-			the data recieved in the ExtraParams variable
-			of the query string.
-		C2/ authenticate method returns a modified copy of the 
-			$config, to indicate successfull authentication
-			$config['authSuccess'] should be set to true, if
-			the authentication failed this should be set to false.
-		
-	B4a/ on success command is executed and output sent to client
-	B4b/ on failure blank xml response returned.
-
-A3/ End
-
-
-How to create my own authentication handler::
-
-Create a file in the Auth folder with the name of the handler (your choice)
-i.e. If i wanted to call it MySQL the file i would create would be
-MySQL.php in the Auth folder.
-
-Skeleton for the new authentication class::
-<?php
-class Auth {
-	function authenticate($data,$config) {
-	
-	}
-}
-?>
-
-as you can see the class must have a method called authenticate which
-takes two parameters, the value from the ExtraParams ($data) and a 
-reference to the connector configuration $config (so you can change
-things depending on the user if you wish) , you can now put what
-ever code you like in that method to determine if the user is allowed 
-or not. (you may add extra function to the class for internal use too,
-these will not be called by the connector, but call them from inside
-the authenticate method). The function returns a modified copy of the
-$config, with any changes you like + the addition of a top level 
-array element key: authSuccess   value: true if authentication
-successful, else false.
-
-If you want to limit what the user can do then you may want to change 
-the array at: $config['Commands']
-This holds an array of command that can be executed, if you remove say
-DeleteFolder from the array then the user will not be able to delete 
-a folder.
-
-
-By Example:: There is a default authentication handler that i wrote to
-distribute with the connector, so you may want to take a look at it
-to get a better idea of whats going on.
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/license.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/license.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/license.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,506 +0,0 @@
-This connector is supplied under the same license as FCKeditor, 
-The Lesser GPL License (LGPL)-
-
-
- GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/readme.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/readme.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/Docs/readme.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,95 +0,0 @@
-PHP Connector for the FCKeditor v2 File Manager
-Written By Grant French, Sept 2004
-grant at mcpuk.net - http://www.mcpuk.net 
-
-FCK Editor - Written By Frederico Caldeira Knabben
-http://www.fckeditor.net 
-
-Icons supplied for file types from everaldo - 
-http://www.everaldo.com
-
-Permissions fix for upload.cgu and fix for
-thumbnail background colour by -
-Ben Lancaster (benlanc at ster.me.uk)
-
-!!PLEASE READ THROUGH THIS README *BEFORE* CRYING FOR HELP!!
-
-
-NOTES:
-------
-
-This software is provided as is with no guarantees or
-warranties what so ever. It has been proven to work
-under the following setups (many other should work):-
-
-PHP 4.3.x / Apache 1.3.x (FreeBSD/WinXP Pro/OpenBSD)
-PHP 5.x / Apache 2.x (Linux)
-
-Reported to work under IIS with minor alterations.
-(Manually define $_SERVER['DOCUMENT_ROOT'] and dont use
-the upload cgi)
-
-!!! if you specify the relative path of the connector in 
-	the fckconfig.js file you may experience some unusual
-	behaviour mainly in firefox, like the resource list
-	failing to refresh. To avoid this specify the absolute
-	path of the connector.
-
-	
-CONNECTOR CONFIGURATION
------------------------
-
-/FCKeditor/editor/filemanager/browser/mcpuk/connectors/php/config.php
-The config.php file contains most of the configuration options for the
-connector, the file is fully commented, so please take a look through it.
-		
-Most commonly asked question:
-Can i put the userfiles outside the FCKeditor folder?
-
-The answer is yes, the folder containing all users files is 
-setup be default to be /UserFiles this can be changed 
-to anything you like, such as /userdata/editorfiles this is
-done by editing the $fckphp_config['UserFilesPath'] directive 
-in the config.php file for the connector
-
-
-
-FILE & FOLDER SETUP:
---------------------
-
-1. Create the user files folder (set in the config.php)
-	NOTE: you no longer need to create the Image/File/Media/Flash folders
-	if you are using the 'Authentication' option in the connector.
-	If you are not using the 'Authentication' option then you must create
-	the Image File Media and Flash folders in the user files folder.
-	
-2. The user files folder must all be chmodded to 0777 (a+wrx)
-
-
-
-Upload Progress (Optional) - Rather Buggy
------------------------------------------
-You may move the filemanager/browser/default/connectors/php/Commands/helpers/upload.cgi ,
-filemanager/browser/default/connectors/php/Commands/helpers/progress.cgi and
-filemanager/browser/default/connectors/php/Commands/helpers/header.cgi
-to you cgi-bin folder or set the settings on the folder to allow these to be executed,
-check the first line in each of these files to check that the path to perl is correct
-for your setup. Open the header.cgi file, check and modify settings as required.
-If you have moved these files adjust the path to them in the fckconfig lines as 
-specified above and the path the progress.cgi in the config.php file (see below)
-
-
-
-FINAL NOTE:
------------
-
-1. Limited support will be provided by email as and when i have time.
-2. If you have any ideas share them either by mailing me or in the 
-	forum for the fckeditor (http://sf.net/projects/fckeditor/forums)
-3. Enjoy
-
-
-LICENSE:
---------
-
-LGPL - Lesser General Public License (see LICENSE.txt file)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/config.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/config.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/config.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,233 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: config.php
- * 	Configuration file
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-session_start();
-
-/*------------------------------------------------------------------------------*/
-/* HTTP over SSL Detection (shouldnt require changing)				*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['prot']="http";
-$fckphp_config['prot'].=((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on')?"s":"");
-$fckphp_config['prot'].="://";
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* The physical path to the document root, Set manually if not using apache	*/
-/*------------------------------------------------------------------------------*/
-//$fckphp_config['basedir']=$_SERVER['DOCUMENT_ROOT'];
-$fckphp_config['basedir'] = 'D:\Work\FCKeditor\www\FCKeditor.V2\editor\filemanager\browser\mcpuk' ;
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Prefix added to image path before sending back to editor			*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['urlprefix']=$fckphp_config['prot'].$_SERVER['SERVER_NAME'];
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Path to user files relative to the document root (no trailing slash)		*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['UserFilesPath'] = "/UserFiles" ;
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Progressbar handler (script that monitors upload progress) (''=none)
-/*------------------------------------------------------------------------------*/
-// $fckphp_config['uploadProgressHandler']=''; //No upload progress handler
-$fckphp_config['uploadProgressHandler']=$fckphp_config['prot'].$_SERVER['SERVER_NAME']."/cgi-bin/progress.cgi"; //Perl upload progress handler
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Authentication (auth) :-								*/
-/*  - Req		:: Boolean, whether authentication is required		*/
-/*  - HandlerClass	:: Name of class to handle authentication in connector	*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['auth']['Req']=false;
-$fckphp_config['auth']['HandlerClass']='Default';
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Settings for authentication handler :-					*/
-/*  - SharedKey :: Shared encryption key (as set in test.php in example)	*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['auth']['Handler']['SharedKey']="->Shared_K3y-F0R*5enD1NG^auth3nt1caT10n'Info/To\FILE,Brow5er--!";
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Per resource area settings:-							*/
-/* - AllowedExtensions	:: Array, allowed file extensions (in lowercase)	*/
-/* - AllowedMIME	:: Array, allowed mime types (in lowercase)		*/
-/* - MaxSize		:: Number, Maximum size of file uploads in KBytes	*/
-/* - DiskQuota		:: Number, Maximum size allowed for the resource area	*/
-/* - HideFolders	:: Array, RegExp, matching folder names will be hidden	*/
-/* - HideFiles		:: Array, RegExp, matching file names will be hidden	*/
-/* - AllowImageEditing	:: Boolean, whether images in this area may be edited	*/
-/*------------------------------------------------------------------------------*/
-//First area options are commented
-
-//File Area
-$fckphp_config['ResourceAreas']['File'] =array(
-	
-	//Files(identified by extension) that may be uploaded to this area
-	'AllowedExtensions'	=>	array("zip","doc","xls","pdf","rtf","csv","jpg","gif","jpeg","png","avi","mpg","mpeg","swf","fla"),
-	
-	//Not implemented yet
-	'AllowedMIME'		=>	array(),
-	
-	//Set the maximum single upload to this area to 2MB (2048Kb)
-	'MaxSize'		=>	2048,
-	
-	//Set disk quota for this resource area to 20MB
-	'DiskQuota'		=>	20,
-	
-	//By Default hide all folders starting with a . (Unix standard)
-	'HideFolders'		=>	array("^\."), 
-	
-	//By Default hide all files starting with a . (Unix standard)
-	'HideFiles'		=>	array("^\."), 
-	
-	//Do not allow images to be edited in this resource area
-	'AllowImageEditing'	=>	false
-	);
-
-//Image area
-$fckphp_config['ResourceAreas']['Image'] =array(
-	'AllowedExtensions'	=>	array("jpg","gif","jpeg","png","tiff","tif",),
-	'AllowedMIME'		=>	array(),
-	'MaxSize'		=>	1024,
-	'DiskQuota'		=>	5,
-	'HideFolders'		=>	array("^\."),
-	'HideFiles'		=>	array("^\."),
-	'AllowImageEditing'	=>	false //Not yet complete, but you can take a look and see
-	);
-
-//Flash area
-$fckphp_config['ResourceAreas']['Flash'] =array(
-	'AllowedExtensions'	=>	array("swf","fla"),
-	'AllowedMIME'		=>	array(),
-	'MaxSize'		=>	1024,
-	'DiskQuota'		=>	5,
-	'HideFolders'		=>	array("^\."),
-	'HideFiles'		=>	array("^\."),
-	'AllowImageEditing'	=>	false
-	);
-	
-//Media area
-$fckphp_config['ResourceAreas']['Media'] =array(
-	'AllowedExtensions'	=>	array("swf","fla","jpg","gif","jpeg","png","avi","mpg","mpeg"),
-	'AllowedMIME'		=>	array(),
-	'MaxSize'		=>	5120,
-	'DiskQuota'		=>	20,
-	'HideFolders'		=>	array("^\."),
-	'HideFiles'		=>	array("^\."),
-	'AllowImageEditing'	=>	false
-	);
-	
-/*==============================================================================*/		
-
-
-/*------------------------------------------------------------------------------*/
-/* Global Disk Quota - Max size of all resource areas				*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['DiskQuota']['Global']=50; //In MBytes (default: 50mb)
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Directory and File Naming :-							*/
-/*  -MaxDirNameLength	:: Maximum allowed length of a directory name		*/
-/*  -DirNameAllowedChars :: Array of characters allowed in a directory name	*/
-/*  -FileNameAllowedChars :: Array of characters allowed in a file name		*/
-/*------------------------------------------------------------------------------*/
-
-$fckphp_config['MaxDirNameLength']=25;
-
-$fckphp_config['DirNameAllowedChars']=array();
-
-	//Allow numbers
-	for($i=48;$i<58;$i++) array_push($fckphp_config['DirNameAllowedChars'],chr($i));
-	
-	//Allow lowercase letters
-	for($i=97;$i<123;$i++) array_push($fckphp_config['DirNameAllowedChars'],chr($i));
-	
-	//Allow uppercase letters
-	for($i=65;$i<91;$i++) array_push($fckphp_config['DirNameAllowedChars'],chr($i));
-	
-	//Allow space,dash,underscore,dot
-	array_push($fckphp_config['DirNameAllowedChars']," ","-","_",".");
-	
-$fckphp_config['FileNameAllowedChars']=$fckphp_config['DirNameAllowedChars'];
-array_push($fckphp_config['FileNameAllowedChars'],')','(','[',']','~');
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Debugging :-									*/
-/*  - Debug	:: Boolean, if set to true a copy of the connector output is 	*/
-/*			sent to a file as well as to the client.		*/
-/*  - DebugOutput :: File to send debug output to (absolute path)		*/
-/*------------------------------------------------------------------------------*/
-
-$fckphp_config['Debug']=false;
-$fckphp_config['DebugOutput']="/var/www/fckeditor/htdocs/FCKeditor/data/fck_conn_dbg";
-
-#Log PHP errors
-$fckphp_config['Debug_Errors']=false;
-$fckphp_config['Debug_Trace']=false;
-
-#Log Connector output
-$fckphp_config['Debug_Output']=false;
-
-#With each logged event display contents of
-/* $_GET */ $fckphp_config['Debug_GET']=false;
-/* $_POST */ $fckphp_config['Debug_POST']=false;
-/* $_SERVER */ $fckphp_config['Debug_SERVER']=false;
-/* $_SESSIONS */ $fckphp_config['Debug_SESSIONS']=false;
-
-/*==============================================================================*/
-
-
-/*------------------------------------------------------------------------------*/
-/* Internals :-									*/
-/*	ResourceTypes :: Array of valid resource areas				*/
-/*	Commands :: Array of valid commands accepted by the connector		*/
-/*------------------------------------------------------------------------------*/
-$fckphp_config['ResourceTypes'] = array('File','Image','Flash','Media');
-$fckphp_config['Commands'] = array(
-				"CreateFolder",
-				"GetFolders",
-				"GetFoldersAndFiles",
-				"FileUpload",
-				"Thumbnail",
-				"DeleteFile",
-				"DeleteFolder",
-				"GetUploadProgress",
-				"RenameFile",
-				"RenameFolder"
-				);
-/*==============================================================================*/
-
-?>
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/connector.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/connector.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/connector.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,194 +0,0 @@
-<?php 
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: connector.php
- * 	Main connector file, implements the State Pattern to 
- * 	redirect requests to the appropriate class based on 
- * 	the command name passed.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-//Errors in the config.php could still cause problems.
-global $fckphp_config;
-require_once "config.php";
-
-error_reporting(E_ALL);
-function errorHandler ($errno, $errstr, $errfile, $errline, $errcontext) {
-	$reported=false;
-	if (strpos($errstr,"var: Deprecated.")===false) {
-		global $fckphp_config;
-		if ($fckphp_config['Debug']===true && $fckphp_config['Debug_Errors']===true) {
-			$oldData=implode("",file($fckphp_config['DebugOutput']));
-			if ($fh=fopen($fckphp_config['DebugOutput'],"w")) {
-				fwrite($fh,"\n".date("d/m/Y H:i:s")."\n");
-				fwrite($fh,"PHP ERROR::: 
-						Error Number: $errno
-						Error Message: $errstr
-						Error File: $errfile
-						Error Line: $errline\n");
-				if ($fckphp_config['Debug_Trace']) fwrite($fh,"		Error Context: ".print_r($errcontext,true)."\n");
-				if ($fckphp_config['Debug_GET']) fwrite($fh,"\n\$_GET::\n".print_r($_GET,true)."\n");
-				if ($fckphp_config['Debug_POST']) fwrite($fh,"\n\$_POST::\n".print_r($_POST,true)."\n");
-				if ($fckphp_config['Debug_SERVER']) fwrite($fh,"\n\$_SERVER::\n".print_r($_SERVER,true)."\n");
-				if ($fckphp_config['Debug_SESSIONS']) fwrite($fh,"\n\$_SESSIONS::\n".print_r($_SESSION,true)."\n");
-				fwrite($fh,"\n-------------------------------------------------------\n\n\n");
-				fwrite($fh,$oldData); $oldData="";
-				fclose($fh);
-				$reported=true;
-			} 
-		}
-		
-		if (!$reported) {
-			//display error instead.
-			echo("PHP ERROR::: <br />
-					Error Number: $errno <br />
-					Error Message: $errstr <br />
-					Error File: $errfile <br />
-					Error Line: $errline <br />");
-				
-			if ($fckphp_config['Debug_Trace']) echo "Error Context: ".print_r($errcontext,true)."\n";	
-			if ($fckphp_config['Debug_GET']) echo "\$_GET::\n".print_r($_GET,true)."<br />\n";
-			if ($fckphp_config['Debug_POST']) echo "\$_POST::\n".print_r($_POST,true)."<br />\n";
-			if ($fckphp_config['Debug_SERVER']) echo "\$_SERVER::\n".print_r($_SERVER,true)."<br />\n";
-			if ($fckphp_config['Debug_SESSIONS']) echo "\$_SESSIONS::\n".print_r($_SESSION,true)."<br />\n";
-			echo "<br />\n<br />\n";
-		}
-	}
-}
-set_error_handler('errorHandler');
-
-if (!isset($_SERVER['DOCUMENT_ROOT'])) $_SERVER["DOCUMENT_ROOT"] = $fckphp_config['basedir'];
-
-if ($fckphp_config['Debug']===true && $fckphp_config['Debug_Output']) ob_start();
-outputHeaders();
-
-//These are the commands we may expect
-$valid_commands=$fckphp_config['Commands'];
-$valid_resource_types=$fckphp_config['ResourceTypes'];
-
-//Get the passed data
-$command=(
-		((isset($_GET['Command']))&&($_GET['Command']!=""))?
-			$_GET['Command']:
-			""
-		);
-		
-$type=(
-		((isset($_GET['Type']))&&($_GET['Type']!=""))?
-			$_GET['Type']:
-			"File"
-		);
-		
-$cwd=str_replace("..","",
-		(
-		((isset($_GET['CurrentFolder']))&&($_GET['CurrentFolder']!=""))?
-			$_GET['CurrentFolder']:
-			"/"
-		)
-		);
-		
-$cwd=str_replace("..","",$cwd);
-
-$extra=(
-		((isset($_GET['ExtraParams']))&&($_GET['ExtraParams']!=""))?
-			$_GET['ExtraParams']:
-			""
-		);
-
-if (in_array($command,$valid_commands)) {
-
-	if ($fckphp_config['auth']['Req']) {
-		require_once "./Auth/".$fckphp_config['auth']['HandlerClass'].".php";
-		
-		$auth=new Auth();
-		$fckphp_config=$auth->authenticate($extra,$fckphp_config);
-		if ($fckphp_config['authSuccess']!==true) {
-			header ("content-type: text/xml");
-			echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
-			?>
-<Connector command="authentication_failed" resourceType="authentication_failed">
-	<CurrentFolder path="authentication_failed" url="authentication_failed" />
-	<Error number="-1" />
-</Connector><?php
-			if ($fckphp_config['Debug']===true  && $fckphp_config['Debug_Output']) recordOutput();
-			exit(0);
-		}
-	}
-
-	//bit of validation
-	if (!in_array($type,$valid_resource_types)) {
-		echo "Invalid resource type.";
-		if ($fckphp_config['Debug']===true  && $fckphp_config['Debug_Output']) recordOutput();
-		exit(0);
-	}
-	
-	require_once "Commands/$command.php";
-
-	$action=new $command($fckphp_config,$type,$cwd);
-
-	$action->run();
-	if ($fckphp_config['Debug']===true && $fckphp_config['Debug_Output']) recordOutput();
-	
-} else {
-	//No reason for me to be here.
-	echo "Invalid command.";
-	echo str_replace("\n","<br />",print_r($_GET,true));
-	if ($fckphp_config['Debug']===true  && $fckphp_config['Debug_Output']) recordOutput();
-	exit(0);
-}
-
-
-function recordOutput() {
-	global $fckphp_config;
-
-	if ($fckphp_config['Debug']===true  && $fckphp_config['Debug_Output']) {
-		$contents=ob_get_contents();
-		if (strlen($contents)>0) {
-			$oldData=implode("",file($fckphp_config['DebugOutput']));
-			if ($fh=fopen($fckphp_config['DebugOutput'],"w")) {
-				fwrite($fh,"\n".date("d/m/Y H:i:s")."\n");
-				if ($fckphp_config['Debug_GET']) fwrite($fh,"\n\$_GET::\n".print_r($_GET,true)."\n");
-				if ($fckphp_config['Debug_POST']) fwrite($fh,"\n\$_POST::\n".print_r($_POST,true)."\n");
-				if ($fckphp_config['Debug_SERVER']) fwrite($fh,"\n\$_SERVER::\n".print_r($_SERVER,true)."\n");
-				if ($fckphp_config['Debug_SESSIONS']) fwrite($fh,"\n\$_SESSIONS::\n".print_r($_SESSION,true)."\n");
-				fwrite($fh,$contents);
-				fwrite($fh,"\n-------------------------------------------------------\n\n\n");
-				fwrite($fh,$oldData); $oldData="";
-				fclose($fh);
-			}
-		}
-		ob_flush();
-	}
-}
-
-function outputHeaders() {
-
-	//Anti browser caching headers
-	//Borrowed from fatboy's implementation  (fatFCK at code247.com)
-	
-	// ensure file is never cached
-	// Date in the past
-	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-	
-	// always modified
-	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
-	
-	// HTTP/1.1
-	header("Cache-Control: no-store, no-cache, must-revalidate");
-	header("Cache-Control: post-check=0, pre-check=0", false);
-	
-	// HTTP/1.0
-	header("Pragma: no-cache");
-}
-?> 

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/dtd/iso-lat1.ent
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/dtd/iso-lat1.ent	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/dtd/iso-lat1.ent	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,62 +0,0 @@
-<!ENTITY aacute	"&#x00E1;">
-<!ENTITY Aacute	"&#x00C1;">
-<!ENTITY acirc	"&#x00E2;">
-<!ENTITY Acirc	"&#x00C2;">
-<!ENTITY agrave	"&#x00E0;">
-<!ENTITY Agrave	"&#x00C0;">
-<!ENTITY aring	"&#x00E5;">
-<!ENTITY Aring	"&#x00C5;">
-<!ENTITY atilde	"&#x00E3;">
-<!ENTITY Atilde	"&#x00C3;">
-<!ENTITY auml	"&#x00E4;">
-<!ENTITY Auml	"&#x00C4;">
-<!ENTITY aelig	"&#x00E6;">
-<!ENTITY AElig	"&#x00C6;">
-<!ENTITY ccedil	"&#x00E7;">
-<!ENTITY Ccedil	"&#x00C7;">
-<!ENTITY eth	"&#x00F0;">
-<!ENTITY ETH	"&#x00D0;">
-<!ENTITY eacute	"&#x00E9;">
-<!ENTITY Eacute	"&#x00C9;">
-<!ENTITY ecirc	"&#x00EA;">
-<!ENTITY Ecirc	"&#x00CA;">
-<!ENTITY egrave	"&#x00E8;">
-<!ENTITY Egrave	"&#x00C8;">
-<!ENTITY euml	"&#x00EB;">
-<!ENTITY Euml	"&#x00CB;">
-<!ENTITY iacute	"&#x00ED;">
-<!ENTITY Iacute	"&#x00CD;">
-<!ENTITY icirc	"&#x00EE;">
-<!ENTITY Icirc	"&#x00CE;">
-<!ENTITY igrave	"&#x00EC;">
-<!ENTITY Igrave	"&#x00CC;">
-<!ENTITY iuml	"&#x00EF;">
-<!ENTITY Iuml	"&#x00CF;">
-<!ENTITY ntilde	"&#x00F1;">
-<!ENTITY Ntilde	"&#x00D1;">
-<!ENTITY oacute	"&#x00F3;">
-<!ENTITY Oacute	"&#x00D3;">
-<!ENTITY ocirc	"&#x00F4;">
-<!ENTITY Ocirc	"&#x00D4;">
-<!ENTITY ograve	"&#x00F2;">
-<!ENTITY Ograve	"&#x00D2;">
-<!ENTITY oslash	"&#x00F8;">
-<!ENTITY Oslash	"&#x00D8;">
-<!ENTITY otilde	"&#x00F5;">
-<!ENTITY Otilde	"&#x00D5;">
-<!ENTITY ouml	"&#x00F6;">
-<!ENTITY Ouml	"&#x00D6;">
-<!ENTITY szlig	"&#x00DF;">
-<!ENTITY thorn	"&#x00FE;">
-<!ENTITY THORN	"&#x00DE;">
-<!ENTITY uacute	"&#x00FA;">
-<!ENTITY Uacute	"&#x00DA;">
-<!ENTITY ucirc	"&#x00FB;">
-<!ENTITY Ucirc	"&#x00DB;">
-<!ENTITY ugrave	"&#x00F9;">
-<!ENTITY Ugrave	"&#x00D9;">
-<!ENTITY uuml	"&#x00FC;">
-<!ENTITY Uuml	"&#x00DC;">
-<!ENTITY yacute	"&#x00FD;">
-<!ENTITY Yacute	"&#x00DD;">
-<!ENTITY yuml	"&#x00FF;">
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/ascii.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/binary.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/document2.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/email.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/empty.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/html.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/image.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/info.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/kmplot.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/kmultiple.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/pdf.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/php.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/postscript.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/real_doc.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/sound.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/spreadsheet.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/tar.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/images/video.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/test.html.suspended
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/test.html.suspended	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/test.html.suspended	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,7 +0,0 @@
-<html><head><title>File Upload Test</title></head>
-<body>
-<form enctype="multipart/form-data" method="post" action="/cgi-bin/upload.cgi?uploadID=58484&Connector=/FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php&Command=FileUpload&Type=Image&CurrentFolder=/&ExtraParams=313131323934373331357c5e5345505e7c3139322e3136382e302e327c5e5345505e7c61646d696e7c5e5345505e7c3338316139376339633638303937393566343665313463613738383230626439">
-<input type="file" name="NewFile" />
-<input type="submit" value="Upload" />
-</form>
-</body></html> 

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/testme.php.suspended
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/testme.php.suspended	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/connectors/php/testme.php.suspended	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,340 +0,0 @@
-<html>
-<head>
-	<title>Test PHP Connector</title>
-</head>
-<body>
-<?php
-	error_reporting(E_ALL);
-	
-	include "config.php";
-	
-	$resources=$fckphp_config['ResourceTypes'];
-	
-	$dr=$fckphp_config['basedir'];
-	$actual_userfolder=str_replace("//","/",$dr."/".$fckphp_config['UserFilesPath']."/");
-	
-	
-	//Display base directory set in the$fckphp_config
-	echo "Base Dir is set to: $dr<br />\n";
-	
-	//Display the path to this script
-	echo "PHP_SELF: ".$_SERVER['PHP_SELF']."<br />\n";
-	
-	
-	//Seperator
-	echo "\n<br /><hr /><br />\n";
-	
-	
-	//Check if PHP has MIME-Magic Support
-	echo "Checking for mime magic support: ".((function_exists("mime_content_type"))?"Yes":"No - you won't get icons by mime type")."<br />";
-	
-	//Check if PHP has GD Support
-	echo "Checking for GD support: ".((function_exists("imagecreate"))?"Yes":"No - you won't get thumbnails for images")."<br />";
-	echo "&nbsp;&nbsp;&nbsp;&nbsp;JPEG Support: ".((function_exists("imagecreatefromjpeg"))?"Yes":"No - you won't get thumbnails for jpeg images")."<br />";
-	echo "&nbsp;&nbsp;&nbsp;&nbsp;PNG Support: ".((function_exists("imagecreatefrompng"))?"Yes":"No - you won't get thumbnails for png images")."<br />";
-	echo "&nbsp;&nbsp;&nbsp;&nbsp;GIF Support: ".((function_exists("imagecreatefromgif"))?"Yes":"No - you won't get thumbnails for gif images")."<br />";
-	echo "&nbsp;&nbsp;&nbsp;&nbsp;Image Write Support: ".((function_exists("imagegif") || function_exists("imagepng") || function_exists("imagejpeg"))?"Yes":"No - you won't get thumbnails for any images, as i cant write GIFs, PNGs or JPEGs")."<br />";
-	
-	
-	//Seperator
-	echo "\n<br /><hr /><br />\n";
-	
-	
-	//Check if the user files folder set in the$fckphp_config exists
-	echo "Checking if user files folder exists ($actual_userfolder): ";
-	if (is_dir($actual_userfolder)) {
-		echo "[ Passed ]<br />\n";
-	} else {
-		echo "[ Failed ] <br />Task: Create the user files folder in the webroot and point the$fckphp_config.php file to it.<br />\n";
-		echo "Skipping all other tests, fix this one first.";
-		exit(0);
-	}
-	
-	
-	//Seperator
-	echo "\n<br /><hr /><br />\n";
-	
-	
-	//Check if the File,Image,Flash,Media folders exist in the user files folder and are writeable
-	echo "Checking for resource type folders under user file folder: <br />\n";
-	foreach ($resources as $value) {
-	
-		//Does the folder exist
-		$passed=false;
-		echo "&nbsp;&nbsp;&nbsp;&nbsp;$value exists (".($actual_userfolder.$value).": ";	
-		if (is_dir(($actual_userfolder.$value))) {
-			echo "[ Passed ]<br />\n";
-			$passed=true;
-		} else {
-			echo "[ Failed ]<br /> Task: chmod this folder to make it writeable to the php processes user.<br />\n";
-		}
-		
-		
-		//Is the folder writeable by PHP
-		echo "&nbsp;&nbsp;&nbsp;&nbsp;$value writeable: ";	
-		if ($passed) {
-			if (is_writeable(($actual_userfolder.$value))) {
-				echo "[ Passed ]<br />\n";
-			} else {
-				echo "[ Failed ]<br /> Task: chmod this folder to make it writeable to the php processes user.<br />\n";
-			}
-		} else {
-			echo "[ Skipped ]<br />\n";
-		}
-		echo "<br />\n";
-	}
-
-	
-	//Check if PHP is$fckphp_configured to use open_basedir
-	echo "Checking if open_basedir restriction in place: (".((($bd=ini_get("open_basedir"))==null)?"Not Set":$bd." - This may cause you some troubles.").")<br />";
-	
-	//Try to open the user files folder
-	echo "Trying an opendir on the user files folder: ".((opendir($actual_userfolder))?"[ Passed ]":"[ Failed ]")."<br />";
-	
-	
-	//Seperator
-	echo "\n<br /><hr /><br />\n";
-	
-	
-	//Compose the url to the connector
-		$uri="http".(((isset($_SERVER['HTTPS']))&&(strtolower($_SERVER['HTTPS'])!='off'))?"s":"")."://".$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME'])."/";
-		
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test the GetFolders Command
-		echo "Requesting connector.php?Command=GetFolders&Type=Image&CurrentFolder=/ :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=GetFolders&Type=Image&CurrentFolder=/"));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\"GetFolders\" resourceType=\"Image\">
-    <CurrentFolder path=\"/\" url=\"/data/resources/Image/\" />
-    <Folders>
-    </Folders>
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-		
-	//Seperator
-		echo "\n<br /><hr /><br />\n";
-		
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test GetFoldersAndFiles Command
-		echo "Requesting connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/ :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/"));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\"GetFoldersAndFiles\" resourceType=\"Image\">
-<CurrentFolder path=\"/\" url=\"/data/resources/Image/\" />
-<Folders>
-</Folders>
-<Files>
-</Files>
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------		
-		
-		//Seperator
-		echo "\n<br /><hr /><br />\n";
-		
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------	
-	//Test the CreateFolder command
-		echo "Requesting connector.php?Command=CreateFolder&Type=Image&CurrentFolder=/&NewFolderName=TestFolder99 :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=CreateFolder&Type=Image&CurrentFolder=/&NewFolderName=TestFolder99"));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\CreateFolder\" resourceType=\"Image\">
-<CurrentFolder path=\"/\" url=\"/data/resources/Image/\" />
-	<Error number=\"0\" />
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php	
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-
-		
-	//Seperator
-		echo "\n<br /><hr /><br />\n";
-	
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test the RenameFolder Command
-		echo "Requesting connector.php?Command=RenameFolder&Type=Image&CurrentFolder=/&FolderName=TestFolder99&NewName=TestFolder90 :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=RenameFolder&Type=Image&CurrentFolder=/&FolderName=TestFolder99&NewName=TestFolder90"));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\"RenameFolder\" resourceType=\"Image\">
-    <CurrentFolder path=\"/\" url=\"/data/resources/Image/\" />
-    <Error number=\"0\" />
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-
-		
-	//Seperator
-		echo "\n<br /><hr /><br />\n";
-	
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test the DeleteFolder Command
-		echo "Requesting connector.php?Command=DeleteFolder&Type=Image&CurrentFolder=/&FolderName=TestFolder90 :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=DeleteFolder&Type=Image&CurrentFolder=/&FolderName=TestFolder90"));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\"DeleteFolder\" resourceType=\"Image\">
-    <CurrentFolder path=\"/\" url=\"/data/resources/Image/\" />
-    <Error number=\"0\" />
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-		
-		
-	//Seperator
-		echo "\n<br /><hr /><br />\n";
-	
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test the Progress.cgi Command
-		echo "Requesting ".$fckphp_config['uploadProgressHandler']."?iTotal=0&iRead=0&iStatus=1&sessionid=92823&dtnow=".time()."&dtstart=".time()." :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($fckphp_config['uploadProgressHandler']."?iTotal=0&iRead=0&iStatus=1&sessionid=92823&dtnow=".time()."&dtstart=".time()));
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<UploadProgress sessionID=\"92823\">
-<RefreshURL><![CDATA[".$fckphp_config['uploadProgressHandler']."?iTotal=0&iRead=0&iStatus=1&sessionid=92823&dtnow=1098477167&dtstart=1098477166]]></RefreshURL>
-<TotalBytes>0</TotalBytes>
-<ReadBytes>0</ReadBytes>
-<Status>1</Status>
-<Speed>0</Speed>
-<TimeRemaining>00:00:00</TimeRemaining>
-<TimeElapsed>00:00:01</TimeElapsed>
-</UploadProgress>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-
-		
-	//Seperator
-		echo "\n<br /><hr /><br />\n";
-	
-		
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-	//Test the GetUploadProgress Command
-		echo "Requesting connector.php?Command=GetUploadProgress&Type=File&CurrentFolder=/Docs/&uploadID=19382&refreshURL=".$fckphp_config['uploadProgressHandler']."?uploadID=19382&amp;read=30&amp;total=100 :<br />\n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-			
-		$test = implode("",file($uri."connector.php?Command=GetUploadProgress&Type=File&CurrentFolder=/Docs/&uploadID=19382&refreshURL=".$fckphp_config['uploadProgressHandler']."?uploadID=19382&amp;read=30&amp;total=100"));
-		$test=str_replace("&amp;","&",$test);
-		$test=htmlentities($test);
-		echo str_replace("\n","<br />",$test);
-		echo "</div> Please do a sanity check on this, it should be something like: \n
-			<div style=\"border-style:solid;border-width:1px;border-color:#000000\">\n";
-		
-		$expect="
-<?xml version=\"1.0\" encoding=\"utf-8\" ?>
-<Connector command=\"GetUploadProgress\" resourceType=\"File\">
-<CurrentFolder path=\"/Docs/\" url=\"/data/resources/File/Docs/\" />
-<Progress max=\"0\" value=\"0\" />
-<RefreshURL url=\"".$fckphp_config['uploadProgressHandler']."?iTotal=&iRead=&iStatus=&sessionid=&dtnow=1098478692&dtstart=\" />
-</Connector>";
-	
-		
-		$expect=htmlentities($expect);
-		$expect=str_replace(array("\n","\r"),"<br />",$expect);
-		echo "<b>EXAMPLE RESPONSE</b>".$expect;
-		?>
-		</div>
-		<br /><br />
-		<?php
-//--------------------------------------------------------------------------------------------------------------------------------------------------
-		
-
-?>
-</body>
-</html> 

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmactualfolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmactualfolder.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmactualfolder.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,63 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmactualfolder.html
- * 	This page shows the actual folder path.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript">
-
-function OnResize()
-{
-	divName.style.width = "1px" ;
-	divName.style.width = tdName.offsetWidth + "px" ;
-}
-
-function SetCurrentFolder( resourceType, folderPath )
-{
-	document.getElementById('tdName').innerHTML = folderPath ;
-}
-
-window.onload = function()
-{
-	window.top.IsLoadedActualFolder = true ;
-}
-
-		</script>
-	</head>
-	<body bottomMargin="0" topMargin="0">
-		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
-			<tr>
-				<td>
-					<button style="WIDTH: 100%" type="button">
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-							<tr>
-								<td><img height="32" alt="" src="images/FolderOpened32.gif" width="32"></td>
-								<td>&nbsp;</td>
-								<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
-								<td>&nbsp;</td>
-								<td><!--<img height="8" src="images/ButtonArrow.gif" width="12">--></td>
-								<td>&nbsp;</td>
-							</tr>
-						</table>
-					</button>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmcreatefolder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmcreatefolder.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmcreatefolder.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,105 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmcreatefolder.html
- * 	Page used to create new folders in the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<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 type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
-
-function SetCurrentFolder( resourceType, folderPath )
-{
-	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath
-}
-
-function CreateFolder()
-{
-	var sFolderName ;
-	
-	while ( true ) 
-	{
-		sFolderName = prompt( 'Type the name of the new folder:', '' ) ;
-	
-		if ( sFolderName == null )
-			return ;
-		else if ( sFolderName.length == 0 )
-			alert( 'Please type the folder name' ) ;
-		else
-			break ;
-	}
-	
-	oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + escape( sFolderName) , CreateFolderCallBack ) ;
-}
-
-function CreateFolderCallBack( fckXml )
-{
-	// Get the current folder path.
-	var oNode = fckXml.SelectSingleNode( 'Connector/Error' ) ;
-	var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value ) ;
-	
-	switch ( iErrorNumber )
-	{
-		case 0 :
-			window.parent.frames['frmResourcesList'].Refresh() ;
-			break ;
-		case 101 :
-			alert( 'Folder already exists' ) ;
-			break ;
-		case 102 :
-			alert( 'Invalid folder name' ) ;
-			break ;
-		case 103 :
-			alert( 'You have no permissions to create the folder' ) ;
-			break ;
-		case 110 :
-			alert( 'Unknown error creating folder' ) ;
-			break ;
-		default :
-			alert( 'Error creating folder. Error number: ' + iErrorNumber ) ;
-			break ;
-	}
-}
-
-window.onload = function()
-{
-	window.top.IsLoadedCreateFolder = true ;
-}
-		</script>
-	</head>
-	<body bottomMargin="0" topMargin="0">
-		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
-			<tr>
-				<td>
-					<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
-						<table cellSpacing="0" cellPadding="0" border="0">
-							<tr>
-								<td><img height="16" alt="" src="images/Folder.gif" width="16"></td>
-								<td>&nbsp;</td>
-								<td nowrap>Create New Folder</td>
-							</tr>
-						</table>
-					</button>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmfolders.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmfolders.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmfolders.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,199 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmfolders.html
- * 	This page shows the list of folders available in the parent folder 
- * 	of the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript" src="js/fckxml.js"></script>
-		<script type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
-
-var sActiveFolder ;
-
-var bIsLoaded = false ;
-var iIntervalId ;
-
-var oListManager = new Object() ;
-
-oListManager.Init = function()
-{
-	this.Table = document.getElementById('tableFiles') ;
-	this.UpRow = document.getElementById('trUp') ;
-
-	this.TableRows = new Object() ;	
-}
-
-oListManager.Clear = function()
-{
-	// Remove all other rows available.
-	while ( this.Table.rows.length > 1 )
-		this.Table.deleteRow(1) ;
-
-	// Reset the TableRows collection.
-	this.TableRows = new Object() ;
-}
-
-oListManager.AddItem = function( folderName, folderPath )
-{
-	// Create the new row.
-	var oRow = this.Table.insertRow(-1) ;
-	oRow.className = 'FolderListFolder' ;
-
-	// Build the link to view the folder.
-	var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
-
-	// 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>' ;
-
-	// Add the folder name cell.
-	oCell = oRow.insertCell(-1) ;
-	oCell.noWrap = true ;
-	oCell.innerHTML = '&nbsp;' + sLink + folderName + '</a>' ;
-	
-	this.TableRows[ folderPath ] = oRow ;
-}
-
-oListManager.ShowUpFolder = function( upFolderPath )
-{
-	this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' ) ;
-	
-	if ( upFolderPath != null )
-	{
-		document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
-		{
-			LoadFolders( upFolderPath ) ;
-			return false ;
-		}
-	}
-}
-
-function CheckLoaded()
-{
-	if ( window.top.IsLoadedActualFolder 
-		&& window.top.IsLoadedCreateFolder 
-		&& window.top.IsLoadedUpload
-		&& window.top.IsLoadedResourcesList )
-	{
-		window.clearInterval( iIntervalId ) ;
-		bIsLoaded = true ;
-		OpenFolder( sActiveFolder ) ;
-	}
-}
-
-function OpenFolder( folderPath )
-{
-	sActiveFolder = folderPath ;
-
-	if ( ! bIsLoaded )
-	{
-		if ( ! iIntervalId )
-			iIntervalId = window.setInterval( CheckLoaded, 100 ) ;
-		return ;
-	}
-
-	// Change the style for the select row (to show the opened folder).
-	for ( var sFolderPath in oListManager.TableRows )
-	{
-		oListManager.TableRows[ sFolderPath ].className = 
-			( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' ) ;
-	}
-
-	// Set the current folder in all frames.
-	window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
-	window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
-	window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath ) ;
-	
-	// Load the resources list for this folder.
-	window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath ) ;
-}
-
-function LoadFolders( folderPath )
-{
-	// Clear the folders list.
-	oListManager.Clear() ;
-
-	// Get the parent folder path.
-	var sParentFolderPath ;
-	if ( folderPath != '/' )
-		sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 ) ;
-
-	// Show/Hide the Up Folder.
-	oListManager.ShowUpFolder( sParentFolderPath ) ;
-	
-	if ( folderPath != '/' )
-	{
-		sActiveFolder = folderPath ;
-		oConnector.CurrentFolder = sParentFolderPath
-		oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;
-	}
-	else 
-	{
-		oListManager.ShowUpFolder( '/' ) ;
-		sActiveFolder = folderPath ;
-		oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack ) ;	
-	}
-		
-}
-
-function GetFoldersCallBack( fckXml )
-{
-	// Get the current folder path.
-	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
-	var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
-	
-	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
-	
-	for ( var i = 0 ; i < oNodes.length ; i++ )
-	{
-		var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
-		oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
-	}
-	
-	OpenFolder( sActiveFolder ) ;
-}
-
-function SetResourceType( type )
-{
-	oConnector.ResourceType = type ;
-	LoadFolders( '/' ) ;
-}
-
-window.onload = function()
-{
-	oListManager.Init() ;
-	
-	if ( oConnector.ResourceType.length == 0 )
-		SetResourceType( 'File' ) ;
-	else
-		LoadFolders( '/' ) ;
-}
-		</script>
-	</head>
-	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
-		<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>
-				<td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>
-			</tr>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmimageeditor.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmimageeditor.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmimageeditor.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,282 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmimageeditor.html
- * 	This page facilitates the editing of images.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript" src="js/fckxml.js"></script>
-		<script type="text/javascript" src="js/common.js"></script>
-		<script type="text/javascript" src="js/wz_jsgraphics.js"></script>
-		<script type="text/javascript" src="js/EditorContent.js"></script>
-		<script language="javascript" type="text/javascript">
-<!--
-
-oConnector.CurrentFolder = GetMyUrlParam( 'CurrentFolder' ) ;
-var fileName=GetMyUrlParam( 'FileName' ) ;
-var fileURL=unescape( GetMyUrlParam( 'FileURL' ) );
-
-var cursor_X, cursor_Y;
-var imageEditorLoaded=false;
-
-var bottomFrame1, bottomFrame2, bottomFrame3;
-/*
-var t_cx, t_cy, t_cw, t_ch;
-var m_sx, m_sy, m_w, m_h, m_a, m_d;
-var s_sw, s_sh;
-
-var r_ra;
-var constrained;
-var pattern = "images/2x2.gif";*/
-
-function RenameFile( fileName, fileUrl )
-{
-	var promptMsg='Please enter the new name for ' + fileName + ':';
-	var newName=prompt(promptMsg,fileName);
-	
-	if ((newName!=null)&&(newName!='')&&(newName!=fileName)) {
-		oConnector.SendCommand( 'RenameFile', "FileName=" + escape( fileName ) + "&NewName=" + escape( newName ), RenameFileCallBack ) ;
-	}
-}
-
-function RenameFolder( folderName )
-{
-	var promptMsg='Please enter the new name for ' + folderName + ':';
-	var newName=prompt(promptMsg,folderName);
-	
-	if ((newName!=null)&&(newName!='')&&(newName!=folderName)) {
-		oConnector.SendCommand( 'RenameFolder', "FolderName=" + escape( folderName ) + "&NewName=" + escape ( newName ), RenameFolderCallBack ) ;
-	}
-}
-
-function LoadResources( resourceType, folderPath )
-{
-	oListManager.Clear() ;
-	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath
-	oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
-}
-
-function Refresh()
-{
-	LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
-}
-
-function RenameFolderCallBack ( fckXml )
-{
-	var oNodes = fckXml.SelectNodes( 'Connector/Error' );
-	if (oNodes.length>0) {
-		var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
-		
-		switch (errNo) {
-			case 0 :
-				break;	
-			
-			case 602 :
-				alert('Failed to rename folder.');
-				break;
-			
-			default:
-				alert('Invalid XML response from connector..');
-		}
-	} else {
-		alert('Invalid XML response from connector.');
-	}
-	Refresh();
-}
-
-
-function drawFramework() 
-{
-	bottomFrame1 = top.frames['frmCreateFolder'].document;
-	bottomFrame2 = top.frames['frmUpload'].document;
-	bottomFrame3 = top.frames['frmFolders'].document;
-	
-	bottomFrame1.body.innerHTML='<table style="border-width: 0px; border-style: none;" align="center" cellpadding="2" id="toolbar1"><table>';
-	bottomFrame2.body.innerHTML='<table style="height: 100%; border-width: 0px; border-style: none;" cellpadding="4"><tr id="toolbar2"></tr><table>';
-	bottomFrame3.body.innerHTML='<table style="border-width: 0px; border-style: none;" align="center" cellpadding="8" id="toolbar3"><table>';
-	
-	var toolbar1 = bottomFrame1.getElementById('toolbar1');
-	var toolbar2 = bottomFrame2.getElementById('toolbar2');
-	var toolbar3 = bottomFrame3.getElementById('toolbar3');
-	
-
-/*#######################*/
-/* START OF MAIN TOOLBAR */
-/*#######################*/
-
-	/* --- Save Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="" title="Save Image">' +
-				'<img src="images/toolbar/save.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Save' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-		
-	
-	/* --- Close Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="#" title="Close Image" onclick="window.top.location.reload();">' +
-				'<img src="images/toolbar/close.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Close' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-	/* --- Seperator --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<hr /><br />';
-				
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-	/* --- Resize Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="javascript: top.frames[\'frmResourcesList\'].setMode(\'resize\');" class="tb_item" id="tb_scale" title="Resize Image">' +
-				'<img src="images/toolbar/resize.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Resize' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-	/* --- Crop Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="javascript: top.frames[\'frmResourcesList\'].setMode(\'crop\');" class="tb_item" id="tb_crop" title="Crop Image">' +
-				'<img src="images/toolbar/crop.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Crop' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-	/* --- Rotate Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="javascript: top.frames[\'frmResourcesList\'].setMode(\'rotate\');" class="tb_item" id="tb_rotate" title="Rotate Image">' +
-				'<img src="images/toolbar/rotate.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Rotate' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-	/* --- Flip Image --- */
-	var row = toolbar3.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = 	'<a href="javascript: top.frames[\'frmResourcesList\'].setMode(\'flip\');" class="tb_item" id="tb_flip" title="Flip Image">' +
-				'<img src="images/toolbar/flip.gif" style="width: 22px; height: 22px;" /><br />' + 
-				'Flip' +
-				'</a>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	
-	
-
-/*###################*/
-/* START OF INFO BAR */
-/*###################*/
-	/* --- X Position --- */
-	var row = toolbar1.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = '<div style="display: inline;">X: <div style="display: inline;" id="cursor_x">0</div>px</div>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	cursor_X=bottomFrame1.getElementById('cursor_x');
-	
-	/* --- Y Posision --- */
-	var row = toolbar1.insertRow(-1);
-	var oCell = row.insertCell(-1);
-	oCell.innerHTML = '<div style="display: inline;">Y: <div style="display: inline;" id="cursor_y">0</div>px</div>';
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	cursor_Y=bottomFrame1.getElementById('cursor_y');
-
-	
-/*#####################*/
-/* START OF MANUAL BAR */
-/*#####################*/
-
-	/* --- X Position --- */
-	//var row = toolbar2.insertRow(-1);
-	var oCell = toolbar2.insertCell(-1);
-	oCell.innerHTML = '<input type="text" id="cx" />' + 
-	'<input type="text" id="cy" />';
-	
-	oCell.noWrap = true;
-	oCell.align = 'center';
-	cursor_X=bottomFrame1.getElementById('cursor_x');
-
-
-}
-
-window.onload = function()
-{
-	drawFramework();
-	document.getElementById('theImage').src=fileURL;
-	
-	jg_doc = new jsGraphics("imgCanvas"); // draw directly into document
-	jg_doc.setColor("#000000"); // black
-	
-// 	top.frames['frmResourcesList'].setMode('scale');
-	imageEditorLoaded=true;
-// 	top.frames['frmResourcesList'].setMode('scale');
-}
-
-function updateXY(eventObject)
-{
-	if (imageEditorLoaded) {
-		cursor_X.innerHTML = eventObject.pageX;
-		cursor_Y.innerHTML = eventObject.pageY;
-	}
-}
-
-//-->
-
-		</script>
-		<style type="text/css">
-			body { margin: 0; padding: 0;  background-color: #eee; }
-			table { width: 100%; }
-			table td { text-align: center; }
-			.crop{cursor:crosshair;}
-			.selection { border: dotted 1px #000000; position:absolute; width: 0px; height: 1px; z-index:5; }
-			.selectionWhite{ border: dotted 1px #FFFFFF; position:absolute; width: 0px; height: 1px; z-index:5; }
-			.handleBox{ z-index:105; }
-			.error { font-size:large; font-weight:bold; color:#c00; font-family: Helvetica, sans-serif; } 
-		</style>
-	</head>
-	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
-		<div id="status"></div>
-		<div id="ant" class="selection" style="visibility:hidden"><img src="img/spacer.gif" width="0" height="0" border="0" alt="" id="cropContent"></div>
-		<br /><table style="margin-left: auto; margin-right: auto;">
-			<tr>
-				<td>
-					<span id="imgCanvas" class="crop"><img src="" alt="" id="theImage" name="theImage"></span>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourceslist.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourceslist.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourceslist.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,384 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmresourceslist.html
- * 	This page shows all resources available in a folder in the File Browser.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Grant French (grant at mcpuk.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript" src="js/fckxml.js"></script>
-		<script type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
-
-var oListManager = new Object() ;
-
-oListManager.Init = function()
-{
-	this.Table = document.getElementById('tableFiles') ;
-}
-
-oListManager.Clear = function()
-{
-	// Remove all other rows available.
-	while ( this.Table.rows.length > 0 )
-		this.Table.deleteRow(0) ;
-}
-
-oListManager.AddFolder = function( folderName, folderPath )
-{
-	var docWidth=document.body.clientWidth;
-	if (docWidth==null) docWidth=document.body.scrollWidth;
-	var maxCols=docWidth/120;
-	maxCols--;
-	
-	var rows=this.Table.getElementsByTagName('tr');
-	
-	
-	if (rows.length!=0) {
-		var lastRow = rows[(rows.length-1)];
-		var cells = lastRow.getElementsByTagName('td');
-		var lastRow_Cols = cells.length;
-		
-		if (lastRow_Cols>=maxCols) {
-			lastRow = this.Table.insertRow(-1);
-			lastRow.className="Frame_tb";
-		}
-	} else {
-		var lastRow = this.Table.insertRow(-1);
-		lastRow.className="Frame_tb";
-	}
-	
-	// Build the link to view the folder.
-	var sLink = '<a href="#" onclick="OpenFolder(\'' + escape(folderPath) + '\');return false;">' ;
-	var dLink = '<a href="#" onclick="DeleteFolder(\'' + escape(folderName) + '\');return false;">' ;
-	var rLink = '<a href="#" onclick="RenameFolder(\'' + escape(folderName) + '\');return false;">' ;
-	
-	// Add the file icon cell.
-	var oCell = lastRow.insertCell(-1) ;
-	oCell.vAlign="top";
-	oCell.width = 96 ;
-	oCell.innerHTML = sLink + '<img alt="' + folderName + '" src="images/Folder96.jpg" width="96" height="96" border="0"><br />' + folderName + '</a><br />';
-	oCell.innerHTML += dLink + '<img border="0" src="images/delete.gif" width="16" height="16" alt="Delete Folder" title="Delete Folder"></a>&nbsp;';
-	oCell.innerHTML += rLink + '<img border="0" src="images/edit.gif" width="16" height="16" alt="Rename Folder" title="Rename Folder"></a>' ;
-	oCell.noWrap = true ;
-	oCell.align = 'center' ;
-	
-}
-
-oListManager.AddFile = function ( fileName, fileUrl, fileSize, imageEditable )
-{
-	var docWidth=document.body.clientWidth;
-	if (docWidth==null) docWidth=document.body.scrollWidth;
-	var maxCols=docWidth/120;
-	maxCols--;
-	
-	var rows=this.Table.getElementsByTagName('tr');
-	
-	
-	if (rows.length!=0) {
-		var lastRow = rows[(rows.length-1)];
-		var cells = lastRow.getElementsByTagName('td');
-		var lastRow_Cols = cells.length;
-		
-		if (lastRow_Cols>=maxCols) {
-			var lastRow = this.Table.insertRow(-1);
-			lastRow.className="Frame_tb";
-		}
-	} else {
-		var lastRow = this.Table.insertRow(-1);
-		lastRow.className="Frame_tb";
-	}
-	
-	// Build the link to view the file.
-	var sLink = '<a href="#" title="Size: ' + fileSize + 'kb" onclick="OpenFile(\'' + escape(fileUrl) + '\');return false;">' ;
-	var dLink = '<a href="#" title="Delete file" onclick="DeleteFile(\'' + escape(fileName) + '\');return false;">' ;
-	var eLink = '<a href="#" title="Rename file" onclick="RenameFile(\'' + escape(fileName) + '\');return false;">' ;
-	var eImageLink = '<a href="#" title="Edit Image" onclick="EditImage(\'' + escape(fileName) + '\',\'' + escape(fileUrl) + '\');return false;">' ;
-	
-	// Add the file icon cell.
-	var oCell = lastRow.insertCell(-1) ;
-	oCell.vAlign="top";
-	oCell.width = 96 ;
-	
-	oCell.innerHTML = sLink + 
-		'<img alt="' + fileName + '" src="' + 
-					oConnector.ConnectorUrl + 
-					'?Command=Thumbnail&Type=' + 
-					oConnector.ResourceType + 
-					'&CurrentFolder=' + 
-					oConnector.CurrentFolder + 
-					'&FileName=' + escape(fileName) + 
-					'&ExtraParams=' + oConnector.ExtraParams +
-					'" width="96" height="96" border="0"><br />' + 
-		fileName + '</a><br />';
-	oCell.innerHTML += dLink + '<img border="0" src="images/delete.gif" width="16" height="16" alt="Delete File" title="Delete File"></a>&nbsp;';
-	oCell.innerHTML += eLink + '<img border="0" src="images/edit.gif" width="16" height="16" alt="Edit/Rename File" title="Rename File"></a>' ;
-	if (imageEditable==1) { 
-		oCell.innerHTML += eImageLink + '<img border="0" src="images/editImage.gif" width="16" height="16" alt="Edit Image" title="Edit Image"></a>' ;
-	}
-		
-	oCell.noWrap = true ;
-	oCell.align = 'center' ;
-	
-}
-
-oListManager.PackRow = function ()
-{
-	var docWidth=document.body.clientWidth;
-	if (docWidth==null) docWidth=document.body.scrollWidth;
-	var maxCols=docWidth/120;
-	maxCols--;
-	
-	var rows=this.Table.getElementsByTagName('tr');
-	
-	
-	if (rows.length!=0) {
-		var lastRow = rows[(rows.length-1)];
-		var cells = lastRow.getElementsByTagName('td');
-		var lastRow_Cols = cells.length;
-		
-		if (lastRow_Cols<maxCols) {
-			for (i=lastRow_Cols;i<maxCols;i++) {
-				var oCell = lastRow.insertCell(-1);
-				oCell.width=96;
-				oCell.innerHTML = '&nbsp;';
-				oCell.noWrap=true;
-				oCell.align='center';
-			}
-		}
-	}
-	
-}
-
-function OpenFolder( folderPath )
-{
-	// Load the resources list for this folder.
-	window.parent.frames['frmFolders'].LoadFolders( folderPath ) ;
-}
-
-function OpenFile( fileUrl )
-{
-	fileUrl=unescape(fileUrl);
-	window.top.opener.SetUrl( fileUrl ) ;
-	window.top.close() ;
-	window.top.opener.focus() ;
-}
-
-function DeleteFile( fileName, fileUrl )
-{
-	if (confirm('Are you sure you wish to delete ' + unescape(fileName) + '?')) {
-		oConnector.SendCommand( 'DeleteFile', "FileName=" + fileName, DeleteFileCallBack ) ;
-	}
-}
-
-function DeleteFolder( folderName )
-{
-	if (confirm('Are you sure you wish to delete ' + unescape(folderName) + ' and all files in it?')) {
-		oConnector.SendCommand( 'DeleteFolder', "FolderName=" + folderName, DeleteFolderCallBack ) ;
-	}
-}
-
-function RenameFile( fileName, fileUrl )
-{
-	var promptMsg='Please enter the new name for ' + unescape(fileName) + ':';
-	var newName=prompt(promptMsg,unescape(fileName));
-	
-	if ((newName!=null)&&(newName!='')&&(newName!=fileName)) {
-		oConnector.SendCommand( 'RenameFile', "FileName=" + fileName + "&NewName=" + escape( newName ), RenameFileCallBack ) ;
-	}
-}
-
-function EditImage( fileName, fileUrl )
-{
-
-	window.location.href="frmimageeditor.html?Connector=" + oConnector.ConnectorUrl + 
-				"&Type=" + oConnector.ResourceType + 
-				"&CurrentFolder=" + oConnector.CurrentFolder + 
-				"&FileName=" + fileName + 
-				"&FileURL=" + fileUrl;
-				
-}
-
-function RenameFolder( folderName )
-{
-	var promptMsg='Please enter the new name for ' + unescape(folderName) + ':';
-	var newName=prompt(promptMsg,unescape(folderName));
-	
-	if ((newName!=null)&&(newName!='')&&(newName!=unescape(folderName))) {
-		oConnector.SendCommand( 'RenameFolder', "FolderName=" + folderName + "&NewName=" + escape ( newName ), RenameFolderCallBack ) ;
-	}
-}
-
-function LoadResources( resourceType, folderPath )
-{
-	oListManager.Clear() ;
-	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath
-	oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack ) ;
-}
-
-function Refresh()
-{
-	LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;
-}
-
-function GetFoldersAndFilesCallBack( fckXml )
-{
-	// Get the current folder path.
-	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
-	var sCurrentFolderPath	= oNode.attributes.getNamedItem('path').value ;
-	var sCurrentFolderUrl	= oNode.attributes.getNamedItem('url').value ;
-
-	// Add the Folders.	
-	var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' ) ;
-	
-	if (oNodes!=null) {
-		for ( var i = 0 ; i < oNodes.length ; i++ )
-		{
-			var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
-			oListManager.AddFolder( sFolderName, sCurrentFolderPath + sFolderName + "/" ) ;
-		}
-	}
-	
-	// Add the Files.	
-	var oNodes = fckXml.SelectNodes( 'Connector/Files/File' ) ;
-	if (oNodes!=null) {
-		for ( var i = 0 ; i < oNodes.length ; i++ )
-		{
-			var sFileName = oNodes[i].attributes.getNamedItem('name').value ;
-			var sFileSize = oNodes[i].attributes.getNamedItem('size').value ;
-			var iEditable = oNodes[i].attributes.getNamedItem('editable') ;
-			if (iEditable!=null) {
-				iEditable = iEditable.value;	
-			} else {
-				iEditable = 0;
-			}
-			
-			oListManager.AddFile( sFileName, sCurrentFolderUrl + sFileName, sFileSize, iEditable ) ;
-		}
-	}
-	
-	oListManager.PackRow();
-}
-
-function DeleteFileCallBack ( fckXml )
-{
-	var oNodes = fckXml.SelectNodes( 'Connector/Error' );
-	if (oNodes!=null && oNodes.length>0) {
-		var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
-		
-		switch (errNo) {
-			case 0 :
-				break;	
-			
-			case 302 :
-				alert('Failed to delete file.');
-				break;
-			
-			default:
-				alert('DFi: Invalid XML response from connector..');
-		}
-	} else {
-		alert('DFi: Invalid XML response from connector.');
-	}
-	Refresh();
-}
-
-
-function DeleteFolderCallBack ( fckXml )
-{
-	var oNodes = fckXml.SelectNodes( 'Connector/Error' );
-	if (oNodes!=null && oNodes.length>0) {
-		var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
-		
-		switch (errNo) {
-			case 0 :
-				break;	
-			
-			case 402 :
-				alert('Failed to delete folder.');
-				break;
-			
-			default:
-				alert('DFo: Invalid XML response from connector..');
-		}
-	} else {
-		alert('DFo: Invalid XML response from connector.');
-	}
-	Refresh();
-}
-
-function RenameFileCallBack ( fckXml )
-{
-	var oNodes = fckXml.SelectNodes( 'Connector/Error' );
-	if (oNodes!=null && oNodes.length>0) {
-		var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
-		
-		switch (errNo) {
-			case 0 :
-				break;	
-			
-			case 502 :
-				alert('Failed to rename file.');
-				break;
-			
-			default:
-				alert('RFi: Invalid XML response from connector..');
-		}
-	} else {
-		alert('RFi: Invalid XML response from connector.');
-	}
-	Refresh();
-}
-
-
-function RenameFolderCallBack ( fckXml )
-{
-	var oNodes = fckXml.SelectNodes( 'Connector/Error' );
-	if (oNodes!=null && oNodes.length>0) {
-		var errNo = parseInt(oNodes[0].attributes.getNamedItem('number').value) ;
-		
-		switch (errNo) {
-			case 0 :
-				break;	
-			
-			case 602 :
-				alert('Failed to rename folder.');
-				break;
-			
-			default:
-				alert('RFo: Invalid XML response from connector..');
-		}
-	} else {
-		alert('RFo: Invalid XML response from connector.');
-	}
-	Refresh();
-}
-
-window.onload = function()
-{
-	oListManager.Init() ;
-	window.top.IsLoadedResourcesList = true ;
-}
-		</script>
-	</head>
-	<body class="FileArea" bottomMargin="10" leftMargin="10" topMargin="10" rightMargin="10">
-		<table id="tableFiles" cellSpacing="4" cellPadding="5" width="100%" border="0">
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourcetype.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourcetype.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmresourcetype.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,66 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmresourcetype.html
- * 	This page shows the list of available resource types.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-		<link href="browser.css" type="text/css" rel="stylesheet">
-		<script type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
-
-function SetResourceType( type )
-{
-	window.parent.frames["frmFolders"].SetResourceType( type ) ;
-}
-
-var aTypes = [
-	['File','File'],
-	['Image','Image'],
-	['Flash','Flash'],
-	['Media','Media']
-] ;
-
-window.onload = function()
-{
-   var bHasType = ( oConnector.ResourceType.length > 0 ) ;
-   cmbTypeObj=document.getElementById("cmbType");
-   for ( var i = 0 ; i < aTypes.length ; i++ )
-   {
-       if ( !bHasType || aTypes[i][0] ==
-oConnector.ResourceType )
-           AddSelectOption( cmbTypeObj, aTypes[i][1],
-aTypes[i][0] ) ;
-   }
-} 
-
-		</script>
-	</head>
-	<body bottomMargin="0" topMargin="0">
-		<table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
-			<tr>
-				<td nowrap>
-					Resource Type<BR>
-					<select id="cmbType" style="WIDTH: 100%" onchange="SetResourceType(this.value);">
-					</select>
-				</td>
-			</tr>
-		</table>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmupload.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmupload.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/frmupload.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,233 +0,0 @@
-<!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: frmupload.html
- * 	Page used to upload new files in the current folder.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Grant French (grant at mcpuk.net)
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<link href="browser.css" type="text/css" rel="stylesheet" />
-		<script type="text/javascript" src="js/fckxml.js"></script>
-		<script type="text/javascript" src="js/common.js"></script>
-		<script language="javascript">
-
-var randomnumber=Math.floor(Math.random()*65535);
-var refreshURL='';
-var uploading=false;
-
-function SetCurrentFolder( resourceType, folderPath )
-{
-	var sUrl = oConnector.UploadHandler +'?uploadID='+randomnumber+'&Connector='+escape(oConnector.ConnectorUrl)+'&Command=FileUpload' ;
-	sUrl += '&Type=' + resourceType ;
-	sUrl += '&CurrentFolder=' + folderPath ;
-	sUrl += '&ExtraParams=' + oConnector.ExtraParams ;
-	document.getElementById('frmUpload').action = sUrl ;
-	
-	oConnector.ResourceType = resourceType ;
-	oConnector.CurrentFolder = folderPath ;
-}
-
-function OnSubmit()
-{
-	if ( document.getElementById('NewFile').value.length == 0 )
-	{
-		alert( 'Please select a file from your computer' ) ;
-		return false ;
-	}
-
-	// Set the interface elements.
-	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait... 0%)' ;
-	document.getElementById('filebox').style.display="none";
-	resetProgressBar();
-	document.getElementById('progressbox').style.display="inline";
-	document.getElementById('btnUpload').disabled = true ;
-	
-	uploading=true;
-	setTimeout("GetUploadProgress()",2000);
-	
-	return true ;
-}
-
-function OnUploadCompleted( errorNumber, fileName )
-{
-	uploading=false;
-	
-	// Reset the Upload Worker Frame.
-	window.parent.frames['frmUploadWorker'].location = '' ;
-	
-	// Reset the upload form.
-	//Sometimes causes IE to get itself in a mess (wont allow second upload)
-	//document.getElementById('NewFile').reset() ;
-	
-	// Reset the interface elements.
-	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
-	document.getElementById('btnUpload').disabled = false ;
-	
-	var randomnumber=Math.floor(Math.random()*65535);
-	SetCurrentFolder(oConnector.ResourceType,oConnector.CurrentFolder);
-	
-	switch ( errorNumber )
-	{
-		case 0 :
-			window.parent.frames['frmResourcesList'].Refresh() ;
-			document.getElementById('filebox').style.display="inline";
-			document.getElementById('progressbox').style.display="none";
-			break ;
-		case 201 :
-			window.parent.frames['frmResourcesList'].Refresh() ;
-			document.getElementById('filebox').style.display="inline";
-			document.getElementById('progressbox').style.display="none";
-			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
-			break ;
-		case 202 :
-			document.getElementById('filebox').style.display="inline";
-			document.getElementById('progressbox').style.display="none";
-			alert( 'Error, "'+fileName+'"' ) ;
-			break ;
-		default :
-			document.getElementById('filebox').style.display="inline";
-			document.getElementById('progressbox').style.display="none";
-			alert( 'Error on file upload. Error number: ' + errorNumber ) ;
-			break ;
-	}
-}
-
-function resetProgressBar() {
-	oProgressBar=document.getElementById('progress');
-	var rows=oProgressBar.getElementsByTagName('tr');
-	var row=rows[0];
-	var cols=row.getElementsByTagName('td');
-//	var label=document.getElementById("progress_label");
-	
-//	label.innerHTML="0%"
-	for (i=0;i<(cols.length-1);i++) {
-		cols[i].className="progress_hollow";	
-	}
-}
-
-warned=false;
-function GetUploadProgressCallback( fckXml ) {
-	// Get the current folder path.
-	
-	if (!uploading) return false;
-	
-	var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' ) ;
-	if (oNode==null) { if(!warned) { alert("Invalid XML response from connector."); warned=true; } return false; }
-	if ((oNode.attributes.getNamedItem('path')==null)||(oNode.attributes.getNamedItem('url')==null)) {
-		if(!warned) { alert("Invalid XML response from connector."); warned=true; }
-		return;
-	}
-	
-	var sCurrentFolderPath	= oNode.attributes.getNamedItem('path').value ;
-	var sCurrentFolderUrl	= oNode.attributes.getNamedItem('url').value ;
-
-	// Add the Folders.	
-	var oNode = fckXml.SelectSingleNode( 'Connector/Progress' ) ;
-	if (oNode==null) { if(!warned) { alert("Invalid XML response from connector."); warned=true; } return false; }
-	if ((oNode.attributes.getNamedItem('max')==null)||(oNode.attributes.getNamedItem('value')==null)) {
-		if(!warned) { alert("Invalid XML response from connector."); warned=true; }
-		return;
-	}
-	
-	var iMax	= oNode.attributes.getNamedItem('max').value ;
-	var iValue	= oNode.attributes.getNamedItem('value').value ;
-	
-	var oNode = fckXml.SelectSingleNode( 'Connector/RefreshURL' ) ;
-	if (oNode==null) { if(!warned) { alert("Invalid XML response from connector."); warned=true; } return false; }
-	if ((oNode.attributes.getNamedItem('url')==null)) {
-		if(!warned) { alert("Invalid XML response from connector."); warned=true; }
-		return;
-	}
-	refreshURL	= oNode.attributes.getNamedItem('url').value ;
-	
-	var oProgressBar=document.getElementById('progress');
-	//var label=document.getElementById("progress_label");
-	var rows=oProgressBar.getElementsByTagName('tr');
-	var row=rows[0];
-	var cols=row.getElementsByTagName('td');
-	var percentage=Math.floor((iValue/iMax)*100);
-	document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait.. ' + percentage + '% )' ;
-	
-	//label.innerHTML=percentage+"%"
-	for (i=0;i<(cols.length-1);i++) {
-		if (((i+1)*(100/cols.length))<=percentage) {
-			cols[i].className="progress_filled";	
-		} else {
-			cols[i].className="progress_hollow";
-		}
-	}
-	
-	if (uploading) getProgressTimer=setTimeout("GetUploadProgress()",1000);
-}
-
-function GetUploadProgress() {
-	if (uploading) oConnector.SendCommand( 'GetUploadProgress', 'uploadID='+randomnumber+'&refreshURL='+escape(refreshURL), GetUploadProgressCallback ) ;
-}
-
-window.onload = function()
-{
-	window.top.IsLoadedUpload = true ;
-}
-		</script>
-	</head>
-	<body bottomMargin="0" topMargin="0">
-		<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">
-				<tr>
-					<td nowrap>
-						<span id="eUploadMessage">Upload a new file in this folder</span><br>
-						<table cellSpacing="0" cellPadding="0" width="100%" border="0">
-							<tr>
-								<td width="100%">
-									<div id="filebox"><input id="NewFile" name="NewFile" style="width: 100%; background-color: transparent;" type="file"></div>
-									<div id="progressbox" style="display: none">
-										<table id="progress" style="width: 100%" class="progress_bar">
-											<tr>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-												<td class="progress_hollow">&nbsp;</td>
-											</tr>
-										</table>
-										<!--<div id="progress_label"></div>-->
-									</div>
-								</td>
-								<td nowrap>&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
-							</tr>
-						</table>
-					</td>
-				</tr>
-			</table>
-		</form>
-	</body>
-</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/2x2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/2x2_w.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/ButtonArrow.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder32.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/Folder96.jpg
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderOpened.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderOpened32.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/FolderUp.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/close.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/delete.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/edit.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/editImage.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/ai.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/avi.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/bmp.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/cs.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/default.icon.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/dll.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/doc.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/exe.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/fla.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/gif.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/htm.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/html.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/jpg.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/js.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/mdb.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/mp3.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/pdf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/ppt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/rdp.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/swf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/swt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/txt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/vsd.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/xls.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/xml.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/32/zip.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/ai.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/avi.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/bmp.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/cs.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/default.icon.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/dll.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/doc.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/exe.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/fla.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/gif.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/htm.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/html.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/jpg.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/js.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/mdb.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/mp3.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/pdf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/ppt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/rdp.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/swf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/swt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/txt.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/vsd.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/xls.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/xml.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/icons/zip.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/spacer.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/close.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/crop.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/flip.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/resize.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/rotate.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/images/toolbar/save.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/EditorContent.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/EditorContent.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/EditorContent.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,32 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: EditorContent.js
- * 	(!)
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-var mode='resize';
-
-function setMode(newMode) {
-	if (newMode=="resize" || newMode=="crop" || newMode=="rotate" || newMode=="flip") {
-		mode=newMode;
-		alert("New Mode :: "+mode);
-	} else {
-		alert("Image Editor :: Invalid mode selected.");
-	}
-}
-
-function mouseMove(e) {
-
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/common.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/common.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/common.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,101 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: common.js
- * 	Common objects and functions shared by all pages that compose the
- * 	File Browser dialog window.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-function AddSelectOption( selectElement, optionText, optionValue )
-{
-	var oOption = document.createElement("OPTION") ;
-
-	oOption.text	= optionText ;
-	oOption.value	= optionValue ;	
-
-	selectElement.options.add(oOption) ;
-
-	return oOption ;
-}
-
-function GetUrlParam( paramName )
-{
-	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
-	var oMatch = oRegex.exec( unescape(window.top.location.search) ) ;
-	
-	if ( oMatch && oMatch.length > 1 )
-		return oMatch[1] ;
-	else
-		return '' ;
-}
-
-function GetMyUrlParam( paramName )
-{
-	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
-	var oMatch = oRegex.exec( window.location.search ) ;
-	
-	if ( oMatch && oMatch.length > 1 )
-		return oMatch[1] ;
-	else
-		return '' ;
-}
-
-var oConnector = new Object() ;
-oConnector.CurrentFolder	= '/' ;
-oConnector.UploadHandler	= GetUrlParam( 'UploadHandler' );
-oConnector.ConnectorUrl		= GetUrlParam( 'Connector' ) ;
-oConnector.ResourceType		= GetUrlParam( 'Type' ) ;
-oConnector.ExtraParams		= GetUrlParam( 'ExtraParams' ) ;
-
-if ((oConnector.UploadHandler=='')||(oConnector.UploadHandler=='undefined')) oConnector.UploadHandler=oConnector.ConnectorUrl;
-
-
-oConnector.SendCommand = function( command, params, callBackFunction )
-{
-	var sUrl = this.ConnectorUrl + '?Command=' + command ;
-	sUrl += '&Type=' + this.ResourceType ;
-	sUrl += '&ExtraParams=' + this.ExtraParams ;
-	sUrl += '&CurrentFolder=' + escape( this.CurrentFolder ) ;
-	
-	if ( params ) sUrl += '&' + params ;
-
-	var oXML = new FCKXml() ;
-	
-	if ( callBackFunction )
-		oXML.LoadUrl( sUrl, callBackFunction ) ;	// Asynchronous load.
-	else
-		return oXML.LoadUrl( sUrl ) ;
-}
-
-var oIcons = new Object() ;
-
-oIcons.AvailableIconsArray = [ 
-	'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
-	'mdb','mp3','pdf','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
-	
-oIcons.AvailableIcons = new Object() ;
-
-for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
-	oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;
-
-oIcons.GetIcon = function( fileName )
-{
-	var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase() ;
-
-	if ( this.AvailableIcons[ sExtension ] == true )
-		return sExtension ;
-	else
-		return 'default.icon' ;
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/fckxml.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/fckxml.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/fckxml.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,118 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckxml.js
- * 	Defines the FCKXml object that is used for XML data calls
- * 	and XML processing.
- * 	This script is shared by almost all pages that compose the 
- * 	File Browser frameset.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKXml = function()
-{}
-
-function escapeHTML(text) {
-text=text.replace('\n','');
-text=text.replace('&','&amp;');
-text=text.replace('<','&lt;');
-text=text.replace('>','&gt;');
-return text;
-}
-
-FCKXml.prototype.GetHttpRequest = function()
-{
-	if ( window.XMLHttpRequest )		// Gecko
-		return new XMLHttpRequest() ;
-	else if ( window.ActiveXObject )	// IE
-		return new ActiveXObject("MsXml2.XmlHttp") ;
-}
-
-FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
-{
-	var oFCKXml = this ;
-
-	var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
-
-	var oXmlHttp = this.GetHttpRequest() ;
-	oXmlHttp.open( "GET", urlToCall, bAsync ) ;
-	
-	if ( bAsync )
-	{	
-		oXmlHttp.onreadystatechange = function() 
-		{
-			if ( oXmlHttp.readyState == 4 )
-			{
-				/*
-				dbgWin=window.open('','dbgWin','width=700,height=400');
-				txt=dbgWin.document.getElementById('txtXML');
-				
-				if (txt==null) {
-					dbgWin.document.write("<textarea style=\"width: 100%; height: 100%\" id=\"txtXML\"></textarea>");
-					txt=dbgWin.document.getElementById('txtXML');
-				}
-				
-				txt.value=new String("-----------------------------------------\n" + oXmlHttp.responseText);
-				*/
-				
-				oFCKXml.DOMDocument = oXmlHttp.responseXML ;
-				asyncFunctionPointer( oFCKXml ) ;
-			}
-		}
-	}
-	
-	oXmlHttp.send( null ) ;
-	
-	if ( ! bAsync )
-		this.DOMDocument = oXmlHttp.responseXML ;
-}
-
-FCKXml.prototype.SelectNodes = function( xpath )
-{
-	if ( document.all )		// IE
-		return this.DOMDocument.selectNodes( xpath ) ;
-	else					// Gecko
-	{
-		var aNodeArray = new Array();
-
-		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, 
-				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
-		if ( xPathResult ) 
-		{
-			var oNode = xPathResult.iterateNext() ;
- 			while( oNode )
- 			{
- 				aNodeArray[aNodeArray.length] = oNode ;
- 				oNode = xPathResult.iterateNext();
- 			}
-		} 
-		return aNodeArray ;
-	}
-}
-
-FCKXml.prototype.SelectSingleNode = function( xpath ) 
-{
-	if ( document.all )		// IE
-		return this.DOMDocument.selectSingleNode( xpath ) ;
-	else					// Gecko
-	{
-		var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
-				this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
-
-		if ( xPathResult && xPathResult.singleNodeValue )
-			return xPathResult.singleNodeValue ;
-		else	
-			return null ;
-	}
-}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/wz_jsgraphics.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/wz_jsgraphics.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/browser/mcpuk/js/wz_jsgraphics.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,931 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: wz_jsgraphics.js
- * 	Javascript Graphics.
- * 
- * File Authors:
- * 		Grant French (grant at mcpuk.net)
- */
-/***********************************************************************
-** Title.........:  Javascript Graphics
-** Version.......:  1.0
-** Author........:  Xiang Wei ZHUO <wei at zhuo.org>
-** Filename......:  wz_jsgraphics.js
-** Last changed..:  31 Aug 2003  
-** Notes.........:  Modified for Image Editor, added extra commands
-**/ 
-
-/* This notice must be untouched at all times.
-
-wz_jsgraphics.js    v. 2.03
-The latest version is available at
-http://www.walterzorn.com
-or http://www.devira.com
-or http://www.walterzorn.de
-
-Copyright (c) 2002-2003 Walter Zorn. All rights reserved.
-Created 3. 11. 2002 by Walter Zorn <walter at kreuzotter.de>
-Last modified: 11. 6. 2003
-
-High Performance JavaScript Graphics Library.
-Provides methods
-- to draw lines, rectangles, ellipses, polygons
-  with specifiable line thickness,
-- to fill rectangles and ellipses
-- to draw text.
-NOTE: Operations, functions and branching have rather been optimized
-to efficiency and speed than to shortness of source code.
-
-This program is free software;
-you can redistribute it and/or modify it under the terms of the
-GNU General Public License as published by the Free Software Foundation;
-either version 2 of the License, or (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY;
-without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the GNU General Public License
-at http://www.gnu.org/copyleft/gpl.html for more details.
-*/
-
-var jg_ihtm, jg_ie, jg_dom,
-jg_n4 = (document.layers && typeof document.classes != "undefined");
-
-function chkDHTM(x, i)
-{
-    x = document.body || null;
-    jg_ie = (x && typeof x.insertAdjacentHTML != "undefined");
-    jg_dom = (x && !jg_ie &&
-        typeof x.appendChild != "undefined" &&
-        typeof document.createRange != "undefined" &&
-        typeof (i = document.createRange()).setStartBefore != "undefined" &&
-        typeof i.createContextualFragment != "undefined");
-    jg_ihtm = (!jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined");
-}
-
-
-
-
-
-function pntDoc()
-{
-    this.wnd.document.write(this.htm);
-    this.htm = '';
-}
-
-
-
-
-
-function pntCnvDom()
-{
-    var x = document.createRange();
-    x.setStartBefore(this.cnv);
-    x = x.createContextualFragment(this.htm);
-    this.cnv.appendChild(x);
-    this.htm = '';
-}
-
-
-
-
-
-function pntCnvIe()
-{
-    this.cnv.insertAdjacentHTML("BeforeEnd", this.htm);
-    this.htm = '';
-}
-
-
-
-
-
-function pntCnvIhtm()
-{
-    this.cnv.innerHTML += this.htm;
-    this.htm = '';
-}
-
-
-
-
-
-function pntCnv()
-{
-    this.htm = '';
-}
-
-
-
-
-
-function mkDiv(x, y, w, h)
-{
-    this.htm += '<div style="position:absolute;'+
-        'left:' + x + 'px;'+
-        'top:' + y + 'px;'+
-        'width:' + w + 'px;'+
-        'height:' + h + 'px;'+
-        'clip:rect(0,'+w+'px,'+h+'px,0);'+
-        'overflow:hidden;background-color:' + this.color + ';'+
-        '"><\/div>';
-
-    //alert(this.htm);
-}
-
-
-
-
-function mkDivPrint(x, y, w, h)
-{
-    this.htm += '<div style="position:absolute;'+
-        'border-left:' + w + 'px solid ' + this.color + ';'+
-        'left:' + x + 'px;'+
-        'top:' + y + 'px;'+
-        'width:' + w + 'px;'+
-        'height:' + h + 'px;'+
-        'clip:rect(0,'+w+'px,'+h+'px,0);'+
-        'overflow:hidden;background-color:' + this.color + ';'+
-        '"><\/div>';
-}
-
-
-
-
-
-function mkLyr(x, y, w, h)
-{
-    this.htm += '<layer '+
-        'left="' + x + '" '+
-        'top="' + y + '" '+
-        'width="' + w + '" '+
-        'height="' + h + '" '+
-        'bgcolor="' + this.color + '"><\/layer>\n';
-}
-
-
-
-
-
-function mkLbl(txt, x, y)
-{
-    this.htm += '<div style="position:absolute;white-space:nowrap;'+
-        'left:' + x + 'px;'+
-        'top:' + y + 'px;'+
-        'font-family:' +  this.ftFam + ';'+
-        'font-size:' + this.ftSz + ';'+
-        'color:' + this.color + ';' + this.ftSty + '">'+
-        txt +
-        '<\/div>';
-}
-
-
-
-
-
-function mkLin(x1, y1, x2, y2)
-{
-    if (x1 > x2)
-    {
-        var _x2 = x2;
-        var _y2 = y2;
-        x2 = x1;
-        y2 = y1;
-        x1 = _x2;
-        y1 = _y2;
-    }
-    var dx = x2-x1, dy = Math.abs(y2-y1),
-    x = x1, y = y1,
-    yIncr = (y1 > y2)? -1 : 1;
-
-    if (dx >= dy)
-    {
-        var pr = dy<<1,
-        pru = pr - (dx<<1),
-        p = pr-dx,
-        ox = x;
-        while ((dx--) > 0)
-        {
-            ++x;
-            if (p > 0)
-            {
-                this.mkDiv(ox, y, x-ox, 1);
-                y += yIncr;
-                p += pru;
-                ox = x;
-            }
-            else p += pr;
-        }
-        this.mkDiv(ox, y, x2-ox+1, 1);
-    }
-
-    else
-    {
-        var pr = dx<<1,
-        pru = pr - (dy<<1),
-        p = pr-dy,
-        oy = y;
-        if (y2 <= y1)
-        {
-            while ((dy--) > 0)
-            {
-                if (p > 0)
-                {
-                    this.mkDiv(x++, y, 1, oy-y+1);
-                    y += yIncr;
-                    p += pru;
-                    oy = y;
-                }
-                else
-                {
-                    y += yIncr;
-                    p += pr;
-                }
-            }
-            this.mkDiv(x2, y2, 1, oy-y2+1);
-        }
-        else
-        {
-            while ((dy--) > 0)
-            {
-                y += yIncr;
-                if (p > 0)
-                {
-                    this.mkDiv(x++, oy, 1, y-oy);
-                    p += pru;
-                    oy = y;
-                }
-                else p += pr;
-            }
-            this.mkDiv(x2, oy, 1, y2-oy+1);
-        }
-    }
-}
-
-
-
-
-
-function mkLin2D(x1, y1, x2, y2)
-{
-    if (x1 > x2)
-    {
-        var _x2 = x2;
-        var _y2 = y2;
-        x2 = x1;
-        y2 = y1;
-        x1 = _x2;
-        y1 = _y2;
-    }
-    var dx = x2-x1, dy = Math.abs(y2-y1),
-    x = x1, y = y1,
-    yIncr = (y1 > y2)? -1 : 1;
-
-
-    var s = this.stroke;
-    if (dx >= dy)
-    {
-        if (s-0x3 > 0)
-        {
-            var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx;
-            _s = (!(s-0x4)? Math.ceil(_s) : Math.round(_s)) + 1;
-        }
-        else var _s = s;
-        var ad = Math.ceil(s/2);
-
-        var pr = dy<<1,
-        pru = pr - (dx<<1),
-        p = pr-dx,
-        ox = x;
-        while ((dx--) > 0)
-        {
-            ++x;
-            if (p > 0)
-            {
-                this.mkDiv(ox, y, x-ox+ad, _s);
-                y += yIncr;
-                p += pru;
-                ox = x;
-            }
-            else p += pr;
-        }
-        this.mkDiv(ox, y, x2-ox+ad+1, _s);
-    }
-
-    else
-    {
-        if (s-0x3 > 0)
-        {
-            var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy;
-            _s = (!(s-0x4)? Math.ceil(_s) : Math.round(_s)) + 1;
-        }
-        else var _s = s;
-        var ad = Math.round(s/2);
-
-        var pr = dx<<1,
-        pru = pr - (dy<<1),
-        p = pr-dy,
-        oy = y;
-        if (y2 <= y1)
-        {
-            ++ad;
-            while ((dy--) > 0)
-            {
-                if (p > 0)
-                {
-                    this.mkDiv(x++, y, _s, oy-y+ad);
-                    y += yIncr;
-                    p += pru;
-                    oy = y;
-                }
-                else
-                {
-                    y += yIncr;
-                    p += pr;
-                }
-            }
-            this.mkDiv(x2, y2, _s, oy-y2+ad);
-        }
-        else
-        {
-            while ((dy--) > 0)
-            {
-                y += yIncr;
-                if (p > 0)
-                {
-                    this.mkDiv(x++, oy, _s, y-oy+ad);
-                    p += pru;
-                    oy = y;
-                }
-                else p += pr;
-            }
-            this.mkDiv(x2, oy, _s, y2-oy+ad+1);
-        }
-    }
-}
-
-
-
-
-
-function mkLinDott(x1, y1, x2, y2)
-{
-    if (x1 > x2)
-    {
-        var _x2 = x2;
-        var _y2 = y2;
-        x2 = x1;
-        y2 = y1;
-        x1 = _x2;
-        y1 = _y2;
-    }
-    var dx = x2-x1, dy = Math.abs(y2-y1),
-    x = x1, y = y1,
-    yIncr = (y1 > y2)? -1 : 1,
-    drw = true;
-    if (dx >= dy)
-    {
-        var pr = dy<<1,
-        pru = pr - (dx<<1),
-        p = pr-dx;
-        while ((dx--) > 0)
-        {
-            if (drw) this.mkDiv(x, y, 1, 1);
-            drw = !drw;
-            if (p > 0)
-            {
-                y += yIncr;
-                p += pru;
-            }
-            else p += pr;
-            ++x;
-        }
-        if (drw) this.mkDiv(x, y, 1, 1);
-    }
-
-    else
-    {
-        var pr = dx<<1,
-        pru = pr - (dy<<1),
-        p = pr-dy;
-        while ((dy--) > 0)
-        {
-            if (drw) this.mkDiv(x, y, 1, 1);
-            drw = !drw;
-            y += yIncr;
-            if (p > 0)
-            {
-                ++x;
-                p += pru;
-            }
-            else p += pr;
-        }
-        if (drw) this.mkDiv(x, y, 1, 1);
-    }
-}
-
-
-
-
-
-function mkOv(left, top, width, height)
-{
-    var a = width>>1, b = height>>1,
-    wod = width&1, hod = (height&1)+1,
-    cx = left+a, cy = top+b,
-    x = 0, y = b,
-    ox = 0, oy = b,
-    aa = (a*a)<<1, bb = (b*b)<<1,
-    st = (aa>>1)*(1-(b<<1)) + bb,
-    tt = (bb>>1) - aa*((b<<1)-1),
-    w, h;
-    while (y > 0)
-    {
-        if (st < 0)
-        {
-            st += bb*((x<<1)+0x3);
-            tt += (bb<<1)*(++x);
-        }
-        else if (tt < 0)
-        {
-            st += bb*((x<<1)+0x3) - (aa<<1)*(y-1);
-            tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3);
-            w = x-ox;
-            h = oy-y;
-            if (w&0x2 && h&0x2)
-            {
-                this.mkOvQds(cx, cy, -x+0x2, ox+wod, -oy, oy-1+hod, 1, 1);
-                this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1);
-            }
-            else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h);
-            ox = x;
-            oy = y;
-        }
-        else
-        {
-            tt -= aa*((y<<1)-0x3);
-            st -= (aa<<1)*(--y);
-        }
-    }
-    this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod);
-    this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod);
-}
-
-
-
-
-
-function mkOv2D(left, top, width, height)
-{
-    var s = this.stroke;
-    width += s-1;
-    height += s-1;
-    var a = width>>1, b = height>>1,
-    wod = width&1, hod = (height&1)+1,
-    cx = left+a, cy = top+b,
-    x = 0, y = b,
-    aa = (a*a)<<1, bb = (b*b)<<1,
-    st = (aa>>1)*(1-(b<<1)) + bb,
-    tt = (bb>>1) - aa*((b<<1)-1);
-
-
-    if (s-0x4 < 0 && (!(s-0x2) || width-0x33 > 0 && height-0x33 > 0))
-    {
-        var ox = 0, oy = b,
-        w, h,
-        pxl, pxr, pxt, pxb, pxw;
-        while (y > 0)
-        {
-            if (st < 0)
-            {
-                st += bb*((x<<1)+0x3);
-                tt += (bb<<1)*(++x);
-            }
-            else if (tt < 0)
-            {
-                st += bb*((x<<1)+0x3) - (aa<<1)*(y-1);
-                tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3);
-                w = x-ox;
-                h = oy-y;
-
-                if (w-1)
-                {
-                    pxw = w+1+(s&1);
-                    h = s;
-                }
-                else if (h-1)
-                {
-                    pxw = s;
-                    h += 1+(s&1);
-                }
-                else pxw = h = s;
-                this.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h);
-                ox = x;
-                oy = y;
-            }
-            else
-            {
-                tt -= aa*((y<<1)-0x3);
-                st -= (aa<<1)*(--y);
-            }
-        }
-        this.mkDiv(cx-a, cy-oy, s, (oy<<1)+hod);
-        this.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy<<1)+hod);
-    }
-
-
-    else
-    {
-        var _a = (width-((s-1)<<1))>>1,
-        _b = (height-((s-1)<<1))>>1,
-        _x = 0, _y = _b,
-        _aa = (_a*_a)<<1, _bb = (_b*_b)<<1,
-        _st = (_aa>>1)*(1-(_b<<1)) + _bb,
-        _tt = (_bb>>1) - _aa*((_b<<1)-1),
-
-        pxl = new Array(),
-        pxt = new Array(),
-        _pxb = new Array();
-        pxl[0] = 0;
-        pxt[0] = b;
-        _pxb[0] = _b-1;
-        while (y > 0)
-        {
-            if (st < 0)
-            {
-                st += bb*((x<<1)+0x3);
-                tt += (bb<<1)*(++x);
-                pxl[pxl.length] = x;
-                pxt[pxt.length] = y;
-            }
-            else if (tt < 0)
-            {
-                st += bb*((x<<1)+0x3) - (aa<<1)*(y-1);
-                tt += (bb<<1)*(++x) - aa*(((y--)<<1)-0x3);
-                pxl[pxl.length] = x;
-                pxt[pxt.length] = y;
-            }
-            else
-            {
-                tt -= aa*((y<<1)-0x3);
-                st -= (aa<<1)*(--y);
-            }
-
-            if (_y > 0)
-            {
-                if (_st < 0)
-                {
-                    _st += _bb*((_x<<1)+0x3);
-                    _tt += (_bb<<1)*(++_x);
-                    _pxb[_pxb.length] = _y-1;
-                }
-                else if (_tt < 0)
-                {
-                    _st += _bb*((_x<<1)+0x3) - (_aa<<1)*(_y-1);
-                    _tt += (_bb<<1)*(++_x) - _aa*(((_y--)<<1)-0x3);
-                    _pxb[_pxb.length] = _y-1;
-                }
-                else
-                {
-                    _tt -= _aa*((_y<<1)-0x3);
-                    _st -= (_aa<<1)*(--_y);
-                    _pxb[_pxb.length-1]--;
-                }
-            }
-        }
-
-        var ox = 0, oy = b,
-        _oy = _pxb[0],
-        l = pxl.length,
-        w, h;
-        for (var i = 0; i < l; i++)
-        {
-            if (typeof _pxb[i] != "undefined")
-            {
-                if (_pxb[i] < _oy || pxt[i] < oy)
-                {
-                    x = pxl[i];
-                    this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy);
-                    ox = x;
-                    oy = pxt[i];
-                    _oy = _pxb[i];
-                }
-            }
-            else
-            {
-                x = pxl[i];
-                this.mkDiv(cx-x+1, cy-oy, 1, (oy<<1)+hod);
-                this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
-                ox = x;
-                oy = pxt[i];
-            }
-        }
-        this.mkDiv(cx-a, cy-oy, 1, (oy<<1)+hod);
-        this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
-    }
-}
-
-
-
-
-
-function mkOvDott(left, top, width, height)
-{
-    var a = width>>1, b = height>>1,
-    wod = width&1, hod = height&1,
-    cx = left+a, cy = top+b,
-    x = 0, y = b,
-    aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
-    st = (aa2>>1)*(1-(b<<1)) + bb,
-    tt = (bb>>1) - aa2*((b<<1)-1),
-    drw = true;
-    while (y > 0)
-    {
-        if (st < 0)
-        {
-            st += bb*((x<<1)+0x3);
-            tt += (bb<<1)*(++x);
-        }
-        else if (tt < 0)
-        {
-            st += bb*((x<<1)+0x3) - aa4*(y-1);
-            tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-0x3);
-        }
-        else
-        {
-            tt -= aa2*((y<<1)-0x3);
-            st -= aa4*(--y);
-        }
-        if (drw) this.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1);
-        drw = !drw;
-    }
-}
-
-
-
-
-
-function mkRect(x, y, w, h)
-{
-    var s = this.stroke;
-    this.mkDiv(x, y, w, s);
-    this.mkDiv(x+w, y, s, h);
-    this.mkDiv(x, y+h, w+s, s);
-    this.mkDiv(x, y+s, s, h-s);
-}
-
-
-
-
-
-function mkRectDott(x, y, w, h)
-{
-    this.drawLine(x, y, x+w, y);
-    this.drawLine(x+w, y, x+w, y+h);
-    this.drawLine(x, y+h, x+w, y+h);
-    this.drawLine(x, y, x, y+h);
-}
-
-
-
-
-
-function jsgFont()
-{
-    this.PLAIN = 'font-weight:normal;';
-    this.BOLD = 'font-weight:bold;';
-    this.ITALIC = 'font-style:italic;';
-    this.ITALIC_BOLD = this.ITALIC + this.BOLD;
-    this.BOLD_ITALIC = this.ITALIC_BOLD;
-}
-var Font = new jsgFont();
-
-
-
-
-
-function jsgStroke()
-{
-    this.DOTTED = -1;
-}
-var Stroke = new jsgStroke();
-
-
-
-
-
-function jsGraphics(id, wnd)
-{
-    this.setColor = new Function('arg', 'this.color = arg;');
-
-
-    this.getColor = new Function('return this.color');
-
-    this.setStroke = function(x)
-    {
-        this.stroke = x;
-        if (!(x+1))
-        {
-            this.drawLine = mkLinDott;
-            this.mkOv = mkOvDott;
-            this.drawRect = mkRectDott;
-        }
-        else if (x-1 > 0)
-        {
-            this.drawLine = mkLin2D;
-            this.mkOv = mkOv2D;
-            this.drawRect = mkRect;
-        }
-        else
-        {
-            this.drawLine = mkLin;
-            this.mkOv = mkOv;
-            this.drawRect = mkRect;
-        }
-    };
-
-
-
-    this.setPrintable = function(arg)
-    {
-        this.printable = arg;
-        this.mkDiv = jg_n4? mkLyr : arg? mkDivPrint : mkDiv;
-    };
-
-
-
-    this.setFont = function(fam, sz, sty)
-    {
-        this.ftFam = fam;
-        this.ftSz = sz;
-        this.ftSty = sty || Font.PLAIN;
-    };
-
-
-
-    this.drawPolyline = this.drawPolyLine = function(x, y, s)
-    {
-        var i = x.length-1; while (i >= 0)
-            this.drawLine(x[i], y[i], x[--i], y[i]);
-    };
-
-
-
-    this.fillRect = function(x, y, w, h)
-    {
-        this.mkDiv(x, y, w, h);
-    };
-
-
-    this.fillRectPattern = function(x, y, w, h, url)
-    {
-        this.htm += '<div style="position:absolute;'+
-            'left:' + x + 'px;'+
-            'top:' + y + 'px;'+
-            'width:' + w + 'px;'+
-            'height:' + h + 'px;'+
-            'clip:rect(0,'+w+'px,'+h+'px,0);'+
-            'overflow:hidden;'+
-            //'background-color:' + this.color + ';'+
-            "background-image: url('" + url + "');"+
-            "layer-background-image: url('" + url + "');"+
-            'z-index:100;"><\/div>';
-        //alert(this.htm);
-    }
-
-    this.drawHandle = function(x, y, w, h, cursor)
-    {
-        
-        this.htm += '<div style="position:absolute;'+
-        'left:' + x + 'px;'+
-        'top:' + y + 'px;'+
-        'width:' + w + 'px;'+
-        'height:' + h + 'px;'+
-        'clip:rect(0,'+w+'px,'+h+'px,0);'+
-        'padding: 2px;overflow:hidden;'+
-        "cursor: '" + cursor + "';"+
-        '" class="handleBox" id="' + cursor + '" ><\/div>';
-    }
-
-    this.drawHandleBox = function(x, y, w, h, cursor)
-    {
-        
-        this.htm += '<div style="position:absolute;'+
-        'left:' + x + 'px;'+
-        'top:' + y + 'px;'+
-        'width:' + w + 'px;'+
-        'height:' + h + 'px;'+
-        'clip:rect(0,'+(w+2)+'px,'+(h+2)+'px,0);'+
-        'overflow:hidden; border: solid 1px '+ this.color+';'+
-        "cursor: '" + cursor + "';"+
-        '" class="handleBox" id="' + cursor + '" ><\/div>';
-
-        
-    }
-
-    this.drawPolygon = function(x, y)
-    {
-        this.drawPolyline(x, y);
-        this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]);
-    };
-
-
-
-    this.drawEllipse = this.drawOval = function(x, y, w, h)
-    {
-        this.mkOv(x, y, w, h);
-    };
-
-
-
-    this.fillEllipse = this.fillOval = function(left, top, w, h)
-    {
-        var a = (w -= 1)>>1, b = (h -= 1)>>1,
-        wod = (w&1)+1, hod = (h&1)+1,
-        cx = left+a, cy = top+b,
-        x = 0, y = b,
-        ox = 0, oy = b,
-        aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
-        st = (aa2>>1)*(1-(b<<1)) + bb,
-        tt = (bb>>1) - aa2*((b<<1)-1),
-        pxl, dw, dh;
-        if (w+1) while (y > 0)
-        {
-            if (st < 0)
-            {
-                st += bb*((x<<1)+0x3);
-                tt += (bb<<1)*(++x);
-            }
-            else if (tt < 0)
-            {
-                st += bb*((x<<1)+0x3) - aa4*(y-1);
-                pxl = cx-x;
-                dw = (x<<1)+wod;
-                tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-0x3);
-                dh = oy-y;
-                this.mkDiv(pxl, cy-oy, dw, dh);
-                this.mkDiv(pxl, cy+oy-dh+hod, dw, dh);
-                ox = x;
-                oy = y;
-            }
-            else
-            {
-                tt -= aa2*((y<<1)-0x3);
-                st -= aa4*(--y);
-            }
-        }
-        this.mkDiv(cx-a, cy-oy, w+1, (oy<<1)+hod);
-    };
-
-
-
-    this.drawString = mkLbl;
-
-
-
-    this.clear = function()
-    {
-        this.htm = "";
-        if (this.cnv) this.cnv.innerHTML = this.defhtm;
-        
-    };
-
-
-
-    this.mkOvQds = function(cx, cy, xl, xr, yt, yb, w, h)
-    {
-        this.mkDiv(xr+cx, yt+cy, w, h);
-        this.mkDiv(xr+cx, yb+cy, w, h);
-        this.mkDiv(xl+cx, yb+cy, w, h);
-        this.mkDiv(xl+cx, yt+cy, w, h);
-    };
-
-
-    this.setStroke(1);
-    this.setPrintable(false);
-    this.setFont('verdana,geneva,helvetica,sans-serif', String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN);
-    this.color = '#000000';
-    this.htm = '';
-    this.wnd = wnd || window;
-
-
-    if (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM();
-    if (typeof id != 'string' || !id) this.paint = pntDoc;
-    else
-    {
-        this.cnv = document.all? (this.wnd.document.all[id] || null)
-            : document.getElementById? (this.wnd.document.getElementById(id) || null)
-            : null;
-        this.defhtm = (this.cnv && this.cnv.innerHTML)? this.cnv.innerHTML : '';
-        this.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv;
-    }
-}

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/class_upload.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/class_upload.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/class_upload.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: class_upload.asp
- * 	These are the classes used to handle ASP upload without using third
- * 	part components (OCX/DLL).
- * 
- * File Authors:
- * 		NetRube (netrube at 126.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * These are the classes used to handle ASP upload without using third
+ * part components (OCX/DLL).
 -->
 <%
 '**********************************************
@@ -46,32 +50,32 @@
 	Public	File, Form
 	Private oSourceData
 	Private nMaxSize, nErr, sAllowed, sDenied
-	
+
 	Private Sub Class_Initialize
 		nErr		= 0
 		nMaxSize	= 1048576
-		
+
 		Set File			= Server.CreateObject("Scripting.Dictionary")
 		File.CompareMode	= 1
 		Set Form			= Server.CreateObject("Scripting.Dictionary")
 		Form.CompareMode	= 1
-		
+
 		Set oSourceData		= Server.CreateObject("ADODB.Stream")
 		oSourceData.Type	= 1
 		oSourceData.Mode	= 3
 		oSourceData.Open
 	End Sub
-	
+
 	Private Sub Class_Terminate
 		Form.RemoveAll
 		Set Form = Nothing
 		File.RemoveAll
 		Set File = Nothing
-		
+
 		oSourceData.Close
 		Set oSourceData = Nothing
 	End Sub
-	
+
 	Public Property Get Version
 		Version = "NetRube Upload Class Version 1.0 Build 20041218"
 	End Property
@@ -79,15 +83,15 @@
 	Public Property Get ErrNum
 		ErrNum	= nErr
 	End Property
-	
+
 	Public Property Let MaxSize(nSize)
 		nMaxSize	= nSize
 	End Property
-	
+
 	Public Property Let Allowed(sExt)
 		sAllowed	= sExt
 	End Property
-	
+
 	Public Property Let Denied(sExt)
 		sDenied	= sExt
 	End Property
@@ -99,7 +103,7 @@
 			nErr = 1
 			Exit Sub
 		End If
-		
+
 		Dim nTotalSize
 		nTotalSize	= Request.TotalBytes
 		If nTotalSize < 1 Then
@@ -110,23 +114,23 @@
 			nErr = 3
 			Exit Sub
 		End If
-		
+
 		oSourceData.Write Request.BinaryRead(nTotalSize)
 		oSourceData.Position = 0
-		
+
 		Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary
-		
+
 		oTotalData	= oSourceData.Read
 		bCrLf		= ChrB(13) & ChrB(10)
 		sBoundary	= MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1)
 		nBoundLen	= LenB(sBoundary) + 2
 		nFormStart	= nBoundLen
-		
+
 		Set oFormStream = Server.CreateObject("ADODB.Stream")
-		
+
 		Do While (nFormStart + 2) < nTotalSize
 			nFormEnd	= InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3
-			
+
 			With oFormStream
 				.Type	= 1
 				.Mode	= 3
@@ -139,12 +143,12 @@
 				sFormHeader	= .ReadText
 				.Close
 			End With
-			
+
 			nFormStart	= InStrB(nFormEnd, oTotalData, sBoundary) - 1
 			nPosStart	= InStr(22, sFormHeader, " name=", 1) + 7
 			nPosEnd		= InStr(nPosStart, sFormHeader, """")
 			sFormName	= Mid(sFormHeader, nPosStart, nPosEnd - nPosStart)
-			
+
 			If InStr(45, sFormHeader, " filename=", 1) > 0 Then
 				Set File(sFormName)			= New NetRube_FileInfo
 				File(sFormName).FormName	= sFormName
@@ -172,10 +176,10 @@
 					.Close
 				End With
 			End If
-			
+
 			nFormStart	= nFormStart + nBoundLen
 		Loop
-		
+
 		oTotalData = ""
 		Set oFormStream = Nothing
 	End Sub
@@ -185,12 +189,12 @@
 			nErr = 2
 			Exit Sub
 		End If
-		
+
 		If Not IsAllowed(File(sItem).Ext) Then
 			nErr = 4
 			Exit Sub
 		End If
-		
+
 		Dim oFileStream
 		Set oFileStream = Server.CreateObject("ADODB.Stream")
 		With oFileStream
@@ -205,13 +209,13 @@
 		End With
 		Set oFileStream = Nothing
 	End Sub
-	
+
 	Private Function IsAllowed(sExt)
 		Dim oRE
 		Set oRE	= New RegExp
 		oRE.IgnoreCase	= True
 		oRE.Global		= True
-		
+
 		If sDenied = "" Then
 			oRE.Pattern	= sAllowed
 			IsAllowed	= (sAllowed = "") Or oRE.Test(sExt)
@@ -219,7 +223,7 @@
 			oRE.Pattern	= sDenied
 			IsAllowed	= Not oRE.Test(sExt)
 		End If
-		
+
 		Set oRE	= Nothing
 	End Function
 End Class

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/config.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/config.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/config.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,30 +1,39 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: config.asp
- * 	Configuration file for the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the File Manager Connector for ASP.
 -->
 <%
 
-' SECURITY: You must explicitelly enable this "uploader" (set it to "True"). 
+' SECURITY: You must explicitelly enable this "uploader" (set it to "True").
 Dim ConfigIsEnabled
 ConfigIsEnabled = False
 
+' Set if the file type must be considere in the target path.
+' Ex: /userfiles/image/ or /userfiles/file/
+Dim ConfigUseFileType
+ConfigUseFileType = False
+
 ' Path to user files relative to the document root.
 Dim ConfigUserFilesPath
-ConfigUserFilesPath = "/UserFiles/"
+ConfigUserFilesPath = "/userfiles/"
 
 ' Allowed and Denied extensions configurations.
 Dim ConfigAllowedExtensions, ConfigDeniedExtensions
@@ -32,7 +41,7 @@
 Set ConfigDeniedExtensions	= CreateObject( "Scripting.Dictionary" )
 
 ConfigAllowedExtensions.Add	"File", ""
-ConfigDeniedExtensions.Add	"File", "php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi"
+ConfigDeniedExtensions.Add	"File", "html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis"
 
 ConfigAllowedExtensions.Add	"Image", "jpg|gif|jpeg|png|bmp"
 ConfigDeniedExtensions.Add	"Image", ""

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/io.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/io.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/io.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: io.asp
- * 	This file include IO specific functions used by the ASP Uploader.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file include IO specific functions used by the ASP Uploader.
 -->
 <%
 

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/upload.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/upload.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/asp/upload.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,29 @@
 <%@ CodePage=65001 Language="VBScript"%>
 <%
 Option Explicit
+Response.Buffer = True
 %>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: upload.asp
- * 	This is the "File Uploader" for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Uploader" for ASP.
 -->
 <!--#include file="config.asp"-->
 <!--#include file="io.asp"-->
@@ -72,6 +77,10 @@
 		sServerDir = sServerDir & "\"
 	End If
 
+	If ( ConfigUseFileType = True ) Then
+		sServerDir = sServerDir & resourceType & "\"
+	End If
+
 	Dim oFSO
 	Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
 
@@ -97,11 +106,15 @@
 			Exit Do
 		End If
 	Loop
-	Response.Write( sFilePath )
-	sFileUrl = ConfigUserFilesPath & sFileName
 
+	If ( ConfigUseFileType = True ) Then
+		sFileUrl = ConfigUserFilesPath & resourceType & "/" & sFileName
+	Else
+		sFileUrl = ConfigUserFilesPath & sFileName
+	End If
+
 	SendResults sErrorNumber, sFileUrl, sFileName, ""
-	
+
 End If
 
 Set oUploader = Nothing

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/aspx/upload.aspx
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/aspx/upload.aspx	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/aspx/upload.aspx	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,26 +1,30 @@
 <%@ Page language="c#" Inherits="FredCK.FCKeditorV2.Uploader" AutoEventWireup="false" %>
 <%--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: upload.aspx
- * 	This is the Uploader for ASP.NET.
- * 	
- * 	The code of this page if included in the FCKeditor.Net package, 
- * 	in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must 
- * 	include that DLL in your "bin" directory.
- * 	
- * 	To download the FCKeditor.Net package, go to our official web site:
- * 	http://www.fckeditor.net
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Uploader for ASP.NET.
+ *
+ * The code of this page if included in the FCKeditor.Net package,
+ * in the FredCK.FCKeditorV2.dll assemblyfile. So to use it you must
+ * include that DLL in your "bin" directory.
+ *
+ * To download the FCKeditor.Net package, go to our official web site:
+ * http://www.fckeditor.net
 --%>
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/config.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/config.cfm	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/config.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,98 @@
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the ColdFusion File Uploader.
+--->
+
+<cfscript>
+	config = StructNew();
+
+	// SECURITY: You must explicitelly enable this "uploader".
+	config.enabled = false;
+
+	// Path to uploaded files relative to the document root.
+	config.userFilesPath = "/userfiles/";
+
+	config.serverPath = ""; // use this to force the server path if FCKeditor is not running directly off the root of the application or the FCKeditor directory in the URL is a virtual directory or a symbolic link / junction
+
+	config.allowedExtensions = StructNew();
+	config.deniedExtensions = StructNew();
+
+	config.allowedExtensions["File"] = "";
+	config.deniedExtensions["File"] = "html,htm,php,php2,php3,php4,php5,phtml,pwml,inc,asp,aspx,ascx,jsp,cfm,cfc,pl,bat,exe,com,dll,vbs,js,reg,cgi,htaccess,asis";
+
+	config.allowedExtensions["Image"] = "png,gif,jpg,jpeg,bmp";
+	config.deniedExtensions["Image"] = "";
+
+	config.allowedExtensions["Flash"] = "swf,fla";
+	config.deniedExtensions["Flash"] = "";
+</cfscript>
+
+<!--- code to maintain backwards compatibility with previous version of cfm connector --->
+<cfif isDefined("application.userFilesPath")>
+
+	<cflock scope="application" type="readonly" timeout="5">
+		<cfset config.userFilesPath = application.userFilesPath>
+	</cflock>
+
+<cfelseif isDefined("server.userFilesPath")>
+
+	<cflock scope="server" type="readonly" timeout="5">
+		<cfset config.userFilesPath = server.userFilesPath>
+	</cflock>
+
+</cfif>
+
+<!--- look for config struct in request, application and server scopes --->
+<cfif isDefined("request.FCKeditor") and isStruct(request.FCKeditor)>
+
+	<cfset variables.FCKeditor = request.FCKeditor>
+
+<cfelseif isDefined("application.FCKeditor") and isStruct(application.FCKeditor)>
+
+	<cflock scope="application" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(application.FCKeditor)>
+	</cflock>
+
+<cfelseif isDefined("server.FCKeditor") and isStruct(server.FCKeditor)>
+
+	<cflock scope="server" type="readonly" timeout="5">
+	<cfset variables.FCKeditor = duplicate(server.FCKeditor)>
+	</cflock>
+
+</cfif>
+
+<cfif isDefined("FCKeditor")>
+
+	<!--- copy key values from external to local config (i.e. override default config as required) --->
+	<cfscript>
+		function structCopyKeys(stFrom, stTo) {
+			for ( key in stFrom ) {
+				if ( isStruct(stFrom[key]) ) {
+					structCopyKeys(stFrom[key],stTo[key]);
+				} else {
+					stTo[key] = stFrom[key];
+				}
+			}
+		}
+		structCopyKeys(FCKeditor, config);
+	</cfscript>
+
+</cfif>
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/upload.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/upload.cfm	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/cfm/upload.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,168 @@
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Uploader" for ColdFusion.
+ * Based on connector.cfm by Mark Woods (mark at thickpaddy.com)
+--->
+
+<cfinclude template="config.cfm">
+
+<cfparam name="url.type" default="File">
+
+<cffunction name="SendResults">
+	<cfargument name="errorNumber" type="numeric" required="yes">
+	<cfargument name="fileUrl" type="string" required="no" default="">
+	<cfargument name="fileName" type="string" required="no" default="">
+	<cfargument name="customMsg" type="string" required="no" default="">
+
+	<cfoutput>
+		<script type="text/javascript">
+			window.parent.OnUploadCompleted(#errorNumber#, "#JSStringFormat(fileUrl)#", "#JSStringFormat(fileName)#", "#JSStringFormat(customMsg)#");
+		</script>
+	</cfoutput>
+
+	<cfabort><!--- Result sent, stop processing this page --->
+</cffunction>
+
+<cfif NOT config.enabled>
+	<cfset SendResults(1, '', '', 'This file uploader is disabled. Please check the "editor/filemanager/upload/cfm/config.cfm" file')>
+<cfelse>
+	<cfscript>
+
+		userFilesPath = config.userFilesPath;
+		lAllowedExtensions = config.allowedExtensions[url.type];
+		lDeniedExtensions = config.deniedExtensions[url.type];
+		customMsg = ''; // Can be overwritten. The last value will be sent with the result
+
+		// make sure the user files path is correctly formatted
+		userFilesPath = replace(userFilesPath, "\", "/", "ALL");
+		userFilesPath = replace(userFilesPath, '//', '/', 'ALL');
+		if ( right(userFilesPath,1) NEQ "/" ) {
+			userFilesPath = userFilesPath & "/";
+		}
+		if ( left(userFilesPath,1) NEQ "/" ) {
+			userFilesPath = "/" & userFilesPath;
+		}
+
+		if (find("/",getBaseTemplatePath())) {
+			fs = "/";
+		} else {
+			fs = "\";
+		}
+
+		// Get the base physical path to the web root for this application. The code to determine the path automatically assumes that
+		// the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a
+		// virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary.
+		if ( len(config.serverPath) ) {
+			serverPath = config.serverPath;
+		} else {
+			serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"");
+		}
+
+		// map the user files path to a physical directory
+		userFilesServerPath = serverPath & replace(userFilesPath,"/",fs,"all");
+	</cfscript>
+
+	<cfset fileName = "">
+	<cfset fileExt = "">
+
+	<cftry>
+
+		<!--- we need to know the physical path to the current folder for all commands --->
+		<cfset currentFolderPath = userFilesServerPath & url.type & fs>
+
+		<!--- TODO: upload to a temp directory and move file if extension is allowed --->
+
+		<!--- first upload the file with an unique filename --->
+		<cffile action="upload"
+			fileField="NewFile"
+			destination="#currentFolderPath#"
+			nameConflict="makeunique"
+			mode="644"
+			attributes="normal">
+
+		<cfif (Len(lAllowedExtensions) AND NOT listFindNoCase(lAllowedExtensions, cffile.ServerFileExt))
+			OR (Len(lDeniedExtensions) AND listFindNoCase(lDeniedExtensions, cffile.ServerFileExt))>
+
+			<!--- Extension of the uploaded file is not allowed --->
+			<cfset errorNumber = "202">
+			<cffile action="delete" file="#cffile.ServerDirectory##fs##cffile.ServerFile#">
+
+		<cfelse>
+
+			<cfscript>
+				errorNumber = 0;
+				fileName = cffile.ClientFileName;
+				fileExt = cffile.ServerFileExt;
+
+				// munge filename for html download. Only a-z, 0-9, _, - and . are allowed
+				if( reFind("[^A-Za-z0-9_\-\.]", fileName) ) {
+					fileName = reReplace(fileName, "[^A-Za-z0-9\-\.]", "_", "ALL");
+					fileName = reReplace(fileName, "_{2,}", "_", "ALL");
+					fileName = reReplace(fileName, "([^_]+)_+$", "\1", "ALL");
+					fileName = reReplace(fileName, "$_([^_]+)$", "\1", "ALL");
+				}
+
+				// When the original filename already exists, add numbers (0), (1), (2), ... at the end of the filename.
+				if( compare( cffile.ServerFileName, fileName ) ) {
+					counter = 0;
+					tmpFileName = fileName;
+					while( fileExists("#currentFolderPath##fileName#.#fileExt#") ) {
+						counter = counter + 1;
+						fileName = tmpFileName & '(#counter#)';
+					}
+				}
+			</cfscript>
+
+			<!--- Rename the uploaded file, if neccessary --->
+			<cfif compare(cffile.ServerFileName,fileName)>
+
+				<cfset errorNumber = "201">
+				<cffile
+					action="rename"
+					source="#currentFolderPath##cffile.ServerFileName#.#cffile.ServerFileExt#"
+					destination="#currentFolderPath##fileName#.#fileExt#"
+					mode="644"
+					attributes="normal">
+
+			</cfif>
+
+		</cfif>
+
+		<cfcatch type="Any">
+
+			<cfset errorNumber = "1">
+			<cfset customMsg = "An error occured: " & cfcatch.message & " - " & cfcatch.detail>
+
+		</cfcatch>
+
+	</cftry>
+
+	<cfif errorNumber EQ 0>
+		<!--- file was uploaded succesfully --->
+		<cfset SendResults(errorNumber, '#userFilesPath##url.type#/#fileName#.#fileExt#')>
+	<cfelseif errorNumber EQ 201>
+		<!--- file was changed (201), submit the new filename --->
+		<cfset SendResults(errorNumber, '#userFilesPath##url.type#/#fileName#.#fileExt#', replace( fileName & "." & fileExt, "'", "\'", "ALL"), customMsg)>
+	<cfelse>
+		<!--- An error occured(202). Submit only the error code and a message (if available). --->
+		<cfset SendResults(errorNumber, '', '', customMsg)>
+	</cfif>
+</cfif>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/config.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/config.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/config.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,42 +1,54 @@
 [//lasso
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: config.php
- * 	Configuration file for the Lasso File Uploader.
- * 
- * File Authors:
- * 		Jason Huck (jason.huck at corefive.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the Lasso File Uploader.
  */
 
-    /*.....................................................................     
+    /*.....................................................................
     The connector uses the file tags, which require authentication. Enter a
     valid username and password from Lasso admin for a group with file tags
-    permissions for uploads and the path you define in UserFilesPath below.                                                                        
-    */ 
-    
+    permissions for uploads and the path you define in UserFilesPath below.
+    */
+
 	var('connection') = array(
 		-username='xxxxxxxx',
 		-password='xxxxxxxx'
 	);
 
 
-    /*.....................................................................     
+    /*.....................................................................
     Set the base path for files that users can upload and browse (relative
     to server root).
-    
-    Set which file extensions are allowed and/or denied for each file type.                                                                           
-    */                                                                          
+
+    Set which file extensions are allowed and/or denied for each file type.
+    */
 	var('config') = map(
 		'Enabled' = false,
-		'UserFilesPath' = '/UserFiles/',
+		'UserFilesPath' = '/userfiles/',
+		'Subdirectories' = map(
+			'File' = 'File/',
+			'Image' = 'Image/',
+			'Flash' = 'Flash/',
+			'Media' = 'Media/'
+		),
 		'AllowedExtensions' = map(
 			'File' = array(),
 			'Image' = array('jpg','gif','jpeg','png'),
@@ -44,7 +56,7 @@
 			'Media' = array('swf','fla','jpg','gif','jpeg','png','avi','mpg','mpeg')
 		),
 		'DeniedExtensions' = map(
-			'File' = array('php','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg','inc','lasso','cgi','lasso','lassoapp'),
+			'File' = array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','lasso','lassoapp','htaccess','asis'),
 			'Image' = array(),
 			'Flash' = array(),
 			'Media' = array()

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/upload.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/upload.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/lasso/upload.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,31 +1,36 @@
 [//lasso
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: upload.php
- * 	This is the "File Uploader" for Lasso.
- * 
- * File Authors:
- * 		Jason Huck (jason.huck at corefive.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Uploader" for Lasso.
  */
 
-
-    /*.....................................................................     
-    Include global configuration. See config.lasso for details.                                                                           
-    */                                                                          
+    /*.....................................................................
+    Include global configuration. See config.lasso for details.
+    */
 	include('config.lasso');
 
 
-    /*.....................................................................     
-    Convert query string parameters to variables and initialize output.                                                                           
-    */                                                                          
+    /*.....................................................................
+    Convert query string parameters to variables and initialize output.
+    */
 	var(
 		'Type'			=	action_param('Type'),
 		'CurrentFolder'	=	action_param('CurrentFolder'),
@@ -41,21 +46,21 @@
 	$Type == '' ? $Type = 'File';
 
 
-    /*.....................................................................     
-    Calculate the path to the current folder.                                                                           
-    */                                                                          
+    /*.....................................................................
+    Calculate the path to the current folder.
+    */
 	$ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
-		
-	var('currentFolderURL' = $ServerPath 
-		+ action_param('Type') 
+
+	var('currentFolderURL' = $ServerPath
+		+ $config->find('Subdirectories')->find(action_param('Type'))
 		+ action_param('CurrentFolder')
 	);
 
 
-	/*.....................................................................    
-	Custom tag sets the HTML response.                                                               
+	/*.....................................................................
+	Custom tag sets the HTML response.
 	*/
-	
+
 	define_tag(
 		'sendresults',
 		-namespace='fck_',
@@ -72,9 +77,9 @@
 	);
 		$__html_reply__ = '\
 <script type="text/javascript">
-	window.parent.OnUploadCompleted(' + #errorNumber + ',"' 
-		+ string_replace(#fileUrl, -find='"', -replace='\\"') + '","' 
-		+ string_replace(#fileName, -find='"', -replace='\\"') + '","' 
+	window.parent.OnUploadCompleted(' + #errorNumber + ',"'
+		+ string_replace(#fileUrl, -find='"', -replace='\\"') + '","'
+		+ string_replace(#fileName, -find='"', -replace='\\"') + '","'
 		+ string_replace(#customMsg, -find='"', -replace='\\"') + '");
 </script>
 		';
@@ -82,53 +87,53 @@
 
 
 	if($config->find('Enabled'));
-		/*.................................................................     
-		Process an uploaded file.                                                                        
-		*/                                                                          
+		/*.................................................................
+		Process an uploaded file.
+		*/
 		inline($connection);
-			/*.............................................................     
-			Was a file actually uploaded?                                                              
-			*/                                                              
+			/*.............................................................
+			Was a file actually uploaded?
+			*/
 			file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202;
-							
+
 			if($errorNumber == 0);
-				/*.........................................................     
+				/*.........................................................
 				Split the file's extension from the filename in order
 				to follow the API's naming convention for duplicate
-				files. (Test.txt, Test(1).txt, Test(2).txt, etc.)                                                          
-				*/                                                          
-				$NewFileName = $NewFile->find('OrigName');													
+				files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
+				*/
+				$NewFileName = $NewFile->find('OrigName');
 				$OrigFilePath = $currentFolderURL + $NewFileName;
 				$NewFilePath = $OrigFilePath;
-				local('fileExtension') = '.' + $NewFile->find('OrigExtension');					
+				local('fileExtension') = '.' + $NewFile->find('OrigExtension');
 				local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
-	
-	
-				/*.........................................................     
-				Make sure the file extension is allowed.                                                          
-				*/ 
-								
+
+
+				/*.........................................................
+				Make sure the file extension is allowed.
+				*/
+
 				if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
 					$errorNumber = 202;
 				else;
-					/*.....................................................     
-					Rename the target path until it is unique.                                                    
-					*/                                                      										
+					/*.....................................................
+					Rename the target path until it is unique.
+					*/
 					while(file_exists($NewFilePath));
 						$NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension;
 						$NewFilePath = $currentFolderURL + $NewFileName;
 					/while;
-					
-					
-					/*.....................................................     
-					Copy the uploaded file to its final location.                                                     
-					*/                                                      
+
+
+					/*.....................................................
+					Copy the uploaded file to its final location.
+					*/
 					file_copy($NewFile->find('path'), $NewFilePath);
-	
-	
-					/*.....................................................    
-					Set the error code for the response.                                          
-					*/                                                      						
+
+
+					/*.....................................................
+					Set the error code for the response.
+					*/
 					select(file_currenterror( -errorcode));
 						case(0);
 							$OrigFilePath != $NewFilePath ? $errorNumber = 201;
@@ -142,11 +147,11 @@
 		$errorNumber = 1;
 		$customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.';
 	/if;
-	
+
 	fck_sendresults(
 		-errorNumber=$errorNumber,
 		-fileUrl=$NewFilePath,
 		-fileName=$NewFileName,
 		-customMsg=$customMsg
 	);
-]	
+]

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/config.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/config.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/config.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,33 +1,51 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: config.php
- * 	Configuration file for the PHP File Uploader.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file for the PHP File Uploader.
  */
 
 global $Config ;
 
-// SECURITY: You must explicitelly enable this "uploader". 
+// SECURITY: You must explicitelly enable this "uploader".
 $Config['Enabled'] = false ;
 
+// Set if the file type must be considere in the target path.
+// Ex: /userfiles/image/ or /userfiles/file/
+$Config['UseFileType'] = false ;
+
 // Path to uploaded files relative to the document root.
-$Config['UserFilesPath'] = '/UserFiles/' ;
+$Config['UserFilesPath'] = '/userfiles/' ;
 
+// Fill the following value it you prefer to specify the absolute path for the
+// user files directory. Usefull if you are using a virtual directory, symbolic
+// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
+// Attention: The above 'UserFilesPath' must point to the same directory.
+$Config['UserFilesAbsolutePath'] = '' ;
+
+// Due to security issues with Apache modules, it is reccomended to leave the
+// following setting enabled.
+$Config['ForceSingleExtension'] = true ;
+
 $Config['AllowedExtensions']['File']	= array() ;
-$Config['DeniedExtensions']['File']		= array('php','php3','php5','phtml','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg','cgi') ;
+$Config['DeniedExtensions']['File']		= array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js','reg','cgi','htaccess','asis') ;
 
 $Config['AllowedExtensions']['Image']	= array('jpg','gif','jpeg','png') ;
 $Config['DeniedExtensions']['Image']	= array() ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/upload.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/upload.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/upload.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: upload.php
- * 	This is the "File Uploader" for PHP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Uploader" for PHP.
  */
 
 require('config.php') ;
@@ -41,15 +45,26 @@
 // Get the posted file.
 $oFile = $_FILES['NewFile'] ;
 
-// Get the uploaded file name and extension.
+// Get the uploaded file name extension.
 $sFileName = $oFile['name'] ;
+
+// Replace dots in the name with underscores (only one dot can be there... security issue).
+if ( $Config['ForceSingleExtension'] )
+	$sFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sFileName ) ;
+
 $sOriginalFileName = $sFileName ;
+
+// Get the extension.
 $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
 $sExtension = strtolower( $sExtension ) ;
 
 // The the file type (from the QueryString, by default 'File').
 $sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
 
+// Check if it is an allowed type.
+if ( !in_array( $sType, array('File','Image','Flash','Media') ) )
+    SendResults( 1, '', '', 'Invalid type specified' ) ;
+
 // Get the allowed and denied extensions arrays.
 $arAllowed	= $Config['AllowedExtensions'][$sType] ;
 $arDenied	= $Config['DeniedExtensions'][$sType] ;
@@ -64,9 +79,15 @@
 // Initializes the counter used to rename the file, if another one with the same name already exists.
 $iCounter = 0 ;
 
-// The the target directory.
-$sServerDir = GetRootPath() . $Config["UserFilesPath"] ;
+// Get the target directory.
+if ( isset( $Config['UserFilesAbsolutePath'] ) && strlen( $Config['UserFilesAbsolutePath'] ) > 0 )
+	$sServerDir = $Config['UserFilesAbsolutePath'] ;
+else
+	$sServerDir = GetRootPath() . $Config["UserFilesPath"] ;
 
+if ( $Config['UseFileType'] )
+	$sServerDir .= $sType . '/' ;
+
 while ( true )
 {
 	// Compose the file path.
@@ -89,9 +110,12 @@
 			chmod( $sFilePath, 0777 ) ;
 			umask( $oldumask ) ;
 		}
-		
-		$sFileUrl = $Config["UserFilesPath"] . $sFileName ;
 
+		if ( $Config['UseFileType'] )
+			$sFileUrl = $Config["UserFilesPath"] . $sType . '/' . $sFileName ;
+		else
+			$sFileUrl = $Config["UserFilesPath"] . $sFileName ;
+
 		break ;
 	}
 }

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/util.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/util.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/php/util.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: util.php
- * 	This is the File Manager Connector for ASP.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 PHP.
  */
 
 function RemoveExtension( $fileName )

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/test.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/test.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/filemanager/upload/test.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: test.html
- * 	Test page for the "File Uploaders".
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Test page for the "File Uploaders".
 -->
 <html>
 	<head>
@@ -24,19 +28,19 @@
 function SendFile()
 {
 	var sUploaderUrl = cmbUploaderUrl.value ;
-	
+
 	if ( sUploaderUrl.length == 0 )
 		sUploaderUrl = txtCustomUrl.value ;
-	
+
 	if ( sUploaderUrl.length == 0 )
 	{
 		alert( 'Please provide your custom URL or select a default one' ) ;
 		return ;
 	}
-	
+
 	eURL.innerHTML = sUploaderUrl ;
 	txtUrl.value = '' ;
-	
+
 	frmUpload.action = sUploaderUrl ;
 	frmUpload.submit() ;
 }
@@ -82,9 +86,11 @@
 						<tr>
 							<td nowrap>
 								Select the "File Uploader" to use:<br>
-								<select id="cmbUploaderUrl" name="Select1">
+								<select id="cmbUploaderUrl">
 									<option selected value="asp/upload.asp">ASP</option>
 									<option value="aspx/upload.aspx">ASP.Net</option>
+									<option value="cfm/upload.cfm">ColdFusion</option>
+									<option value="lasso/upload.lasso">Lasso</option>
 									<option value="php/upload.php">PHP</option>
 									<option value="">(Custom)</option>
 								</select>
@@ -119,7 +125,7 @@
 			</tr>
 			<tr>
 				<td height="100%">
-					<iframe name="UploadWindow" width="100%" height="100%" src="../../fckblank.html"></iframe>
+					<iframe name="UploadWindow" width="100%" height="100%" src="javascript:void(0)"></iframe>
 				</td>
 			</tr>
 		</table>

Added: zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_ltr.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_ltr.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_rtl.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/images/arrow_rtl.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/aiua.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/ak.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/alien.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/alien2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/angry.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/angry1.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/apophys.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/assjani.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/asthanos.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bazuzeus.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/beaute.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bigsmile.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/blush.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/boid.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bonk.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/bored.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/borg.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/capo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/confused.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/cool.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/crazy.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/cwm14.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/demis_roussos.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/devil.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/devil2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/double0smile.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/eek3.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/eltaf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/gele.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/halm.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/happy.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon12.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon23.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon26.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_angel.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_bandit.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_bravo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/icon_clown.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/jesors.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/jesors1.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/lol3.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/love.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/mad.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/megaphone.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/mmm.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/music.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/notify.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/nuts.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/obanon.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/ouaip.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/pleure.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/plugin.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/question.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/question2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rasta2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rastapop.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/rosebud.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sad.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sad2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/shocked.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sick.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sick2.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/slaap.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sleep.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/smile.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/smiley_peur.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sors.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/sovxx.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/spamafote.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tap67.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/thumbdown.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/thumbup.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tigi.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/toad666.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tongue.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/tuffgong.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/urgeman.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/vanadium.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wink.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/worship.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wouaf.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/wow.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/xp1700.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/yltype.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/yopyopyop.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/youpi.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/images/smiley/fun/zoor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/js/fck_startup.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fck_startup.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fck_startup.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * This file has been compacted for best loading performance.
- */
-var NS;if (!(NS=window.parent.__FCKeditorNS)) NS=window.parent.__FCKeditorNS=new Object();
-Array.prototype.addItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.indexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.startsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.endsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,'');};String.prototype.ltrim=function(){return this.replace(/^\s*/g,'');};String.prototype.rtrim=function(){return this.replace(/\s*$/g,'');};String.prototype.replaceNewLineChars=function(A){return this.replace(/\n/g,A);}
-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=-1000;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 FCKBrowserInfo;if (!(FCKBrowserInfo=NS.FCKBrowserInfo)){FCKBrowserInfo=NS.FCKBrowserInfo=new Object();var sAgent=navigator.userAgent.toLowerCase();FCKBrowserInfo.IsIE=(sAgent.indexOf("msie")!=-1);FCKBrowserInfo.IsGecko=!FCKBrowserInfo.IsIE;FCKBrowserInfo.IsSafari=(sAgent.indexOf("safari")!=-1);FCKBrowserInfo.IsNetscape=(sAgent.indexOf("netscape")!=-1);};
-var FCKScriptLoader=new Object();FCKScriptLoader.IsLoading=false;FCKScriptLoader.Queue=new Array();FCKScriptLoader.AddScript=function(A){FCKScriptLoader.Queue[FCKScriptLoader.Queue.length]=A;if (!this.IsLoading) this.CheckQueue();};FCKScriptLoader.CheckQueue=function(){if (this.Queue.length>0){this.IsLoading=true;var A=this.Queue[0];var B=new Array();for (i=1;i<this.Queue.length;i++) B[i-1]=this.Queue[i];this.Queue=B;this.LoadFile(A);}else{this.IsLoading=false;if (this.OnEmpty) this.OnEmpty();};};if (FCKBrowserInfo.IsSafari){FCKScriptLoader.LoadFile=function(A){if (A.lastIndexOf('.css')>0){this.CheckQueue();return;};var B=new XMLHttpRequest();B.open("GET",A,false);B.send(null);if (B.status==200){try{eval(B.responseText);}catch (e){alert('Error parsing '+A+': '+e.message);};}else alert('Error loading '+A);this.CheckQueue();};}else{FCKScriptLoader.LoadFile=function(A){var e;if (A.lastIndexOf('.css')>0){e=document.createElement('LINK');e.rel='stylesheet';e.type='text/css';}else{e=document.createElement("script");e.type="text/javascript";};document.getElementsByTagName("head")[0].appendChild(e);if (e.tagName=='LINK'){if (FCKBrowserInfo.IsIE) e.onload=FCKScriptLoader_OnLoad;else FCKScriptLoader.CheckQueue();e.href=A;}else{e.onload=e.onreadystatechange=FCKScriptLoader_OnLoad;e.src=A;};};function FCKScriptLoader_OnLoad(){if (this.tagName=='LINK'||!this.readyState||this.readyState=='loaded') FCKScriptLoader.CheckQueue();};}
-var FCKURLParams=new Object();var aParams=document.location.search.substr(1).split('&');for (var i=0;i<aParams.length;i++){var aParam=aParams[i].split('=');var sParamName=aParam[0];var sParamValue=aParam[1];FCKURLParams[sParamName]=sParamValue;}
-var FCK=new Object();FCK.Name=FCKURLParams['InstanceName'];FCK.Status=FCK_STATUS_NOTLOADED;FCK.EditMode=FCK_EDITMODE_WYSIWYG;var aElements=window.parent.document.getElementsByName(FCK.Name);aElements[aElements.length]=window.parent.document.getElementById(FCK.Name);var i=0;while ((FCK.LinkedField=aElements[i++])){if (FCK.LinkedField.tagName=='INPUT'||FCK.LinkedField.tagName=='TEXTAREA') break;};var FCKTempBin=new Object();FCKTempBin.Elements=new Array();FCKTempBin.AddElement=function(A){var B=FCKTempBin.Elements.length;FCKTempBin.Elements[B]=A;return B;};FCKTempBin.RemoveElement=function(A){var e=FCKTempBin.Elements[A];FCKTempBin.Elements[A]=null;return e;};FCKTempBin.Reset=function(){var i=0;while (i<FCKTempBin.Elements.length) FCKTempBin.Elements[i++]==null;FCKTempBin.Elements.length=0;}
-var FCKConfig=FCK.Config=new Object();if (document.location.protocol=='file:'){FCKConfig.BasePath=document.location.pathname.substr(1);FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);}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=new Object();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=unescape(C[0]);var E=unescape(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 (!isNaN(E)) this.PageConfig[D]=parseInt(E);else this.PageConfig[D]=E;};};FCKConfig.LoadPageConfig=function(){for (var A in this.PageConfig) FCKConfig[A]=this.PageConfig[A];};FCKConfig.ToolbarSets=new Object();FCKConfig.Plugins=new Object();FCKConfig.Plugins.Items=new Array();FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.addItem([A,B,C]);};FCKConfig.ProtectedSource=new Object();FCKConfig.ProtectedSource.RegexEntries=new Array();FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.addItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);};FCKConfig.ProtectedSource.Add(/<!--[\s\S]*?-->/g);
-var FCKeditorAPI;function FCKeditorAPI_GetInstance(instanceName){return this.__Instances[instanceName];};if (!window.parent.FCKeditorAPI){FCKeditorAPI=window.parent.FCKeditorAPI=new Object();FCKeditorAPI.__Instances=new Object();FCKeditorAPI.Version='2.1.1';FCKeditorAPI.GetInstance=FCKeditorAPI_GetInstance;}else FCKeditorAPI=window.parent.FCKeditorAPI;FCKeditorAPI.__Instances[FCK.Name]=FCK;
-function Window_OnContextMenu(e){if (e) e.preventDefault();else{if (event.srcElement==document.getElementById('eSourceField')) return true;};return false;};window.document.oncontextmenu=Window_OnContextMenu;if (FCKBrowserInfo.IsGecko){function Window_OnResize(){var oFrame=document.getElementById('eEditorArea');oFrame.height=0;var oCell=document.getElementById(FCK.EditMode==FCK_EDITMODE_WYSIWYG?'eWysiwygCell':'eSource');var iHeight=oCell.offsetHeight;oFrame.height=iHeight-2;};window.onresize=Window_OnResize;};if (FCKBrowserInfo.IsIE){var aCleanupDocs=new Array();aCleanupDocs[0]=document;function Window_OnBeforeUnload(){var d,e;var j=0;while ((d=aCleanupDocs[j++])){var i=0;while ((e=d.getElementsByTagName("DIV").item(i++))){if (e.FCKToolbarButton) e.FCKToolbarButton=null;if (e.FCKSpecialCombo) e.FCKSpecialCombo=null;if (e.Command) e.Command=null;};i=0;while ((e=d.getElementsByTagName("TR").item(i++))){if (e.FCKContextMenuItem) e.FCKContextMenuItem=null;};aCleanupDocs[j]=null;};if (typeof(FCKTempBin)!='undefined') FCKTempBin.Reset();};window.attachEvent("onunload",Window_OnBeforeUnload);};function Window_OnLoad(){if (FCKBrowserInfo.IsNetscape) document.getElementById('eWysiwygCell').style.paddingRight='2px';LoadConfigFile();};window.onload=Window_OnLoad;function LoadConfigFile(){FCKScriptLoader.OnEmpty=ProcessHiddenField;FCKScriptLoader.AddScript('../fckconfig.js');};function ProcessHiddenField(){FCKConfig.ProcessHiddenField();LoadCustomConfigFile();};function LoadCustomConfigFile(){if (FCKConfig.CustomConfigurationsPath.length>0){FCKScriptLoader.OnEmpty=LoadPageConfig;FCKScriptLoader.AddScript(FCKConfig.CustomConfigurationsPath);}else{LoadPageConfig();};};function LoadPageConfig(){FCKConfig.LoadPageConfig();LoadStyles();};function LoadStyles(){FCKScriptLoader.OnEmpty=LoadScripts;FCKScriptLoader.AddScript(FCKConfig.SkinPath+'fck_editor.css');FCKScriptLoader.AddScript(FCKConfig.SkinPath+'fck_contextmenu.css');};function LoadScripts(){FCKScriptLoader.OnEmpty=null;if (FCKBrowserInfo.IsIE) FCKScriptLoader.AddScript('js/fckeditorcode_ie_1.js');else FCKScriptLoader.AddScript('js/fckeditorcode_gecko_1.js');};function LoadLanguageFile(){FCKScriptLoader.OnEmpty=LoadEditor;FCKScriptLoader.AddScript('lang/'+FCKLanguageManager.ActiveLanguage.Code+'.js');};function LoadEditor(){FCKScriptLoader.OnEmpty=null;if (FCKLang) window.document.dir=FCKLang.Dir;FCK.StartEditor();}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,98 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ * 
+ * == BEGIN LICENSE ==
+ * 
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ * 
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ * 
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo);
+var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;FCKListsLib.Setup();this.SetHTML(this.GetLinkedFieldValue(),true);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage){B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;}else{B=FCKXHtml.GetXHTML(C.body,false,A);if (FCKConfig.IgnoreEmptyParagraphValue&&FCKRegexLib.EmptyOutParagraph.test(B)) B='';};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _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':'ABBR';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;},SetHTML:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};this._ForceResetIsDirty=(B===true);var C='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) C=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C=A.replace(FCKRegexLib.HeadCloser,C+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) C=C.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{C=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) C+=' style="overflow-y: scroll"';C+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+=FCK.TempBaseTag;var D='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) D+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) D+=' class="'+FCKConfig.BodyClass+'"';C+='</head>'+D+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) C+=GECKO_BOGUS;else C+=A;C+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(C);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){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.SetHTML(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKBrowserInfo.IsGecko) Window_OnResize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try			{ if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e)	{ FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;case 'Cut':try			{ FCK.ExecuteNamedCommand('Cut',null,true);}catch (e)	{ alert(FCKLang.PasteErrorCut);};break;case 'Copy':try			{ FCK.ExecuteNamedCommand('Copy',null,true);}catch (e)	{ alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);FCKSelection.SelectNode(E);FCKSelection.Collapse(false);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);FCKSelection.SelectNode(A);FCKSelection.Collapse(false);this.Focus();};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;if (C){C.href=A;return C;}};return null;};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}
+var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}
+var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){C.parentNode.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};
+var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};
+FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);}};FCKTools.GetAllChildrenIds=function(A){var B=[];var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i].cloneNode(true));e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.getAttribute('style');if (C&&C.length>0){B.Inline=C;A.setAttribute('style','',0);};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return this.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);while (A){var E=D.getComputedStyle(A,'').position;if (E&&E!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4.2",VersionBuild : "14978",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<([^ >]+)[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<([^ >]+)[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:("|').*?\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};
+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,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },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,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base: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,ol:1,ul:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,td:1,th:1,caption:1,form:1 },Setup:function(){if (FCKConfig.EnterMode=='div') this.PathBlockElements.div=1;else this.PathBlockLimitElements.div=1;}};
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Á':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Å':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','Ì':'Igrave','Í':'Iacute','Î':'Icirc','Ï':'Iuml','Ð':'ETH','Ñ':'Ntilde','Ò':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ü':'Uuml','Ý':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','å':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Œ':'OElig','œ':'oelig','Š':'Scaron','š':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B,true);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,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 (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) return false;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');A=FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);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;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F.StartsWith('_fck')) continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);this._AppendAttribute(C,F,G);}}}
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}
+var FCKUndo={};FCKUndo.SaveUndoStep=function(){}
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null) C=e;};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
+var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsCollapsed();if (!C){var D=this.Window.document.createElement('div');B._Range.cloneContents().AppendTo(D);FCKDomTools.TrimNode(D,true);C=true;var E=D;while ((E=E.lastChild)){if (E.previousSibling||E.nodeType!=1||FCKListsLib.InlineChildReqElements[E.nodeName.toLowerCase()]==null){C=false;break;}}};B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A.rangeCount==1){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=this.Window.document.createRange();B.setStart(A.startContainer,A.startOffset);try{B.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);B.setEnd(A.endContainer,A.endOffset);}else throw(e);};var C=this.Window.getSelection();C.removeAllRanges();C.addRange(B);}};
+var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}}
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};
+var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){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.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var I=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(I);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);if (!B) C.MoveToSelection();if (C.StartBlockLimit==C.EndBlockLimit){if (!C.StartBlock) this._FixBlock(C,true,A);if (!C.EndBlock) this._FixBlock(C,false,A);var D=C.StartBlock;var E=C.EndBlock;if (!C.CheckIsEmpty()) C.DeleteContents();if (D==E){var F;var G=C.CheckStartOfBlock();var H=C.CheckEndOfBlock();if (G&&!H){F=D.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) F.innerHTML=GECKO_BOGUS;D.parentNode.insertBefore(F,D);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(F);C.Select();};C.MoveToElementEditStart(D);}else{if (H){var I=D.tagName.toUpperCase();if (G&&I=='LI'){this._OutdentWithSelection(D,C);C.Release();return true;}else{if ((/^H[1-6]$/).test(I)||this._HasShift) F=this.Window.document.createElement(A);else{F=D.cloneNode(false);this._RecreateEndingTree(D,F);};if (FCKBrowserInfo.IsGeckoLike){F.innerHTML=GECKO_BOGUS;if (G) D.innerHTML=GECKO_BOGUS;}}}else{C.SetEnd(D,2);var J=C.ExtractContents();F=D.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) F.innerHTML=GECKO_BOGUS;J.AppendTo(F);if (FCKBrowserInfo.IsGecko){this._AppendBogusBr(D);this._AppendBogusBr(F);}};if (F){FCKDomTools.InsertAfterNode(D,F);C.MoveToElementEditStart(F);if (FCKBrowserInfo.IsGecko) F.scrollIntoView(false);}}}else{C.MoveToElementEditStart(E);};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;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko) this._AppendBogusBr(G.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);};FCKEnterKey.prototype._AppendBogusBr=function(A){var B=A.getElementsByTagName('br');if (B) B=B[B.legth-1];if (!B||B.getAttribute('type',2)!='_moz') A.appendChild(FCKTools.CreateBogusBR(this.Window.document));};FCKEnterKey.prototype._RecreateEndingTree=function(A,B){while ((A=A.lastChild)&&A.nodeType==1&&FCKListsLib.InlineChildReqElements[A.nodeName.toLowerCase()]!=null) B=B.insertBefore(A.cloneNode(false),B.firstChild);};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();}
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=C.attributes['type'];if ((C.src&&C.src.EndsWith('.swf',true))||(D&&D.nodeValue=='application/x-shockwave-flash')){var E=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var F=['scale','play','loop','menu','wmode','quality'];for (var G=0;G<F.length;G++){var H=C.getAttribute(F[G]);if (H) E.setAttribute(F[G],H);};E.setAttribute('type',D.nodeValue);};var I=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',E);I.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(I,C);C.parentNode.insertBefore(I,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}
+var FCKSelection=FCK.Selection={};
+FCKSelection.GetType=function(){this._Type='Text';var A;try { A=FCK.EditorWindow.getSelection();}catch (e) {};if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1&&B.startContainer.nodeType!=Node.TEXT_NODE) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];};return null;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try		{ B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){}};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD,TH');if (C){A[0]=C;return A;}};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E;if (D.startContainer.tagName.Equals('TD','TH')) E=D.startContainer;else E=D.startContainer.childNodes[D.startOffset];if (E.tagName.Equals('TD','TH')) A[A.length]=E;};return A;};
+var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else this.DOMDocument=null;if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+C.status+'\r\nResponse text:\r\n'+C.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];var C=[];var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;}
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
+FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.ToolbarSet.CurrentInstance.EditorWindow.getSelection();var e=FCK.ToolbarSet.CurrentInstance.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
+var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n			<tr>\n				<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n				<td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n			</tr>\n		</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
+var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=A.ownerDocument.createElement('div');B.style.clear=B.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';A.appendChild(B);}
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
+FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;FCKFocusManager.Lock();var K=F.open('','FCKeditorDialog_'+B,J,true);if (!K){alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();return;};K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){}};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){}};return false;};
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
+var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;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;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
+var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_1.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_1.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_1.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * This file has been compacted for best loading performance.
- */
-var FCKDebug=new Object();if (FCKConfig.Debug){FCKDebug.Output=function(A,B){if (!FCKConfig.Debug) return;if (A!=null&&isNaN(A)) A=A.replace(/</g,"&lt;");if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open('fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500',true);if (this.DebugWindow.Output) this.DebugWindow.Output(A,B);};}else FCKDebug.Output=function() {};
-var FCKTools=new Object();FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,true);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;};};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i<this.updateFCKeditor.length;i++) this.updateFCKeditor[i]();};this.originalSubmit();};FCKTools.AddSelectOption=function(A,B,C,D){var E=A.createElement("OPTION");E.text=C;E.value=D;B.options.add(E);return E;};FCKTools.RemoveAllSelectOptions=function(A){for (var i=A.options.length-1;i>=0;i--){A.options.remove(i);};};FCKTools.SelectNoCase=function(A,B,C){var D=B.toString().toLowerCase();for (var i=0;i<A.options.length;i++){if (D==A.options[i].value.toLowerCase()){A.selectedIndex=i;return;};};if (C!=null) FCKTools.SelectNoCase(A,C);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,"&amp;");A=A.replace(/"/g,"&quot;");A=A.replace(/</g,"&lt;");A=A.replace(/>/g,"&gt;");A=A.replace(/'/g,"&#39;");return A;};FCKTools.GetResultingArray=function(A,B){switch (typeof(A)){case "string":return A.split(B);case "function":return B();default:if (isArray(A)) return A;else return new Array();};};FCKTools.GetElementPosition=function(A){var c={ X:0,Y:0 };while (A){c.X+=A.offsetLeft;c.Y+=A.offsetTop;A=A.offsetParent;};return c;};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.Pause=function(A){var B=new Date();while (true){var C=new Date();if (A<C-B) return;};};FCKTools.ConvertStyleSizeToHtml=function(A){return A.endsWith('%')?A:parseInt(A);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.endsWith('%')?A:(A+'px');};
-var GECKO_BOGUS='<br _moz_editor_bogus_node="TRUE">';FCKTools.AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i<A.attributes.length;i++){A.removeAttribute(A.attributes[i].name,0);};};FCKTools.GetAllChildrenIds=function(A){var B=new Array();var C=function(parent){for (var i=0;i<parent.childNodes.length;i++){var D=parent.childNodes[i].id;if (D&&D.length>0) B[B.length]=D;C(parent.childNodes[i]);};};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i<e.childNodes.length;i++) A.appendChild(e.childNodes[i]);e.parentNode.replaceChild(A,e);};FCKTools.CreateXmlObject=function(A){switch (A){case 'XmlHttp':return new XMLHttpRequest();case 'DOMDocument':return document.implementation.createDocument('','',null);};return null;};
-var FCKRegexLib=new Object();FCKRegexLib.AposEntity=/&apos;/gi;FCKRegexLib.ObjectElements=/^(?:IMG|TABLE|TR|TD|INPUT|SELECT|TEXTAREA|HR|OBJECT)$/i;FCKRegexLib.BlockElements=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD)$/i;FCKRegexLib.EmptyElements=/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i;FCKRegexLib.NamedCommands=/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i;FCKRegexLib.BodyContents=/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i;FCKRegexLib.ToReplace=/___fcktoreplace:([\w]+)/ig;FCKRegexLib.MetaHttpEquiv=/http-equiv\s*=\s*["']?([^"' ]+)/i;FCKRegexLib.HasBaseTag=/<base /i;FCKRegexLib.HeadOpener=/<head\s?[^>]*>/i;FCKRegexLib.HeadCloser=/<\/head\s*>/i;FCKRegexLib.TableBorderClass=/\s*FCK__ShowTableBorders\s*/;FCKRegexLib.ElementName=/^[A-Za-z_:][\w.-:]*$/;FCKRegexLib.ForceSimpleAmpersand=/___FCKAmp___/g;FCKRegexLib.SpaceNoClose=/\/>/g;FCKRegexLib.EmptyParagraph=/^<(p|div)>\s*<\/\1>$/i;FCKRegexLib.TagBody=/></;FCKRegexLib.StrongOpener=/<STRONG([ \>])/gi;FCKRegexLib.StrongCloser=/<\/STRONG>/gi;FCKRegexLib.EmOpener=/<EM([ \>])/gi;FCKRegexLib.EmCloser=/<\/EM>/gi;FCKRegexLib.GeckoEntitiesMarker=/#\?-\:/g;
-FCKLanguageManager.GetActiveLanguage=function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;};};return this.DefaultLanguage;};FCKLanguageManager.TranslateElements=function(A,B,C){var e=A.getElementsByTagName(B);for (var i=0;i<e.length;i++){var D=e[i].getAttribute('fckLang');if (D){var s=FCKLang[D];if (s) eval('e[i].'+C+' = s');};};};FCKLanguageManager.TranslatePage=function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML');};if (FCKLanguageManager.AvailableLanguages[FCKConfig.DefaultLanguage]) FCKLanguageManager.DefaultLanguage=FCKConfig.DefaultLanguage;else FCKLanguageManager.DefaultLanguage='en';FCKLanguageManager.ActiveLanguage=new Object();FCKLanguageManager.ActiveLanguage.Code=FCKLanguageManager.GetActiveLanguage();FCKLanguageManager.ActiveLanguage.Name=FCKLanguageManager.AvailableLanguages[FCKLanguageManager.ActiveLanguage.Code];FCK.Language=FCKLanguageManager;LoadLanguageFile();
-var FCKEvents;if (!(FCKEvents=NS.FCKEvents)){FCKEvents=NS.FCKEvents=function(A){this.Owner=A;this.RegisteredEvents=new Object();};FCKEvents.prototype.AttachEvent=function(A,B){if (!this.RegisteredEvents[A]) this.RegisteredEvents[A]=new Array();this.RegisteredEvents[A][this.RegisteredEvents[A].length]=B;};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this.RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};}
-var FCKXHtmlEntities=new Object();if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};FCKXHtmlEntities.Chars='';for (var e in FCKXHtmlEntities.Entities) FCKXHtmlEntities.Chars+=e;if (FCKConfig.IncludeLatinEntities){var oEntities={'À':'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 (var e in oEntities){FCKXHtmlEntities.Entities[e]=oEntities[e];FCKXHtmlEntities.Chars+=e;};oEntities=null;};if (FCKConfig.IncludeGreekEntities){var oEntities={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (var e in oEntities){FCKXHtmlEntities.Entities[e]=oEntities[e];FCKXHtmlEntities.Chars+=e;};oEntities=null;};FCKXHtmlEntities.EntitiesRegex=new RegExp('','');FCKXHtmlEntities.EntitiesRegex.compile('['+FCKXHtmlEntities.Chars+']|[^'+FCKXHtmlEntities.Chars+']+','g');}else{FCKXHtmlEntities.Entities={ ' ':'nbsp' };FCKXHtmlEntities.EntitiesRegex=/[ ]|[^ ]+/g;}
-var FCKXHtml=new Object();FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtml.SpecialBlocks=new Array();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 D=this._GetMainXmlString();D=D.substr(7,D.length-15).trim();if (FCKBrowserInfo.IsGecko) D=D.replace(/<br\/>$/,'');D=D.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) D=D.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) D=FCKCodeFormatter.Format(D);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var E=new RegExp('___FCKsi___'+i);D=D.replace(E,FCKXHtml.SpecialBlocks[i]);};this.XML=null;return D};FCKXHtml._AppendAttribute=function(A,B,C){try{var D=this.XML.createAttribute(B);D.value=C?C:'';A.attributes.setNamedItem(D);}catch (e){};};FCKXHtml._AppendChildNodes=function(A,B,C){var D=0;if (B.hasChildNodes()){var E=B.childNodes;for (var i=0;i<E.length;i++){if (this._AppendNode(A,E[i])) D++;};};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return;};if (!FCKRegexLib.EmptyElements.test(B.nodeName)) A.appendChild(this.XML.createTextNode(''));};};FCKXHtml._AppendNode=function(A,B){switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fckdelete')) return false;var C=B.nodeName;if (!FCKRegexLib.ElementName.test(C)) return false;C=C.toLowerCase();if (FCKBrowserInfo.IsGecko&&C=='br'&&B.hasAttribute('type')&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;else B._fckxhtmljob=FCKXHtml.CurrentJobNum;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);var E=FCKXHtml.TagProcessors[C];if (E){D=E(D,B);if (!D) break;}else this._AppendChildNodes(D,B,FCKRegexLib.BlockElements.test(C));A.appendChild(D);break;case 3:this._AppendTextNode(A,B.nodeValue.replaceNewLineChars(' '));break;case 8: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;};if (FCKConfig.ForceStrongEm){FCKXHtml._CreateNode=function(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};}else{FCKXHtml._CreateNode=function(A){return this.XML.createElement(A);};};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.addItem(A);};FCKXHtml._AppendTextNode=function(A,B){var C=B.match(FCKXHtmlEntities.EntitiesRegex);if (C){for (var i=0;i<C.length;i++){if (C[i].length==1){var D=FCKXHtmlEntities.Entities[C[i]];if (D!=null){this._AppendEntity(A,D);continue;};};A.appendChild(this.XML.createTextNode(C[i]));};};};FCKXHtml.TagProcessors=new Object();FCKXHtml.TagProcessors['img']=function(A){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');return A;};FCKXHtml.TagProcessors['script']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;};FCKXHtml.TagProcessors['style']=function(A,B){if (B.getAttribute('_fcktemp')) return null;if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['base']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['link']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;}
-FCKXHtml._GetMainXmlString=function(){var A=new XMLSerializer();return A.serializeToString(this.MainNode).replace(FCKRegexLib.GeckoEntitiesMarker,'&');};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n<D.length;n++){var E=D[n];if (E.specified){var F=E.nodeName.toLowerCase();var G;if (F=='_fckxhtmljob') continue;else if (F.indexOf('_moz')==0) continue;else if (F=='class') G=E.nodeValue;else if (E.nodeValue===true) G=F;else G=B.getAttribute(F,2);if (FCKConfig.ForceSimpleAmpersand&&G.replace) G=G.replace(/&/g,'___FCKAmp___');this._AppendAttribute(C,F,G);};};}
-var FCKCodeFormatter;if (!(FCKCodeFormatter=NS.FCKCodeFormatter)){FCKCodeFormatter=NS.FCKCodeFormatter=new Object();FCKCodeFormatter.Regex=new Object();FCKCodeFormatter.Regex.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi;FCKCodeFormatter.Regex.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi;FCKCodeFormatter.Regex.NewLineTags=/\<(BR|HR)[^\>]\>/gi;FCKCodeFormatter.Regex.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;FCKCodeFormatter.Regex.LineSplitter=/\s*\n+\s*/g;FCKCodeFormatter.Regex.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;FCKCodeFormatter.Regex.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;FCKCodeFormatter.Regex.FormatIndentatorRemove=new RegExp(FCKConfig.FormatIndentator);FCKCodeFormatter.Format=function(A){var B=A.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;};return B.trim();};}
-var FCKUndo=new Object();FCKUndo.SaveUndoStep=function(){}
-FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';FCK.StartEditor=function(){this.EditorWindow=window.frames['eEditorArea'];this.EditorDocument=this.EditorWindow.document;this.SetHTML(FCKTools.GetLinkedFieldValue());FCKTools.AttachToLinkedFieldFormSubmit(this.UpdateLinkedField);FCKUndo.SaveUndoStep();this.SetStatus(FCK_STATUS_ACTIVE);};function Window_OnFocus(){FCK.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){window.onfocus=window.document.body.onfocus=Window_OnFocus;if (FCKConfig.StartupFocus) FCK.Focus();if (FCKBrowserInfo.IsIE) FCKScriptLoader.AddScript('js/fckeditorcode_ie_2.js');else FCKScriptLoader.AddScript('js/fckeditorcode_gecko_2.js');};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=function(A){var B;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsIE) B=this.EditorDocument.body.innerHTML.replace(FCKRegexLib.ToReplace,'$1');else B=this.EditorDocument.body.innerHTML;}else B=document.getElementById('eSourceField').value;if (A) return FCKCodeFormatter.Format(B);else return B;};FCK.GetXHTML=function(A){var B=(FCK.EditMode==FCK_EDITMODE_SOURCE);if (B) this.SwitchEditMode();var C;if (FCKConfig.FullPage) C=FCKXHtml.GetXHTML(this.EditorDocument.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&this.EditorDocument.body.innerHTML=='<P>&nbsp;</P>') C='';else C=FCKXHtml.GetXHTML(this.EditorDocument.body,false,A);};if (B) this.SwitchEditMode();if (FCKBrowserInfo.IsIE) C=C.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) C=FCK.DocTypeDeclaration+'\n'+C;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) C=FCK.XmlDeclaration+'\n'+C;return FCKConfig.ProtectedSource.Revert(C);};FCK.UpdateLinkedField=function(){if (FCKConfig.EnableXHTML) FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);else FCK.LinkedField.value=FCK.GetHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.ShowContextMenu=function(x,y){if (this.Status!=FCK_STATUS_COMPLETE) return;FCKContextMenu.Show(x,y);this.Events.FireEvent("OnContextMenu");};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){var A,i=0;while((A=FCKDocumentProcessors[i++])) A.ProcessDocument(FCK.EditorDocument);this.Events.FireEvent('OnAfterSetHTML');};var FCKDocumentProcessors=new Array();var FCKDocumentProcessors_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};var FCKAnchorsProcessor=new Object();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){var D=FCKDocumentProcessors_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKDocumentProcessors.addItem(FCKAnchorsProcessor);var FCKPageBreaksProcessor=new Object();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('CENTER');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.innerHTML.trim().length==0){var D=FCKDocumentProcessors_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKDocumentProcessors.addItem(FCKPageBreaksProcessor);var FCKFlashProcessor=new Object();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.endsWith('.swf',true)){var D=FCKDocumentProcessors_CreateFakeImage('FCK__Flash',C.cloneNode(true));D.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(D,C);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCKDocumentProcessors.addItem(FCKFlashProcessor);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;};
-FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if (FCKConfig.ShowBorders){var A=FCKTools.AppendStyleSheet(this.EditorDocument,FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css');A.setAttribute('_fcktemp','true');};var B=function(e){e.preventDefault();FCK.ShowContextMenu(e.clientX,e.clientY);};this.EditorDocument.addEventListener('contextmenu',B,true);var C=function(e){if (e.ctrlKey&&!e.shiftKey&&!e.altKey){var D=false;switch (e.which){case 66:case 98:FCK.ExecuteNamedCommand('bold');D=true;break;case 105:case 73:FCK.ExecuteNamedCommand('italic');D=true;break;case 117:case 85:FCK.ExecuteNamedCommand('underline');D=true;break;case 86:case 118:D=(FCK.Status!=FCK_STATUS_COMPLETE||!FCK.Events.FireEvent("OnPaste"));break;};if (D){e.preventDefault();e.stopPropagation();};};};this.EditorDocument.addEventListener('keypress',C,true);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this._OnLoad=function(){if (this._FCK_HTML){this.document.body.innerHTML=this._FCK_HTML;this._FCK_HTML=null;};};this.EditorWindow.addEventListener('load',this._OnLoad,true);};FCK.MakeEditable=function(){try{FCK.EditorDocument.designMode='on';FCK.EditorDocument.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);}catch (e) {};};FCK.Focus=function(){try{FCK.EditorWindow.focus();}catch(e) {};};FCK.SetHTML=function(A,B){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');if (B||FCK.EditMode==FCK_EDITMODE_WYSIWYG){A=FCKConfig.ProtectedSource.Protect(A);if (FCKConfig.FullPage&&FCKRegexLib.BodyContents.test(A)){if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);A=A.replace(FCKRegexLib.HeadCloser,'<link href="'+FCKConfig.BasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" /></head>');var C=A.match(FCKRegexLib.BodyContents);var D=C[1];var E=C[2];var F=C[3];var G=D+'&nbsp;'+F;if (!this._Initialized){FCK.EditorDocument.designMode="on";FCK.EditorDocument.execCommand("useCSS",false,!FCKConfig.GeckoUseSPAN);this._Initialized=true;};this.EditorDocument.open();this.EditorDocument.write(G);this.EditorDocument.close();if (this.EditorDocument.body) this.EditorDocument.body.innerHTML=E;else this.EditorWindow._FCK_HTML=E;this.InitializeBehaviors();}else{if (!this._Initialized){this.EditorDocument.dir=FCKConfig.ContentLangDirection;var G='<title></title>'+'<link href="'+FCKConfig.EditorAreaCSS+'" rel="stylesheet" type="text/css" />'+'<link href="'+FCKConfig.BasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />'+FCK.TempBaseTag;this.EditorDocument.getElementsByTagName("HEAD")[0].innerHTML=G;this.InitializeBehaviors();this._Initialized=true;};if (A.length==0) FCK.EditorDocument.body.innerHTML=GECKO_BOGUS;else if (FCKRegexLib.EmptyParagraph.test(A)) FCK.EditorDocument.body.innerHTML=A.replace(FCKRegexLib.TagBody,'>'+GECKO_BOGUS+'<');else FCK.EditorDocument.body.innerHTML=A;FCK.MakeEditable();};FCK.OnAfterSetHTML();}else document.getElementById('eSourceField').value=A;}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_2.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_2.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_gecko_2.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,56 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * This file has been compacted for best loading performance.
- */
-FCK.RedirectNamedCommands=new Object();FCK.ExecuteNamedCommand=function(A,B){FCKUndo.SaveUndoStep();if (FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();};FCK.GetNamedCommandState=function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(A)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;};};FCK.GetNamedCommandValue=function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==FCK_TRISTATE_DISABLED) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.Preview=function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.GetXHTML().replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'">'+'<head><title>'+FCKLang.Preview+'</title>'+'<link href="'+FCKConfig.EditorAreaCSS+'" rel="stylesheet" type="text/css" />'+FCK.TempBaseTag+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(){var A=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);document.getElementById('eWysiwyg').style.display=A?'none':'';document.getElementById('eSource').style.display=A?'':'none';if (A){if (FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();document.getElementById('eSourceField').value=(FCKConfig.EnableXHTML&&FCKConfig.EnableSourceXHTML?FCK.GetXHTML(FCKConfig.FormatSource):FCK.GetHTML(FCKConfig.FormatSource));}else FCK.SetHTML(FCK.GetHTML(),true);FCK.EditMode=A?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCKToolbarSet.RefreshModeState();FCK.Focus();};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('__FCKTempLabel',1);this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('__FCKTempLabel')){A[i].removeAttribute('__FCKTempLabel');return A[i];};};return null;};
-FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;default:return FCK._BaseGetNamedCommandState(A);};};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try			{ if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste');}catch (e)	{ alert(FCKLang.PasteErrorPaste);};break;case 'Cut':try			{ FCK.ExecuteNamedCommand('Cut');}catch (e)	{ alert(FCKLang.PasteErrorCut);};break;case 'Copy':try			{ FCK.ExecuteNamedCommand('Copy');}catch (e)	{ alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(A,B);};};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;}else return true;};FCK.InsertHtml=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);var D=C.createContextualFragment(A);var E=D.lastChild;C.insertNode(D);C.setEndAfter(E);C.setStartAfter(E);B.removeAllRanges();B=FCK.EditorWindow.getSelection();B.addRange(C);this.Focus();};FCK.InsertElement=function(A){var B=FCKSelection.Delete();var C=B.getRangeAt(0);C.insertNode(A);C.setEndAfter(A);C.setStartAfter(A);this.Focus();};FCK.PasteAsPlainText=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=document.evaluate("//a[@href='"+B+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (C){C.href=A;return C;};};};
-var FCKSelection=new Object();FCK.Selection=FCKSelection;
-FCKSelection.GetType=function(){this._Type='Text';var A=FCK.EditorWindow.getSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.startContainer==B.endContainer&&(B.endOffset-B.startOffset)==1) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorWindow.getSelection();return A.anchorNode.childNodes[A.anchorOffset];};};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentElement;else{var A=FCK.EditorWindow.getSelection();if (A){var B=A.anchorNode;while (B&&B.nodeType!=1) B=B.parentNode;return B;};};};FCKSelection.SelectNode=function(A){FCK.Focus();var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=FCK.EditorWindow.getSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=FCK.EditorWindow.getSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try		{ B=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){};};while (B){if (B.nodeType==1&&B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (C){if (C.tagName==A) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=FCK.EditorWindow.getSelection();for (var i=0;i<A.rangeCount;i++){A.getRangeAt(i).deleteContents();};return A;};
-var FCKPanel=function(A){if (A) this.Window=A;else{this.Window=window;while (this.Window!=window.top){try{if (this.Window.parent.document.body.tagName=='FRAMESET') break;}catch (e){break;};this.Window=this.Window.parent;};};};FCKPanel.prototype.Create=function(){this._IFrame=this.Window.document.createElement('iframe');this._IFrame.src='about:blank';this._IFrame.frameBorder='0';this._IFrame.scrolling='no';this._IFrame.style.left='0px';this._IFrame.style.top='0px';this._IFrame.width=10;this._IFrame.height=10;this._IFrame.style.position='absolute';this._IFrame.style.visibility='hidden';this._IFrame.IsFCKPanel=true;this._IFrame.Panel=this;this.Window.document.body.appendChild(this._IFrame);this.Document=this._IFrame.contentWindow.document;this.Document.open();this.Document.write('<html><head></head><body><\/body><\/html>');this.Document.close();this.Document.body.style.margin=this.Document.body.style.padding='0px';if (this.StyleSheet) FCKTools.AppendStyleSheet(this.Document,this.StyleSheet);this.OuterDiv=this.Document.body.appendChild(this.Document.createElement('DIV'));this.OuterDiv.style.cssFloat='left';this.PanelDiv=this.OuterDiv.appendChild(this.Document.createElement('DIV'));this.PanelDiv.className='FCK_Panel';this.Created=true;};FCKPanel.prototype.Show=function(A,B,C,D,E,F){if (!this.Created) this.Create();if (D!=null&&F&&D<this.OuterDiv.offsetWidth) this.PanelDiv.style.width=D;if (E!=null&&F&&E<this.PanelDiv.offsetHeight) this.PanelDiv.style.height=E+'px';var G=this.GetElementPosition(C);A+=G.X;B+=G.Y;if (A+this.OuterDiv.offsetWidth>this.Window.innerWidth){A-=A+this.OuterDiv.offsetWidth-this.Window.innerWidth;};this._IFrame.style.left=A+'px';this._IFrame.style.top=B+'px';function SetOnClickListener(targetWindow,targetFunction){try{if (targetWindow==null||(targetWindow.frameElement&&targetWindow.frameElement.IsFCKPanel)) return;targetWindow.document.addEventListener('click',targetFunction,false);}catch (e) {};for (var i=0;i<targetWindow.frames.length;i++) SetOnClickListener(targetWindow.frames[i],targetFunction);};SetOnClickListener(window.top,FCKPanelEventHandlers.OnDocumentClick);this._IFrame.width=this.OuterDiv.offsetWidth;this._IFrame.height=this.OuterDiv.offsetHeight;this._IFrame.style.visibility='';};FCKPanel.prototype.GetElementPosition=function(A){var c={ X:0,Y:0 };while (A){c.X+=A.offsetLeft;c.Y+=A.offsetTop;if (A.offsetParent==null&&A.ownerDocument.defaultView!=this.Window) A=A.ownerDocument.defaultView.frameElement;else A=A.offsetParent;};return c;};FCKPanel.prototype.Hide=function(){this.PanelDiv.style.overflow='visible';this._IFrame.style.visibility='hidden';};var FCKPanelEventHandlers=new Object();FCKPanelEventHandlers.OnDocumentClick=function(e){var A=e.target.ownerDocument.defaultView;if (!A.IsFCKPanel){function RemoveOnClickListener(targetWindow){if (targetWindow==null) return;try{if (targetWindow.frameElement&&targetWindow.frameElement.IsFCKPanel) targetWindow.frameElement.Panel.Hide();else targetWindow.document.removeEventListener('click',FCKPanelEventHandlers.OnDocumentClick,false);}catch (e) {};for (var i=0;i<targetWindow.frames.length;i++) RemoveOnClickListener(targetWindow.frames[i]);};RemoveOnClickListener(window.top);};}
-var FCKTableHandler=new Object();FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TABLE");if (!A) return;A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) A=FCKSelection.MoveToAncestorNode("TH");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=FCKBrowserInfo.IsGecko?GECKO_BOGUS:'';var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);};};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);};};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode("TD");if (!B) return;var C=FCK.EditorDocument.createElement("TD");if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.lenght-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);};};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';for (var i=A.length-1;i>0;i--){B+=isNaN(A[i].colSpan)?1:A[i].colSpan;C=A[i].innerHTML+C;FCKTableHandler.DeleteCell(A[i]);};A[0].colSpan=B;A[0].innerHTML+=C;};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;};};};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=new Array();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=new Array();for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=new Array();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]=new Array();for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];};};c+=E-1;};};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';};}
-FCKTableHandler.GetSelectedCells=function(){var A=new Array();var B=FCK.EditorWindow.getSelection();if (B.rangeCount==1&&B.anchorNode.nodeType==3){var C=FCKTools.GetElementAscensor(B.anchorNode,'TD');if (C){A[0]=C;return A;};};for (var i=0;i<B.rangeCount;i++){var D=B.getRangeAt(i);var E=D.startContainer.childNodes[D.startOffset];if (E.tagName=='TD') A[A.length]=E;};return A;};
-var FCKXml;if (!(FCKXml=NS.FCKXml)){FCKXml=NS.FCKXml=function(){};FCKXml.prototype.LoadUrl=function(A){var B=this;var C=FCKTools.CreateXmlObject('XmlHttp');C.open("GET",A,false);C.send(null);if (C.status==200||C.status==304) this.DOMDocument=C.responseXML;else if (C.status==0&&C.readyState==4) this.DOMDocument=C.responseXML;else alert('Error loading "'+A+'"');};FCKXml.prototype.SelectNodes=function(A,B){var C=new Array();var D=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (D){var E=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();};};return C;};FCKXml.prototype.SelectSingleNode=function(A,B){var C=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (C&&C.singleNodeValue) return C.singleNodeValue;else return null;};}
-var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes=new Object();};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCKSelection.GetSelectedElement());else this._RemoveMe(FCKSelection.GetParentElement());}
-FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var A=FCK.EditorWindow.getSelection();var e=FCK.EditorDocument.createElement(this.Element);for (var i=0;i<A.rangeCount;i++){e.appendChild(A.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var B=A.getRangeAt(0);B.insertNode(e);}else{var C=FCKSelection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);};};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes) A.setAttribute(a,this.Attributes[a],0);};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.childNodes.length;i++){var B=A.childNodes[i];if (B.nodeType!=1) continue;this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);};};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentNode;if (A.nodeType==1&&this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes) A.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
-var FCKStylesLoader=function(){this.Styles=new Object();this.StyleGroups=new Object();this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=new Array();J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
-var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
-var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK_TRISTATE_OFF;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var A=FCK.EditorDocument.createElement('CENTER');A.style.pageBreakAfter='always';var B=FCKDocumentProcessors_CreateFakeImage('FCK__PageBreak',A);B=FCK.InsertElement(B);};FCKPageBreakCommand.prototype.GetState=function(){return 0;}
-var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
-var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._CreatePanelBody(this._Panel.Document,this._Panel.PanelDiv);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('hilitecolor',A);else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.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">\<tr>\<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\<td nowrap width="100%" align="center" unselectable="on">' + FCKLang.ColorAutomatic + '</td>\</tr>\</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;};};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
-var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
-var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return FCK_TRISTATE_DISABLED;else return FCK.GetNamedCommandState('Paste');};
-var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));};};FCKTableCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;}
-var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];};};};if (C) this._CheckStyle(A.parentNode,B,C);}
-var FCKCommands=FCK.Commands=new Object();FCKCommands.LoadedCommands=new Object();FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,300);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',400,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',500,250);break;case 'UniversalKey':B=new FCKDialogCommand('UniversalKey',FCKLang.UniversalKeyboard,'dialog/fck_universalkey.html',415,300);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();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?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};
-var FCKToolbarButton=function(A,B,C,D,E,F){this.Command=FCKCommands.GetCommand(A);this.Label=B?B:A;this.Tooltip=C?C:(B?B:A);this.Style=D?D:FCK_TOOLBARITEM_ONLYICON;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';this.State=FCK_UNKNOWN;};FCKToolbarButton.prototype.CreateInstance=function(A){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;var B='<table title="'+this.Tooltip+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>';if (this.Style!=FCK_TOOLBARITEM_ONLYTEXT) B+='<td class="TB_Icon" unselectable="on"><img src="'+this.IconPath+'" width="21" height="21" unselectable="on"></td>';if (this.Style!=FCK_TOOLBARITEM_ONLYICON) B+='<td class="TB_Text" unselectable="on" nowrap>'+this.Label+'</td>';B+='</tr>'+'</table>';this.DOMDiv.innerHTML=B;var C=A.DOMRow.insertCell(-1);C.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarButton.prototype.RefreshState=function(){var A=this.Command.GetState();if (A==this.State) return;this.State=A;switch (this.State){case FCK_TRISTATE_ON:this.DOMDiv.className='TB_Button_On';this.DOMDiv.onmouseover=FCKToolbarButton_OnMouseOnOver;this.DOMDiv.onmouseout=FCKToolbarButton_OnMouseOnOut;this.DOMDiv.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_OFF:this.DOMDiv.className='TB_Button_Off';this.DOMDiv.onmouseover=FCKToolbarButton_OnMouseOffOver;this.DOMDiv.onmouseout=FCKToolbarButton_OnMouseOffOut;this.DOMDiv.onclick=FCKToolbarButton_OnClick;break;default:this.Disable();break;};};function FCKToolbarButton_OnMouseOnOver(){this.className='TB_Button_On TB_Button_On_Over';};function FCKToolbarButton_OnMouseOnOut(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOffOver(){this.className='TB_Button_On TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOffOut(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){this.FCKToolbarButton.Click(e);return false;};FCKToolbarButton.prototype.Click=function(){this.Command.Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this.DOMDiv.className='TB_Button_Disabled';this.DOMDiv.onmouseover=null;this.DOMDiv.onmouseout=null;this.DOMDiv.onclick=null;}
-var FCKSpecialCombo=function(A){this.FieldWidth=80;this.PanelWidth=130;this.PanelMaxHeight=150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._Panel.PanelDiv.className+=' SC_Panel';this._Panel.PanelDiv.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._Panel.PanelDiv.getElementsByTagName('TD')[0];};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C){var D=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));D.className=D.originalClass='SC_Item';D.innerHTML=B;D.FCKItemID=A;D.FCKItemLabel=C?C:A;D.FCKSpecialCombo=this;D.Selected=false;D.onmouseover=FCKSpecialCombo_ItemOnMouseOver;D.onmouseout=FCKSpecialCombo_ItemOnMouseOut;D.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=D;return D;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;};};FCKSpecialCombo.prototype.DeselectAll=function(){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl) this._LabelEl.innerHTML=this.Label;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){this._OuterTable=A.appendChild(document.createElement('TABLE'));this._OuterTable.cellPadding=0;this._OuterTable.cellSpacing=0;this._OuterTable.insertRow(-1);var B;var C;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:B='TB_ButtonType_Icon';C=false;break;case FCK_TOOLBARITEM_ONLYTEXT:B='TB_ButtonType_Text';C=false;break;case FCK_TOOLBARITEM_ICONTEXT:C=true;break;};if (this.Caption&&this.Caption.length>0&&C){var D=this._OuterTable.rows[0].insertCell(-1);D.unselectable='on';D.innerHTML=this.Caption;D.className='SC_FieldCaption';};var E=this._OuterTable.rows[0].insertCell(-1).appendChild(document.createElement('DIV'));if (C){E.className='SC_Field';E.style.width=this.FieldWidth+'px';E.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldLabel" unselectable="on"><label unselectable="on">&nbsp;</label></td><td class="SC_FieldButton" unselectable="on">&nbsp;</td></tr></tbody></table>';this._LabelEl=E.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{E.className='TB_Button_Off';E.innerHTML='<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldButton" style="border-left: none;" unselectable="on">&nbsp;</td></tr></tbody></table>';E.innerHTML='<table title="'+this.Tooltip+'" class="'+B+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>'+'<td class="TB_Text" unselectable="on">'+this.Caption+'</td>'+'<td class="TB_ButtonArrow" unselectable="on"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'</tr>'+'</table>';};E.SpecialCombo=this;E.onmouseover=FCKSpecialCombo_OnMouseOver;E.onmouseout=FCKSpecialCombo_OnMouseOut;E.onclick=FCKSpecialCombo_OnClick;};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;};};};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;};};function FCKSpecialCombo_OnClick(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.SpecialCombo.Enabled){var oPanel=this.SpecialCombo._Panel;if (typeof(this.SpecialCombo.OnBeforeClick)=='function') this.SpecialCombo.OnBeforeClick(this.SpecialCombo);if (this.SpecialCombo._ItemsHolderEl.offsetHeight>this.SpecialCombo.PanelMaxHeight) oPanel.PanelDiv.style.height=this.SpecialCombo.PanelMaxHeight+'px';else oPanel.PanelDiv.style.height=this.SpecialCombo._ItemsHolderEl.offsetHeight+'px';oPanel.PanelDiv.style.width=this.SpecialCombo.PanelWidth+'px';if (FCKBrowserInfo.IsGecko) oPanel.PanelDiv.style.overflow='-moz-scrollbars-vertical';oPanel.Show(0,this.offsetHeight,this,null,this.SpecialCombo.PanelMaxHeight,true);};return false;};
-var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){this.Command.Execute(itemId,item);};FCKToolbarSpecialCombo.prototype.CreateInstance=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel());this._Combo.FieldWidth=this.FieldWidth!=null?this.FieldWidth:100;this._Combo.PanelWidth=this.PanelWidth!=null?this.PanelWidth:150;this._Combo.PanelMaxHeight=this.PanelMaxHeight!=null?this.PanelMaxHeight:150;this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A.DOMRow.insertCell(-1));this._Combo.Command=this.Command;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=this.Command.GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}
-var FCKToolbarFontsCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontName');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<span style="font-family: \''+B[i]+'\'; font-size: 12px;">'+B[i]+'</span>');}
-var FCKToolbarFontSizeCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontSize');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);};}
-var FCKToolbarFontFormatCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontFormat');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){if (D[i]=='div'&&FCKBrowserInfo.IsGecko) continue;this._Combo.AddItem(D[i],'<'+D[i]+'>'+C[D[i]]+'</'+D[i]+'>',C[D[i]]);};}
-var FCKToolbarStyleCombo=function(A,B){this.Command=FCKCommands.GetCommand('Style');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){FCKTools.AppendStyleSheet(A._Panel.Document,FCKConfig.EditorAreaCSS);if (!FCKBrowserInfo.IsGecko) A.OnBeforeClick=this.RefreshVisibleItems;for (var s in this.Command.Styles){var B=this.Command.Styles[s];var C;if (B.IsObjectElement) C=A.AddItem(s,s);else C=A.AddItem(s,B.GetOpenerTag()+s+B.GetCloserTag());C.Style=B;};};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=this.Command.GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';};}
-var FCKToolbarPanelButton=function(A,B,C,D){this.Command=FCKCommands.GetCommand(A);this.Label=B?B:A;this.Tooltip=C?C:(B?B:A);this.Style=D?D:FCK_TOOLBARITEM_ONLYICON;this.State=FCK_UNKNOWN;};FCKToolbarPanelButton.prototype.Click=function(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.State!=FCK_TRISTATE_DISABLED){this.Command.Execute(0,this.DOMDiv.offsetHeight,this.DOMDiv);};return false;};FCKToolbarPanelButton.prototype.CreateInstance=function(A){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;var B='<table title="'+this.Tooltip+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>';if (this.Style!=FCK_TOOLBARITEM_ONLYTEXT) B+='<td class="TB_Icon" unselectable="on"><img src="'+FCKConfig.SkinPath+'toolbar/'+this.Command.Name.toLowerCase()+'.gif" width="21" height="21" unselectable="on"></td>';if (this.Style!=FCK_TOOLBARITEM_ONLYICON) B+='<td class="TB_Text" unselectable="on" nowrap>'+this.Label+'</td>';B+='<td class="TB_ButtonArrow" unselectable="on"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'</tr>'+'</table>';this.DOMDiv.innerHTML=B;var C=A.DOMRow.insertCell(-1);C.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
-var FCKToolbarItems=new Object();FCKToolbarItems.LoadedItems=new Object();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,FCK_TOOLBARITEM_ICONTEXT,true,true);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak);break;case 'UniversalKey':B=new FCKToolbarButton('UniversalKey',FCKLang.UniversalKeyboard);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
-var FCKToolbar=function(){this.Items=new Array();var e=this.DOMTable=document.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';e.cellPadding=0;e.cellSpacing=0;e.border=0;this.DOMRow=e.insertRow(-1);var A=this.DOMRow.insertCell(-1);A.className='TB_Start';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.start.gif" width="7" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';FCKToolbarSet.DOMElement.appendChild(e);};FCKToolbar.prototype.AddItem=function(A){this.Items[this.Items.length]=A;A.CreateInstance(this);};FCKToolbar.prototype.AddSeparator=function(){var A=this.DOMRow.insertCell(-1);A.unselectable='on';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.separator.gif" width="5" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};FCKToolbar.prototype.AddTerminator=function(){var A=this.DOMRow.insertCell(-1);A.className='TB_End';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.end.gif" width="12" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};
-var FCKToolbarBreak=function(){var A=document.createElement('div');A.style.clear=A.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';FCKToolbarSet.DOMElement.appendChild(A);}
-var FCKToolbarSet=FCK.ToolbarSet=new Object();document.getElementById('ExpandHandle').title=FCKLang.ToolbarExpand;document.getElementById('CollapseHandle').title=FCKLang.ToolbarCollapse;FCKToolbarSet.Toolbars=new Array();FCKToolbarSet.ItemsWysiwygOnly=new Array();FCKToolbarSet.ItemsContextSensitive=new Array();FCKToolbarSet.Expand=function(){document.getElementById('Collapsed').style.display='none';document.getElementById('Expanded').style.display='';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Collapse=function(){document.getElementById('Collapsed').style.display='';document.getElementById('Expanded').style.display='none';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Restart=function(){if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();document.getElementById('CollapseHandle').style.display=FCKConfig.ToolbarCanCollapse?'':'none';};FCKToolbarSet.Load=function(A){this.DOMElement=document.getElementById('eToolbar');var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);if (!F.SourceView) this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length]=F;if (F.ContextSensitive) this.ItemsContextSensitive[this.ItemsContextSensitive.length]=F;};};};D.AddTerminator();};this.Toolbars[this.Toolbars.length]=D;};};FCKToolbarSet.RefreshModeState=function(){if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Enable();FCKToolbarSet.RefreshItemsState();}else{FCKToolbarSet.RefreshItemsState();for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Disable();};};FCKToolbarSet.RefreshItemsState=function(){for (var i=0;i<FCKToolbarSet.ItemsContextSensitive.length;i++) FCKToolbarSet.ItemsContextSensitive[i].RefreshState();};
-var FCKDialog=new Object();FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I=new Object();I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
-FCKDialog.Show=function(A,B,C,D,E,F,G){var H=(FCKConfig.ScreenHeight-E)/2;var I=(FCKConfig.ScreenWidth-D)/2;var J="location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes"+",resizable="+(G?'yes':'no')+",width="+D+",height="+E+",top="+H+",left="+I;if (!F) F=window;var K=F.open('','FCKeditorDialog_'+B,J,true);K.moveTo(I,H);K.resizeTo(D,E);K.focus();K.location.href=C;K.dialogArguments=A;F.FCKLastDialogInfo=A;this.Window=K;try{window.top.captureEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);}catch (e){};};FCKDialog.CheckFocus=function(){if (typeof(FCKDialog)!="object") return false;if (FCKDialog.Window&&!FCKDialog.Window.closed) FCKDialog.Window.focus();else{try{window.top.releaseEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);}catch (e){};};return false;};
-var FCKContextMenuItem=function(A,B,C,D){this.ContextMenu=A;this.Command=FCKCommands.GetCommand(B);this.Label=C?C:B;this.HasIcon=D?true:false;};function FCKContextMenuItem_OnMouseOver(){if (this.className!='CM_Disabled') this.className='CM_Over';};function FCKContextMenuItem_OnMouseOut(){if (this.className!='CM_Disabled') this.className='CM_Option';};function FCKContextMenuItem_OnClick(){if (this.className!='CM_Disabled'){this.FCKContextMenuItem.ContextMenu.Hide();this.FCKContextMenuItem.Command.Execute();};return false;};FCKContextMenuItem.prototype.CreateTableRow=function(A){this._Row=A.insertRow(-1);this._Row.className='CM_Disabled';this._Row.FCKContextMenuItem=this;this._Row.onmouseover=FCKContextMenuItem_OnMouseOver;this._Row.onmouseout=FCKContextMenuItem_OnMouseOut;this._Row.onclick=FCKContextMenuItem_OnClick;var B=this._Row.insertCell(-1);B.className='CM_Icon';if (this.HasIcon) B.innerHTML='<img alt="" src="'+FCKConfig.SkinPath+'toolbar/'+this.Command.Name.toLowerCase()+'.gif" width="21" height="20" unselectable="on">';B=this._Row.insertCell(-1);B.className='CM_Label';B.unselectable='on';B.noWrap=true;B.innerHTML=this.Label;};FCKContextMenuItem.prototype.SetVisible=function(A){this._Row.style.display=A?'':'none';};FCKContextMenuItem.prototype.RefreshState=function(){switch (this.Command.GetState()){case FCK_TRISTATE_ON:case FCK_TRISTATE_OFF:this._Row.className='CM_Option';break;default:this._Row.className='CM_Disabled';break;};};
-var FCKContextMenuSeparator=function(){};FCKContextMenuSeparator.prototype.CreateTableRow=function(A){this._Row=A.insertRow(-1);this._Row.className='CM_Separator';var B=this._Row.insertCell(-1);B.className='CM_Icon';B=this._Row.insertCell(-1);B.className='CM_Label';B.innerHTML='<div></div>';};FCKContextMenuSeparator.prototype.SetVisible=function(A){this._Row.style.display=A?'':'none';};FCKContextMenuSeparator.prototype.RefreshState=function(){};
-var FCKContextMenuGroup=function(A,B,C,D,E){this.IsVisible=true;this.Items=new Array();if (A) this.Add(new FCKContextMenuSeparator());if (B&&C&&D) this.Add(new FCKContextMenuItem(B,C,D,E));this.ValidationFunction=null;};FCKContextMenuGroup.prototype.Add=function(A){this.Items[this.Items.length]=A;};FCKContextMenuGroup.prototype.CreateTableRows=function(A){for (var i=0;i<this.Items.length;i++){this.Items[i].CreateTableRow(A);};};FCKContextMenuGroup.prototype.SetVisible=function(A){for (var i=0;i<this.Items.length;i++){this.Items[i].SetVisible(A);};this.IsVisible=A;};FCKContextMenuGroup.prototype.RefreshState=function(){if (!this.IsVisible) return;for (var i=0;i<this.Items.length;i++){this.Items[i].RefreshState();};}
-var FCKContextMenu=new Object();FCKContextMenu._IsLoaded=false;FCKContextMenu.Reload=function(){this._Div=this._Document.createElement('DIV');this._Div.className='CM_ContextMenu';this._Div.style.position='absolute';this._Div.style.visibility='hidden';this._Document.body.appendChild(this._Div);var A=this._Document.createElement('TABLE');A.cellSpacing=0;A.cellPadding=0;A.border=0;this._Div.appendChild(A);this.Groups=new Object();for (var i=0;i<FCKConfig.ContextMenu.length;i++){var B=FCKConfig.ContextMenu[i];this.Groups[B]=this._GetGroup(B);this.Groups[B].CreateTableRows(A);};this._IsLoaded=true;};FCKContextMenu._GetGroup=function(A){var B;switch (A){case 'Generic':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuItem(this,'Cut',FCKLang.Cut,true));B.Add(new FCKContextMenuItem(this,'Copy',FCKLang.Copy,true));B.Add(new FCKContextMenuItem(this,'Paste',FCKLang.Paste,true));break;case 'Link':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'Link',FCKLang.EditLink,true));B.Add(new FCKContextMenuItem(this,'Unlink',FCKLang.RemoveLink,true));break;case 'TableCell':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertRow',FCKLang.InsertRow,true));B.Add(new FCKContextMenuItem(this,'TableDeleteRows',FCKLang.DeleteRows,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertColumn',FCKLang.InsertColumn,true));B.Add(new FCKContextMenuItem(this,'TableDeleteColumns',FCKLang.DeleteColumns,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertCell',FCKLang.InsertCell,true));B.Add(new FCKContextMenuItem(this,'TableDeleteCells',FCKLang.DeleteCells,true));B.Add(new FCKContextMenuItem(this,'TableMergeCells',FCKLang.MergeCells,true));B.Add(new FCKContextMenuItem(this,'TableSplitCell',FCKLang.SplitCell,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableCellProp',FCKLang.CellProperties,true));B.Add(new FCKContextMenuItem(this,'TableProp',FCKLang.TableProperties,true));break;case 'Table':return new FCKContextMenuGroup(true,this,'Table',FCKLang.TableProperties,true);case 'Image':return new FCKContextMenuGroup(true,this,'Image',FCKLang.ImageProperties,true);case 'Flash':return new FCKContextMenuGroup(true,this,'Flash',FCKLang.FlashProperties,true);case 'Form':return new FCKContextMenuGroup(true,this,'Form',FCKLang.FormProp,true);case 'Checkbox':return new FCKContextMenuGroup(true,this,'Checkbox',FCKLang.CheckboxProp,true);case 'Radio':return new FCKContextMenuGroup(true,this,'Radio',FCKLang.RadioButtonProp,true);case 'TextField':return new FCKContextMenuGroup(true,this,'TextField',FCKLang.TextFieldProp,true);case 'HiddenField':return new FCKContextMenuGroup(true,this,'HiddenField',FCKLang.HiddenFieldProp,true);case 'ImageButton':return new FCKContextMenuGroup(true,this,'ImageButton',FCKLang.ImageButtonProp,true);case 'Button':return new FCKContextMenuGroup(true,this,'Button',FCKLang.ButtonProp,true);case 'Select':return new FCKContextMenuGroup(true,this,'Select',FCKLang.SelectionFieldProp,true);case 'Textarea':return new FCKContextMenuGroup(true,this,'Textarea',FCKLang.TextareaProp,true);case 'BulletedList':return new FCKContextMenuGroup(true,this,'BulletedList',FCKLang.BulletedListProp,true);case 'NumberedList':return new FCKContextMenuGroup(true,this,'NumberedList',FCKLang.NumberedListProp,true);case 'Anchor':return new FCKContextMenuGroup(true,this,'Anchor',FCKLang.AnchorProp,true);};return B;};FCKContextMenu.RefreshState=function(){var A=FCKSelection.GetSelectedElement();var B;if (A) B=A.tagName;if (this.Groups['Link'])			this.Groups['Link'].SetVisible(FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED);if (this.Groups['TableCell'])		this.Groups['TableCell'].SetVisible(B!='TABLE'&&FCKSelection.HasAncestorNode('TABLE'));if (this.Groups['Table'])			this.Groups['Table'].SetVisible(B=='TABLE');if (this.Groups['Image'])			this.Groups['Image'].SetVisible(B=='IMG'&&!A.getAttribute('_fckfakelement'));if (this.Groups['Flash'])			this.Groups['Flash'].SetVisible(B=='IMG'&&A.getAttribute('_fckflash'));if (this.Groups['Anchor'])		this.Groups['Anchor'].SetVisible(B=='IMG'&&A.getAttribute('_fckanchor'));if (this.Groups['BulletedList'])	this.Groups['BulletedList'].SetVisible(FCKSelection.HasAncestorNode('UL'));if (this.Groups['NumberedList'])	this.Groups['NumberedList'].SetVisible(FCKSelection.HasAncestorNode('OL'));if (this.Groups['Select'])		this.Groups['Select'].SetVisible(B=='SELECT');if (this.Groups['Textarea'])		this.Groups['Textarea'].SetVisible(B=='TEXTAREA');if (this.Groups['Form'])			this.Groups['Form'].SetVisible(FCKSelection.HasAncestorNode('FORM'));if (this.Groups['Checkbox'])		this.Groups['Checkbox'].SetVisible(B=='INPUT'&&A.type=='checkbox');if (this.Groups['Radio'])			this.Groups['Radio'].SetVisible(B=='INPUT'&&A.type=='radio');if (this.Groups['TextField'])		this.Groups['TextField'].SetVisible(B=='INPUT'&&(A.type=='text'||A.type=='password'));if (this.Groups['HiddenField'])	this.Groups['HiddenField'].SetVisible(B=='INPUT'&&A.type=='hidden');if (this.Groups['ImageButton'])	this.Groups['ImageButton'].SetVisible(B=='INPUT'&&A.type=='image');if (this.Groups['Button'])		this.Groups['Button'].SetVisible(B=='INPUT'&&(A.type=='button'||A.type=='submit'||A.type=='reset'));for (var o in this.Groups){this.Groups[o].RefreshState();};};
-FCKTools.AppendStyleSheet(window.parent.document,FCKConfig.SkinPath+'fck_contextmenu.css');FCKContextMenu.Show=function(x,y){if (!this._Document){this._Document=window.parent.document;};if (!this._IsLoaded){this.Reload();this._Div.style.zIndex=10000;this._Div.oncontextmenu=function() { return false;};};this.RefreshState();var A=FCKTools.GetElementPosition(FCK.EditorWindow.frameElement);var B=FCKTools.GetElementPosition(window.frameElement);x+=A.X+B.X;y+=A.Y+B.Y;var C=x+this._Div.offsetWidth-this._Div.ownerDocument.defaultView.innerWidth;var D=y+this._Div.offsetHeight-this._Div.ownerDocument.defaultView.innerHeight;if (C>0) x-=this._Div.offsetWidth;if (D>0) y-=this._Div.offsetHeight;this._Div.style.left=x+'px';this._Div.style.top=y+'px';var E=FCK.EditorWindow;while (E){E.document.addEventListener('click',FCKContextMenu._OnDocumentClick,false);if (E!=E.parent) E=E.parent;else if (E.opener==null) E=E.opener;else break;};this._Div.style.visibility='';};FCKContextMenu._OnDocumentClick=function(A){var e=A.target;while (e){if (e==FCKContextMenu._Div) return;e=e.parentNode;};FCKContextMenu.Hide();};FCKContextMenu.Hide=function(){this._Div.style.visibility='hidden';this._Div.style.left=this._Div.style.top='1px';}
-if (!FCKConfig.PluginsPath.endsWith('/')) FCKConfig.PluginsPath+='/';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=new Array();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];FCKScriptLoader.AddScript(this.Path+'lang/'+A+'.js');};FCKScriptLoader.AddScript(this.Path+'fckplugin.js');}
-var FCKPlugins=FCK.Plugins=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Loaded=false;FCKPlugins.Items=new Object();for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var oItem=FCKConfig.Plugins.Items[i];FCKPlugins.Items[oItem[0]]=new FCKPlugin(oItem[0],oItem[1],oItem[2]);FCKPlugins.ItemsCount++;};FCKPlugins.Load=function(){for (var s in this.Items) this.Items[s].Load();this.Loaded=true;FCKPlugins.Load=null;}
-if (FCKLang&&window.document.dir.toLowerCase()!=FCKLang.Dir.toLowerCase()) window.document.dir=FCKLang.Dir;if (FCKConfig.ForcePasteAsPlainText) FCK.Events.AttachEvent("OnPaste",FCK.Paste);if (FCKPlugins.ItemsCount>0){FCKScriptLoader.OnEmpty=CompleteLoading;FCKPlugins.Load();}else CompleteLoading();function CompleteLoading(){FCKToolbarSet.Name=FCKURLParams['Toolbar']||'Default';FCKToolbarSet.Load(FCKToolbarSet.Name);FCKToolbarSet.Restart();FCK.AttachToOnSelectionChange(FCKToolbarSet.RefreshItemsState);FCK.SetStatus(FCK_STATUS_COMPLETE);if (typeof(window.parent.FCKeditor_OnComplete)=='function') window.parent.FCKeditor_OnComplete(FCK);}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,99 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ * 
+ * == BEGIN LICENSE ==
+ * 
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ * 
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ * 
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+
+var FCK_STATUS_NOTLOADED=window.parent.FCK_STATUS_NOTLOADED=0;var FCK_STATUS_ACTIVE=window.parent.FCK_STATUS_ACTIVE=1;var FCK_STATUS_COMPLETE=window.parent.FCK_STATUS_COMPLETE=2;var FCK_TRISTATE_OFF=window.parent.FCK_TRISTATE_OFF=0;var FCK_TRISTATE_ON=window.parent.FCK_TRISTATE_ON=1;var FCK_TRISTATE_DISABLED=window.parent.FCK_TRISTATE_DISABLED=-1;var FCK_UNKNOWN=window.parent.FCK_UNKNOWN=-9;var FCK_TOOLBARITEM_ONLYICON=window.parent.FCK_TOOLBARITEM_ONLYICON=0;var FCK_TOOLBARITEM_ONLYTEXT=window.parent.FCK_TOOLBARITEM_ONLYTEXT=1;var FCK_TOOLBARITEM_ICONTEXT=window.parent.FCK_TOOLBARITEM_ICONTEXT=2;var FCK_EDITMODE_WYSIWYG=window.parent.FCK_EDITMODE_WYSIWYG=0;var FCK_EDITMODE_SOURCE=window.parent.FCK_EDITMODE_SOURCE=1;var FCK_IMAGES_PATH='images/';var FCK_SPACER_PATH='images/spacer.gif';var CTRL=1000;var SHIFT=2000;var ALT=4000;
+String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;i<A.length;i++){if (this==A[i]) return true;};return false;};String.prototype.IEquals=function(){var A=this.toUpperCase();var B=arguments;if (B.length==1&&B[0].pop) B=B[0];for (var i=0;i<B.length;i++){if (A==B[i].toUpperCase()) return true;};return false;};String.prototype.ReplaceAll=function(A,B){var C=this;for (var i=0;i<A.length;i++){C=C.replace(A[i],B[i]);};return C;};Array.prototype.AddItem=function(A){var i=this.length;this[i]=A;return i;};Array.prototype.IndexOf=function(A){for (var i=0;i<this.length;i++){if (this[i]==A) return i;};return-1;};String.prototype.StartsWith=function(A){return (this.substr(0,A.length)==A);};String.prototype.EndsWith=function(A,B){var C=this.length;var D=A.length;if (D>C) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B<this.length) s+=this.substring(A+B,this.length);return s;};String.prototype.Trim=function(){return this.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g,'');};String.prototype.LTrim=function(){return this.replace(/^[ \t\n\r]*/g,'');};String.prototype.RTrim=function(){return this.replace(/[ \t\n\r]*$/g,'');};String.prototype.ReplaceNewLineChars=function(A){return this.replace(/\n/g,A);}
+var	FCKIECleanup=function(A){if (A._FCKCleanupObj) this.Items=A._FCKCleanupObj.Items;else{this.Items=[];A._FCKCleanupObj=this;FCKTools.AddEventListenerEx(A,'unload',FCKIECleanup_Cleanup);}};FCKIECleanup.prototype.AddItem=function(A,B){this.Items.push([A,B]);};function FCKIECleanup_Cleanup(){if (!this._FCKCleanupObj) return;var A=this._FCKCleanupObj.Items;while (A.length>0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}
+var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:s.Contains('msie'),IsIE7:s.Contains('msie 7'),IsGecko:s.Contains('gecko/'),IsSafari:s.Contains('safari'),IsOpera:s.Contains('opera'),IsMac:s.Contains('macintosh')};(function(A){A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/gecko\/(\d+)/)[1];A.IsGecko10=B<20051111;}else A.IsGecko10=false;})(FCKBrowserInfo);
+var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i<A.length;i++){var B=A[i].split('=');var C=decodeURIComponent(B[0]);var D=decodeURIComponent(B[1]);FCKURLParams[C]=D;}})();
+var FCKEvents=function(A){this.Owner=A;this._RegisteredEvents={};};FCKEvents.prototype.AttachEvent=function(A,B){var C;if (!(C=this._RegisteredEvents[A])) this._RegisteredEvents[A]=[B];else C.push(B);};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this._RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};
+var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else return (this.StartupValue!=this.EditorDocument.body.innerHTML);},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86/*V*/) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45/*INS*/) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=false;FCKListsLib.Setup();this.SetHTML(this.GetLinkedFieldValue(),true);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:if (!FCKListsLib.BlockElements[D.nodeName.toLowerCase()]) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;};if (F){var G=D.parentNode;if (!E) E=G.insertBefore(B.createElement(A),D);E.appendChild(G.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetXHTML:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B;var C=FCK.EditorDocument;if (!C) return null;if (FCKConfig.FullPage){B=FCKXHtml.GetXHTML(C.getElementsByTagName('html')[0],true,A);if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) B=FCK.DocTypeDeclaration+'\n'+B;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) B=FCK.XmlDeclaration+'\n'+B;}else{B=FCKXHtml.GetXHTML(C.body,false,A);if (FCKConfig.IgnoreEmptyParagraphValue&&FCKRegexLib.EmptyOutParagraph.test(B)) B='';};B=FCK.ProtectEventsRestore(B);if (FCKBrowserInfo.IsIE) B=B.replace(FCKRegexLib.ToReplace,'$1');return FCKConfig.ProtectedSource.Revert(B);},UpdateLinkedField:function(){FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);},RegisterDoubleClickHandler:function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;},OnAfterSetHTML:function(){FCKDocumentProcessor.Process(FCK.EditorDocument);FCKUndo.SaveUndoStep();FCK.Events.FireEvent('OnSelectionChange');FCK.Events.FireEvent('OnAfterSetHTML');},ProtectUrls:function(A){A=A.replace(FCKRegexLib.ProtectUrlsA,'$& _fcksavedurl=$1');A=A.replace(FCKRegexLib.ProtectUrlsImg,'$& _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':'ABBR';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;},SetHTML:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCK.EditMode==0){A=FCKConfig.ProtectedSource.Protect(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1></$2>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCKBrowserInfo.IsGecko){A=A.replace(FCKRegexLib.StrongOpener,'<b$1');A=A.replace(FCKRegexLib.StrongCloser,'<\/b>');A=A.replace(FCKRegexLib.EmOpener,'<i$1');A=A.replace(FCKRegexLib.EmCloser,'<\/i>');};this._ForceResetIsDirty=(B===true);var C='';if (FCKConfig.FullPage){if (!FCKRegexLib.HeadOpener.test(A)){if (!FCKRegexLib.HtmlOpener.test(A)) A='<html dir="'+FCKConfig.ContentLangDirection+'">'+A+'</html>';A=A.replace(FCKRegexLib.HtmlOpener,'$&<head></head>');};FCK.DocTypeDeclaration=A.match(FCKRegexLib.DocTypeTag);if (FCKBrowserInfo.IsIE) C=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+='<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C=A.replace(FCKRegexLib.HeadCloser,C+'$&');if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) C=C.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);}else{C=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKBrowserInfo.IsIE&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) C+=' style="overflow-y: scroll"';C+='><head><title></title>'+_FCK_GetEditorAreaStyleTags()+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+='<link href="'+FCKConfig.FullBasePath+'css/fck_showtableborders_gecko.css" rel="stylesheet" type="text/css" _fcktemp="true" />';C+=FCK.TempBaseTag;var D='<body';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) D+=' id="'+FCKConfig.BodyId+'"';if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) D+=' class="'+FCKConfig.BodyClass+'"';C+='</head>'+D+'>';if (FCKBrowserInfo.IsGecko&&(A.length==0||FCKRegexLib.EmptyParagraph.test(A))) C+=GECKO_BOGUS;else C+=A;C+='</body></html>';};this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(C);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},HasFocus:false,RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C){FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else return FCK.EditorDocument.queryCommandState(A)?1:0;}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.TempBaseTag+FCK.GetXHTML();else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"><head>'+FCK.TempBaseTag+'<title>'+FCKLang.Preview+'</title>'+_FCK_GetEditorAreaStyleTags()+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){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.SetHTML(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},CreateElement:function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);},InsertElementAndGetIt:function(e){e.setAttribute('FCKTempLabel','true');this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('FCKTempLabel')){A[i].removeAttribute('FCKTempLabel');return A[i];}};return null;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+A.ReplaceAll([/&/g,/'/g,/"/g,/=/g,/</g,/>/g,/\r/g,/\n/g],['&apos;','&#39;','&quot;','&#61;','&lt;','&gt;','&#10;','&#13;'])+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return B.ReplaceAll([/&#39;/g,/&quot;/g,/&#61;/g,/&lt;/g,/&gt;/g,/&#10;/g,/&#13;/g,/&apos;/g],["'",'"','=','<','>','\r','\n','&']);};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;FCK.InitializeBehaviors();if (!FCKConfig.DisableEnterKeyHandler) FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){var A='';var B=FCKConfig.EditorAreaCSS;for (var i=0;i<B.length;i++) A+='<link href="'+B[i]+'" rel="stylesheet" type="text/css" />';return A;};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){if (B=='Paste') return!FCK.Events.FireEvent('OnPaste');}else{if (B.Equals('Paste','Undo','Redo','SelectAll')) return false;};var C=FCK.Commands.GetCommand(B);return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i<this.Elements.length) this.Elements[i++]==null;this.Elements.length=0;}};var FCKFocusManager=FCK.FocusManager={IsLocked:false,AddWindow:function(A,B){var C;if (FCKBrowserInfo.IsIE) C=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else C=A.document;FCKTools.AddEventListener(C,'blur',FCKFocusManager_Win_OnBlur);FCKTools.AddEventListener(C,'focus',B?FCKFocusManager_Win_OnFocus_Area:FCKFocusManager_Win_OnFocus);},RemoveWindow:function(A){if (FCKBrowserInfo.IsIE) oTarget=A.nodeType==1?A:A.frameElement?A.frameElement:A.document;else oTarget=A.document;FCKTools.RemoveEventListener(oTarget,'blur',FCKFocusManager_Win_OnBlur);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus_Area);FCKTools.RemoveEventListener(oTarget,'focus',FCKFocusManager_Win_OnFocus);},Lock:function(){this.IsLocked=true;},Unlock:function(){if (this._HasPendingBlur) FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);this.IsLocked=false;},_ResetTimer:function(){this._HasPendingBlur=false;if (this._Timer){window.clearTimeout(this._Timer);delete this._Timer;}}};function FCKFocusManager_Win_OnBlur(){if (typeof(FCK)!='undefined'&&FCK.HasFocus){FCKFocusManager._ResetTimer();FCKFocusManager._Timer=window.setTimeout(FCKFocusManager_FireOnBlur,100);}};function FCKFocusManager_FireOnBlur(){if (FCKFocusManager.IsLocked) FCKFocusManager._HasPendingBlur=true;else{FCK.HasFocus=false;FCK.Events.FireEvent("OnBlur");}};function FCKFocusManager_Win_OnFocus_Area(){FCK.Focus();FCKFocusManager_Win_OnFocus();};function FCKFocusManager_Win_OnFocus(){FCKFocusManager._ResetTimer();if (!FCK.HasFocus&&!FCKFocusManager.IsLocked){FCK.HasFocus=true;FCK.Events.FireEvent("OnFocus");}};
+FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._GetBehaviorsStyle=function(){if (!FCK._BehaviorsStyle){var A=FCKConfig.FullBasePath;var B='';var C;C='<style type="text/css" _fcktemp="true">';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(){return (FCK.Status==2&&FCK.Events.FireEvent("OnPaste"));};function Doc_OnKeyDown(){if (FCK.EditorWindow){var e=FCK.EditorWindow.event;if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();};return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+="&nbsp;";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()=='control') B.clear();B.createRange().pasteHTML(A);FCKDocumentProcessor.Process(FCK.EditorDocument);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.EditorWindow=null;this.EditorDocument=null;};FCK.Paste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._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(){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var A=clipboardData.getData("Text");if (A&&A.length>0){A=FCKTools.HTMLEncode(A).replace(/\n/g,'<BR>');this.InsertHtml(A);}};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.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){A=document.createElement('DIV');A.id='___FCKHiddenDiv';var B=A.style;B.position='absolute';B.visibility=B.overflow='hidden';B.width=B.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.links;for (i=0;i<C.length;i++){var D=C[i];if (D.href==B){var E=D.innerHTML;D.href=A;D.innerHTML=E;return D;}}};return null;};
+var FCKConfig=FCK.Config={};if (document.location.protocol=='file:'){FCKConfig.BasePath=decodeURIComponent(document.location.pathname.substr(1));FCKConfig.BasePath=FCKConfig.BasePath.replace(/\\/gi, '/');FCKConfig.BasePath='file://'+FCKConfig.BasePath.substring(0,FCKConfig.BasePath.lastIndexOf('/')+1);FCKConfig.FullBasePath=FCKConfig.BasePath;}else{FCKConfig.BasePath=document.location.pathname.substring(0,document.location.pathname.lastIndexOf('/')+1);FCKConfig.FullBasePath=document.location.protocol+'//'+document.location.host+FCKConfig.BasePath;};FCKConfig.EditorPath=FCKConfig.BasePath.replace(/editor\/$/,'');try{FCKConfig.ScreenWidth=screen.width;FCKConfig.ScreenHeight=screen.height;}catch (e){FCKConfig.ScreenWidth=800;FCKConfig.ScreenHeight=600;};FCKConfig.ProcessHiddenField=function(){this.PageConfig={};var A=window.parent.document.getElementById(FCK.Name+'___Config');if (!A) return;var B=A.value.split('&');for (var i=0;i<B.length;i++){if (B[i].length==0) continue;var C=B[i].split('=');var D=decodeURIComponent(C[0]);var E=decodeURIComponent(C[1]);if (D=='CustomConfigurationsPath') FCKConfig[D]=E;else if (E.toLowerCase()=="true") this.PageConfig[D]=true;else if (E.toLowerCase()=="false") this.PageConfig[D]=false;else if (E.length>0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) {/*Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error).*/}};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';if (typeof(A.EditorAreaCSS)=='string') A.EditorAreaCSS=[A.EditorAreaCSS];var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;else if (typeof(B)=='string') A.ToolbarComboPreviewCSS=[B];};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource.RegexEntries=[/<!--[\s\S]*?-->/g,/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){function _Replace(protectedSource){var B=FCKTempBin.AddElement(protectedSource);return '<!--{PS..'+B+'}-->';};for (var i=0;i<this.RegexEntries.length;i++){A=A.replace(this.RegexEntries[i],_Replace);};return A;};FCKConfig.ProtectedSource.Revert=function(A,B){function _Replace(m,opener,index){var C=B?FCKTempBin.RemoveElement(index):FCKTempBin.Elements[index];return FCKConfig.ProtectedSource.Revert(C,B);};return A.replace(/(<|&lt;)!--\{PS..(\d+)\}--(>|&gt;)/g,_Replace);}
+var FCKDebug={};FCKDebug._GetWindow=function(){if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open(FCKConfig.BasePath+'fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=yes,resizable=yes,location=no,toolbar=no,width=600,height=500',true);return this.DebugWindow;};FCKDebug.Output=function(A,B,C){if (!FCKConfig.Debug) return;try{this._GetWindow().Output(A,B);}catch (e) {}};FCKDebug.OutputObject=function(A,B){if (!FCKConfig.Debug) return;try{this._GetWindow().OutputObject(A,B);}catch (e) {}}
+var FCKDomTools={MoveChildren:function(A,B){if (A==B) return;var C;while ((C=A.firstChild)) B.appendChild(A.removeChild(C));},TrimNode:function(A,B){this.LTrimNode(A);this.RTrimNode(A,B);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length<D){B.splitText(D-C.length);A.removeChild(A.firstChild);}};break;}},RTrimNode:function(A,B){var C;while ((C=A.lastChild)){switch (C.nodeType){case 1:if (C.nodeName.toUpperCase()=='BR'&&(B||C.getAttribute('type',2)=='_moz')){A.removeChild(C);continue;};break;case 3:var D=C.nodeValue.RTrim();var E=C.nodeValue.length;if (D.length==0){C.parentNode.removeChild(C);continue;}else if (D.length<E){C.splitText(D.length);A.lastChild.parentNode.removeChild(A.lastChild);}};break;}},RemoveNode:function(A,B){if (B){var C;while ((C=A.firstChild)) A.parentNode.insertBefore(A.removeChild(C),A);};return A.parentNode.removeChild(A);},GetFirstChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.firstChild;while(C){if (C.nodeType==1&&C.tagName.Equals.apply(C.tagName,B)) return C;C=C.nextSibling;};return null;},GetLastChild:function(A,B){if (typeof (B)=='string') B=[B];var C=A.lastChild;while(C){if (C.nodeType==1&&(!B||C.tagName.Equals(B))) return C;C=C.previousSibling;};return null;},GetPreviousSourceElement:function(A,B,C,D){if (!A) return null;if (C&&A.nodeType==1&&A.nodeName.IEquals(C)) return null;if (A.previousSibling) A=A.previousSibling;else return this.GetPreviousSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D){if (!A) return null;if (A.nextSibling) A=A.nextSibling;else return this.GetNextSourceElement(A.parentNode,B,C,D);while (A){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (!D||!A.nodeName.IEquals(D)) return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;if (A.firstChild) A=A.firstChild;else return this.GetNextSourceElement(A,B,C,D);};return null;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.splice(0,0,A);A=A.parentNode;};return B;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;}};
+var GECKO_BOGUS='<br type="_moz">';var FCKTools={};FCKTools.CreateBogusBR=function(A){var B=A.createElement('br');B.setAttribute('type','_moz');return B;};FCKTools.AppendStyleSheet=function(A,B){if (typeof(B)=='string') return this._AppendStyleSheet(A,B);else{var C=[];for (var i=0;i<B.length;i++) C.push(this._AppendStyleSheet(A,B[i]));return C;}};FCKTools.GetElementDocument=function (A){return A.ownerDocument||A.document;};FCKTools.GetElementWindow=function(A){return this.GetDocumentWindow(this.GetElementDocument(A));};FCKTools.GetDocumentWindow=function(A){if (FCKBrowserInfo.IsSafari&&!A.parentWindow) this.FixDocumentParentWindow(window.top);return A.parentWindow||A.defaultView;};FCKTools.FixDocumentParentWindow=function(A){A.document.parentWindow=A;for (var i=0;i<A.frames.length;i++) FCKTools.FixDocumentParentWindow(A.frames[i]);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,'&amp;');A=A.replace(/</g,'&lt;');A=A.replace(/>/g,'&gt;');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/&gt;/g,'>');A=A.replace(/&lt;/g,'<');A=A.replace(/&amp;/g,'&');return A;};FCKTools.AddSelectOption=function(A,B,C){var D=FCKTools.GetElementDocument(A).createElement("OPTION");D.text=B;D.value=C;A.options.add(D);return D;};FCKTools.RunFunction=function(A,B,C,D){if (A) this.SetTimeout(A,0,B,C,D);};FCKTools.SetTimeout=function(A,B,C,D,E){return (E||window).setTimeout(function(){if (D) A.apply(C,[].concat(D));else A.apply(C);},B);};FCKTools.SetInterval=function(A,B,C,D,E){return (E||window).setInterval(function(){A.apply(C,D||[]);},B);};FCKTools.ConvertStyleSizeToHtml=function(A){return A.EndsWith('%')?A:parseInt(A,10);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.EndsWith('%')?A:(A+'px');};FCKTools.GetElementAscensor=function(A,B){var e=A;var C=","+B.toUpperCase()+",";while (e){if (C.indexOf(","+e.nodeName.toUpperCase()+",")!=-1) return e;e=e.parentNode;};return null;};FCKTools.CreateEventListener=function(A,B){var f=function(){var C=[];for (var i=0;i<arguments.length;i++) C.push(arguments[i]);A.apply(this,C.concat(B));};return f;};FCKTools.IsStrictMode=function(A){return ('CSS1Compat'==(A.compatMode||'CSS1Compat'));};FCKTools.ArgumentsToArray=function(A,B,C){B=B||0;C=C||A.length;var D=[];for (var i=B;i<B+C&&i<A.length;i++) D.push(A[i]);return D;};FCKTools.CloneObject=function(A){var B=function() {};B.prototype=A;return new B;};
+FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=top.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B={};if (A.className.length>0){B.Class=A.className;A.className='';};var C=A.style.cssText;if (C.length>0){B.Inline=C;A.style.cssText='';};return B;};FCKTools.RestoreStyles=function(A,B){A.className=B.Class||'';A.style.cssText=B.Inline||'';};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();}
+var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='var FCKeditorAPI = {Version : "2.4.2",VersionBuild : "14978",__Instances : new Object(),GetInstance : function( name ){return this.__Instances[ name ];},_FormSubmit : function(){for ( var name in FCKeditorAPI.__Instances ){var oEditor = FCKeditorAPI.__Instances[ name ] ;if ( oEditor.GetParentForm && oEditor.GetParentForm() == this )oEditor.UpdateLinkedField() ;}this._FCKOriginalSubmit() ;},_FunctionQueue	: {Functions : new Array(),IsRunning : false,Add : function( f ){this.Functions.push( f );if ( !this.IsRunning )this.StartNext();},StartNext : function(){var aQueue = this.Functions ;if ( aQueue.length > 0 ){this.IsRunning = true;aQueue[0].call();}else this.IsRunning = false;},Remove : function( f ){var aQueue = this.Functions;var i = 0, fFunc;while( (fFunc = aQueue[ i ]) ){if ( fFunc == f )aQueue.splice( i,1 );i++ ;}this.StartNext();}}}';if (A.execScript) A.execScript(B,'JavaScript');else{if (FCKBrowserInfo.IsGecko10){eval.call(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;};FCKeditorAPI.__Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){delete FCKeditorAPI.__Instances[FCK.Name];};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);
+var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i<A.length;i++){var B=document.createElement('img');B.onload=B.onerror=_FCKImagePreloader_OnImage;B._FCKImagePreloader=this;B.src=A[i];_FCKImagePreloader_ImageCache.push(B);}}};var _FCKImagePreloader_ImageCache=[];function _FCKImagePreloader_OnImage(){var A=this._FCKImagePreloader;if ((--A._PreloadCount)==0&&A.OnComplete) A.OnComplete();this._FCKImagePreloader=null;}
+var FCKRegexLib={AposEntity:/&apos;/gi,ObjectElements:/^(?:IMG|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|HR|OBJECT|A|UL|OL|LI)$/i,NamedCommands:/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i,BodyContents:/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/<base /i,HtmlOpener:/<html\s?[^>]*>/i,HeadOpener:/<head\s?[^>]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/(\s*FCK__[A-Za-z]*\s*)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<([^ >]+)[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<([^ >]+)[^>]*>(?:\s*|&nbsp;)(<\/\1>)?$/,TagBody:/></,StrongOpener:/<STRONG([ \>])/gi,StrongCloser:/<\/STRONG>/gi,EmOpener:/<EM([ \>])/gi,EmCloser:/<\/EM>/gi,GeckoEntitiesMarker:/#\?-\:/g,ProtectUrlsImg:/<img(?=\s).*?\ssrc=((?:("|').*?\2)|(?:[^"'][^ >]+))/gi,ProtectUrlsA:/<a(?=\s).*?\shref=((?:("|').*?\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};
+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,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },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,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base: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,ol:1,ul:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,td:1,th:1,caption:1,form:1 },Setup:function(){if (FCKConfig.EnterMode=='div') this.PathBlockElements.div=1;else this.PathBlockLimitElements.div=1;}};
+var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French',gl:'Galician',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},GetActiveLanguage:function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;}};return this.DefaultLanguage;},TranslateElements:function(A,B,C,D){var e=A.getElementsByTagName(B);var E,s;for (var i=0;i<e.length;i++){if ((E=e[i].getAttribute('fckLang'))){if ((s=FCKLang[E])){if (D) s=FCKTools.HTMLEncode(s);eval('e[i].'+C+' = s');}}}},TranslatePage:function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML',true);},Initialize:function(){if (this.AvailableLanguages[FCKConfig.DefaultLanguage]) this.DefaultLanguage=FCKConfig.DefaultLanguage;else this.DefaultLanguage='en';this.ActiveLanguage={};this.ActiveLanguage.Code=this.GetActiveLanguage();this.ActiveLanguage.Name=this.AvailableLanguages[this.ActiveLanguage.Code];}};
+var FCKXHtmlEntities={};FCKXHtmlEntities.Initialize=function(){if (FCKXHtmlEntities.Entities) return;var A='';var B,e;if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};for (e in FCKXHtmlEntities.Entities) A+=e;if (FCKConfig.IncludeLatinEntities){B={'À':'Agrave','Á':'Aacute','Â':'Acirc','Ã':'Atilde','Ä':'Auml','Å':'Aring','Æ':'AElig','Ç':'Ccedil','È':'Egrave','É':'Eacute','Ê':'Ecirc','Ë':'Euml','Ì':'Igrave','Í':'Iacute','Î':'Icirc','Ï':'Iuml','Ð':'ETH','Ñ':'Ntilde','Ò':'Ograve','Ó':'Oacute','Ô':'Ocirc','Õ':'Otilde','Ö':'Ouml','Ø':'Oslash','Ù':'Ugrave','Ú':'Uacute','Û':'Ucirc','Ü':'Uuml','Ý':'Yacute','Þ':'THORN','ß':'szlig','à':'agrave','á':'aacute','â':'acirc','ã':'atilde','ä':'auml','å':'aring','æ':'aelig','ç':'ccedil','è':'egrave','é':'eacute','ê':'ecirc','ë':'euml','ì':'igrave','í':'iacute','î':'icirc','ï':'iuml','ð':'eth','ñ':'ntilde','ò':'ograve','ó':'oacute','ô':'ocirc','õ':'otilde','ö':'ouml','ø':'oslash','ù':'ugrave','ú':'uacute','û':'ucirc','ü':'uuml','ý':'yacute','þ':'thorn','ÿ':'yuml','Œ':'OElig','œ':'oelig','Š':'Scaron','š':'scaron','Ÿ':'Yuml'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;};if (FCKConfig.IncludeGreekEntities){B={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (e in B){FCKXHtmlEntities.Entities[e]=B[e];A+=e;};B=null;}}else{FCKXHtmlEntities.Entities={};A=' ';};var C='['+A+']';if (FCKConfig.ProcessNumericEntities) C='[^ -~]|'+C;var D=FCKConfig.AdditionalNumericEntities;if (D&&D.length>0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}
+var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();this._CreateNode=FCKConfig.ForceStrongEm?FCKXHtml_CreateNode_StrongEm:FCKXHtml_CreateNode_Normal;FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;E=E.substr(7,E.length-15).Trim();if (FCKBrowserInfo.IsGecko) E=E.replace(/<br\/>$/,'');E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var F=new RegExp('___FCKsi___'+i);E=E.replace(F,FCKXHtml.SpecialBlocks[i]);};E=E.replace(FCKRegexLib.GeckoEntitiesMarker,'&');if (!D) FCK.ResetIsDirty();return E;};FCKXHtml._AppendAttribute=function(A,B,C){try{if (C==undefined||C==null) C='';else if (C.replace){if (FCKConfig.ForceSimpleAmpersand) C=C.replace(/&/g,'___FCKAmp___');C=C.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity);};var D=this.XML.createAttribute(B);D.value=C;A.attributes.setNamedItem(D);}catch (e){}};FCKXHtml._AppendChildNodes=function(A,B,C){if (C) FCKDomTools.TrimNode(B,true);var D=0;var E=B.firstChild;while (E){if (this._AppendNode(A,E)) D++;E=E.nextSibling;};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,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 (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fcktemp')) return false;var C=B.tagName.toLowerCase();if (FCKBrowserInfo.IsIE){if (B.scopeName&&B.scopeName!='HTML'&&B.scopeName!='FCK') C=B.scopeName.toLowerCase()+':'+C;}else{if (C.StartsWith('fck:')) C=C.Remove(0,4);};if (!FCKRegexLib.ElementName.test(C)) return false;if (C=='br'&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);B._fckxhtmljob=FCKXHtml.CurrentJobNum;var E=FCKXHtml.TagProcessors[C];if (E) D=E(D,B,A);else D=this._AppendChildNodes(D,B,Boolean(FCKListsLib.NonEmptyBlockElements[C]));if (!D) return false;A.appendChild(D);break;case 3:return this._AppendTextNode(A,B.nodeValue.ReplaceNewLineChars(' '));case 8:if (FCKBrowserInfo.IsIE&&!B.innerHTML) break;try { A.appendChild(this.XML.createComment(B.nodeValue));}catch (e) {/*Do nothing... probably this is a wrong format comment.*/};break;default:A.appendChild(this.XML.createComment("Element not supported - Type: "+B.nodeType+" Name: "+B.nodeName));break;};return true;};function FCKXHtml_CreateNode_StrongEm(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};function FCKXHtml_CreateNode_Normal(A){return this.XML.createElement(A);};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.AddItem(A);};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createTextNode('#?-:'+B+';'));};FCKXHtml._AppendTextNode=function(A,B){var C=B.length>0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml._RemoveAttribute=function(A,B,C){var D=A.attributes.getNamedItem(C);if (D&&B.test(D.nodeValue)){var E=D.nodeValue.replace(B,'');if (E.length==0) A.attributes.removeNamedItem(C);else D.nodeValue=E;}};FCKXHtml.TagProcessors={img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);return A;},a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;},table:function(A,B){if (FCKBrowserInfo.IsIE) FCKXHtml._RemoveAttribute(A,FCKRegexLib.FCK_Class,'class');A=FCKXHtml._AppendChildNodes(A,B,false);return A;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);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;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol;
+FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G.StartsWith('_fck')) continue;else if (G=='style') H=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else{try{H=B.getAttribute(G,2);}catch (e) {}};this._AppendAttribute(C,G,H||F.nodeValue);}}};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var D=B.getAttribute('shape',2);if (D&&D.length>0) FCKXHtml._AppendAttribute(A,'shape',D);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);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);if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);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;};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;}
+var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(<PRE[^>]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];var B=A.replace(this.Regex.ProtectedTags,FCKCodeFormatter._ProtectData);B=B.replace(this.Regex.BlocksOpener,'\n$&');B=B.replace(this.Regex.BlocksCloser,'$&\n');B=B.replace(this.Regex.NewLineTags,'$&\n');B=B.replace(this.Regex.MainTags,'\n$&\n');var C='';var D=B.split(this.Regex.LineSplitter);B='';for (var i=0;i<D.length;i++){var E=D[i];if (E.length==0) continue;if (this.Regex.DecreaseIndent.test(E)) C=C.replace(this.Regex.FormatIndentatorRemove,'');B+=C+E+'\n';if (this.Regex.IncreaseIndent.test(E)) C+=FCKConfig.FormatIndentator;};for (var j=0;j<FCKCodeFormatter.ProtectedData.length;j++){var F=new RegExp('___FCKpd___'+j);B=B.replace(F,FCKCodeFormatter.ProtectedData[j].replace(/\$/g,'$$$$'));};return B.Trim();}
+var FCKUndo={};FCKUndo.SavedData=[];FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0) return;FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;}
+var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.childNodes.length>0) C.removeChild(C.childNodes[0]);if (this.Mode==0){var E=this.IFrame=D.createElement('iframe');E.src='javascript:void(0)';E.frameBorder=0;E.width=E.height='100%';C.appendChild(E);if (FCKBrowserInfo.IsIE) A=A.replace(/(<base[^>]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1></base>');else if (!B){if (FCKBrowserInfo.IsGecko) A=A.replace(/(<body[^>]*>)\s*(<\/body>)/i,'$1'+GECKO_BOGUS+'$2');var F=A.match(FCKRegexLib.BodyContents);if (F){A=F[1]+'&nbsp;'+F[3];this._BodyHTML=F[2];}else this._BodyHTML=A;};this.Window=E.contentWindow;var G=this.Document=this.Window.document;G.open();G.write(A);G.close();if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}else{var H=this.Textarea=D.createElement('textarea');H.className='SourceField';H.dir='ltr';H.style.width=H.style.height='100%';H.style.border='none';C.appendChild(H);H.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.contentEditable=true;}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;this._BodyHTML=null;};A.designMode='on';try{A.execCommand('styleWithCSS',false,FCKConfig.GeckoUseSPAN);}catch (e){A.execCommand('useCSS',false,!FCKConfig.GeckoUseSPAN);};A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e) {}}};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE&&this.Document.hasFocus()) return;if (FCKBrowserInfo.IsSafari) this.IFrame.focus();else{this.Window.focus();}}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};function FCKEditingArea_Cleanup(){this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}};
+var FCKKeystrokeHandler=function(A){this.Keystrokes={};this.CancelCtrlDefaults=(A!==false);};FCKKeystrokeHandler.prototype.AttachToElement=function(A){FCKTools.AddEventListenerEx(A,'keydown',_FCKKeystrokeHandler_OnKeyDown,this);if (FCKBrowserInfo.IsGecko10||FCKBrowserInfo.IsOpera||(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac)) FCKTools.AddEventListenerEx(A,'keypress',_FCKKeystrokeHandler_OnKeyPress,this);};FCKKeystrokeHandler.prototype.SetKeystrokes=function(){for (var i=0;i<arguments.length;i++){var A=arguments[i];if (typeof(A[0])=='object') this.SetKeystrokes.apply(this,A);else{if (A.length==1) delete this.Keystrokes[A[0]];else this.Keystrokes[A[0]]=A[1]===true?true:A;}}};function _FCKKeystrokeHandler_OnKeyDown(A,B){var C=A.keyCode||A.which;var D=0;if (A.ctrlKey||A.metaKey) D+=CTRL;if (A.shiftKey) D+=SHIFT;if (A.altKey) D+=ALT;var E=C+D;var F=B._CancelIt=false;var G=B.Keystrokes[E];if (G){if (G===true||!(B.OnKeystroke&&B.OnKeystroke.apply(B,G))) return true;F=true;};if (F||(B.CancelCtrlDefaults&&D==CTRL&&(C<33||C>40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}
+var FCKListHandler={OutdentListItem:function(A){var B=A.parentNode;if (B.tagName.toUpperCase().Equals('UL','OL')){var C=FCKTools.GetElementDocument(A);var D=new FCKDocumentFragment(C);var E=D.RootNode;var F=false;var G=FCKDomTools.GetFirstChild(A,['UL','OL']);if (G){F=true;var H;while ((H=G.firstChild)) E.appendChild(G.removeChild(H));FCKDomTools.RemoveNode(G);};var I;var J=false;while ((I=A.nextSibling)){if (!F&&I.nodeType==1&&I.nodeName.toUpperCase()=='LI') J=F=true;E.appendChild(I.parentNode.removeChild(I));if (!J&&I.nodeType==1&&I.nodeName.toUpperCase().Equals('UL','OL')) FCKDomTools.RemoveNode(I,true);};var K=B.parentNode.tagName.toUpperCase();var L=(K=='LI');if (L||K.Equals('UL','OL')){if (F){var G=B.cloneNode(false);D.AppendTo(G);A.appendChild(G);}else if (L) D.InsertAfterNode(B.parentNode);else D.InsertAfterNode(B);if (L) FCKDomTools.InsertAfterNode(B.parentNode,B.removeChild(A));else FCKDomTools.InsertAfterNode(B,B.removeChild(A));}else{if (F){var N=B.cloneNode(false);D.AppendTo(N);FCKDomTools.InsertAfterNode(B,N);};var O=C.createElement(FCKConfig.EnterMode=='p'?'p':'div');FCKDomTools.MoveChildren(B.removeChild(A),O);FCKDomTools.InsertAfterNode(B,O);if (FCKConfig.EnterMode=='br'){if (FCKBrowserInfo.IsGecko) O.parentNode.insertBefore(FCKTools.CreateBogusBR(C),O);else FCKDomTools.InsertAfterNode(O,FCKTools.CreateBogusBR(C));FCKDomTools.RemoveNode(O,true);}};if (this.CheckEmptyList(B)) FCKDomTools.RemoveNode(B,true);}},CheckEmptyList:function(A){return (FCKDomTools.GetFirstChild(A,'LI')==null);},CheckListHasContents:function(A){var B=A.firstChild;while (B){switch (B.nodeType){case 1:if (!B.nodeName.IEquals('UL','LI')) return true;break;case 3:if (B.nodeValue.Trim().length>0) return true;};B=B.nextSibling;};return false;}};
+var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null) C=e;};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};
+var FCKDomRange=function(A){this.Window=A;};FCKDomRange.prototype={_UpdateElementInfo:function(){if (!this._Range) this.Release(true);else{var A=this._Range.startContainer;var B=this._Range.endContainer;var C=new FCKElementPath(A);this.StartContainer=C.LastElement;this.StartBlock=C.Block;this.StartBlockLimit=C.BlockLimit;if (A!=B) C=new FCKElementPath(B);this.EndContainer=C.LastElement;this.EndBlock=C.Block;this.EndBlockLimit=C.BlockLimit;}},CreateRange:function(){return new FCKW3CRange(this.Window.document);},DeleteContents:function(){if (this._Range){this._Range.deleteContents();this._UpdateElementInfo();}},ExtractContents:function(){if (this._Range){var A=this._Range.extractContents();this._UpdateElementInfo();return A;}},CheckIsCollapsed:function(){if (this._Range) return this._Range.collapsed;},Collapse:function(A){if (this._Range) this._Range.collapse(A);this._UpdateElementInfo();},Clone:function(){var A=FCKTools.CloneObject(this);if (this._Range) A._Range=this._Range.cloneRange();return A;},MoveToNodeContents:function(A){if (!this._Range) this._Range=this.CreateRange();this._Range.selectNodeContents(A);this._UpdateElementInfo();},MoveToElementStart:function(A){this.SetStart(A,1);this.SetEnd(A,1);},MoveToElementEditStart:function(A){var B;while ((B=A.firstChild)&&B.nodeType==1&&FCKListsLib.EmptyElements[B.nodeName.toLowerCase()]==null) A=B;this.MoveToElementStart(A);},InsertNode:function(A){if (this._Range) this._Range.insertNode(A);},CheckIsEmpty:function(A){if (this.CheckIsCollapsed()) return true;var B=this.Window.document.createElement('div');this._Range.cloneContents().AppendTo(B);FCKDomTools.TrimNode(B,A);return (B.innerHTML.length==0);},CheckStartOfBlock:function(){var A=this.Clone();A.Collapse(true);A.SetStart(A.StartBlock||A.StartBlockLimit,1);var B=A.CheckIsEmpty();A.Release();return B;},CheckEndOfBlock:function(A){var B=this.Clone();B.Collapse(false);B.SetEnd(B.EndBlock||B.EndBlockLimit,2);var C=B.CheckIsCollapsed();if (!C){var D=this.Window.document.createElement('div');B._Range.cloneContents().AppendTo(D);FCKDomTools.TrimNode(D,true);C=true;var E=D;while ((E=E.lastChild)){if (E.previousSibling||E.nodeType!=1||FCKListsLib.InlineChildReqElements[E.nodeName.toLowerCase()]==null){C=false;break;}}};B.Release();if (A) this.Select();return C;},CreateBookmark:function(){var A={StartId:'fck_dom_range_start_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000),EndId:'fck_dom_range_end_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000)};var B=this.Window.document;var C;var D;if (!this.CheckIsCollapsed()){C=B.createElement('span');C.id=A.EndId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(false);D.InsertNode(C);};C=B.createElement('span');C.id=A.StartId;C.innerHTML='&nbsp;';D=this.Clone();D.Collapse(true);D.InsertNode(C);return A;},MoveToBookmark:function(A,B){var C=this.Window.document;var D=C.getElementById(A.StartId);var E=C.getElementById(A.EndId);this.SetStart(D,3);if (!B) FCKDomTools.RemoveNode(D);if (E){this.SetEnd(E,3);if (!B) FCKDomTools.RemoveNode(E);}else this.Collapse(true);},SetStart:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setStart(A,0);break;case 2:C.setStart(A,A.childNodes.length);break;case 3:C.setStartBefore(A);break;case 4:C.setStartAfter(A);};this._UpdateElementInfo();},SetEnd:function(A,B){var C=this._Range;if (!C) C=this._Range=this.CreateRange();switch(B){case 1:C.setEnd(A,0);break;case 2:C.setEnd(A,A.childNodes.length);break;case 3:C.setEndBefore(A);break;case 4:C.setEndAfter(A);};this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'block_contents':if (this.StartBlock) this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){if (!(B=B.childNodes[this._Range.startOffset])) B=B.firstChild;};if (!B) return;while (true){oSibling=B.previousSibling;if (!oSibling){if (B.parentNode!=this.StartBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setStartBefore(B);};if (this.EndBlock) this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;if (!B) return;while (true){oSibling=B.nextSibling;if (!oSibling){if (B.parentNode!=this.EndBlockLimit) B=B.parentNode;else break;}else if (oSibling.nodeType!=1||!(/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/).test(oSibling.nodeName.toUpperCase())){B=oSibling;}else break;};this._Range.setEndAfter(B);};this._UpdateElementInfo();}},Release:function(A){if (!A) this.Window=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;}};
+FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){B=this._GetSelectionMarkerTag(true);this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);var B=this._GetSelectionMarkerTag(false);this._Range.setEnd(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._UpdateElementInfo();}else{var C=A.createRange().item(0);if (C){this._Range.setStartBefore(C);this._Range.setEndAfter(C);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(){if (this._Range){var A=this.CheckIsCollapsed();var B=this._GetRangeMarkerTag(true);if (!A) var C=this._GetRangeMarkerTag(false);var D=this.Window.document.body.createTextRange();D.moveToElementText(B);D.moveStart('character',1);if (!A){var E=this.Window.document.body.createTextRange();E.moveToElementText(C);D.setEndPoint('EndToEnd',E);D.moveEnd('character',-1);};this._Range.setStartBefore(B);B.parentNode.removeChild(B);if (A){try{D.pasteHTML('&nbsp;');D.moveStart('character',-1);}catch (e){};D.select();D.pasteHTML('');}else{this._Range.setEndBefore(C);C.parentNode.removeChild(C);D.select();}}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document.selection.createRange();B.collapse(A===true);var C='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);B.pasteHTML('<span id="'+C+'"></span>');return this.Window.document.getElementById(C);};FCKDomRange.prototype._GetRangeMarkerTag=function(A){var B=this._Range;if (!A){B=B.cloneRange();B.collapse(A===true);};var C=this.Window.document.createElement('span');C.innerHTML='&nbsp;';B.insertNode(C);return C;}
+var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}};
+var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A));},setEndAfter:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setEndBefore:function(A){this.setEnd(A.parentNode,FCKDomTools.GetIndexOf(A));},collapse:function(A){if (A){this.endContainer=this.startContainer;this.endOffset=this.startOffset;}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset;};this.collapsed=true;},selectNodeContents:function(A){this.setStart(A,0);this.setEnd(A,A.nodeType==3?A.data.length:A.childNodes.length);},insertNode:function(A){var B=this.startContainer;var C=this.startOffset;if (B.nodeType==3){B.splitText(C);if (B==this.endContainer) this.setEnd(B.nextSibling,this.endOffset-this.startOffset);FCKDomTools.InsertAfterNode(B,A);return;}else{B.insertBefore(A,B.childNodes[C]||null);if (B==this.endContainer){this.endOffset++;this.collapsed=false;}}},deleteContents:function(){if (this.collapsed) return;this._ExecContentsAction(0);},extractContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(1,A);return A;},cloneContents:function(){var A=new FCKDocumentFragment(this._Document);if (!this.collapsed) this._ExecContentsAction(2,A);return A;},_ExecContentsAction:function(A,B){var C=this.startContainer;var D=this.endContainer;var E=this.startOffset;var F=this.endOffset;var G=false;var H=false;if (D.nodeType==3) D=D.splitText(F);else{if (D.childNodes.length>0){if (F>D.childNodes.length-1){D=FCKDomTools.InsertAfterNode(D.lastChild,this._Document.createTextNode(''));H=true;}else D=D.childNodes[F];}};if (C.nodeType==3){C.splitText(E);if (C==D) D=C.nextSibling;}else{if (C.childNodes.length>0&&E<=C.childNodes.length-1){if (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else C=C.childNodes[E].previousSibling;}};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i<I.length;i++){topStart=I[i];topEnd=J[i];if (topStart!=topEnd) break;};var K,levelStartNode,levelClone,currentNode,currentSibling;if (B) K=B.RootNode;for (var j=i;j<I.length;j++){levelStartNode=I[j];if (K&&levelStartNode!=C) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==C));currentNode=levelStartNode.nextSibling;while(currentNode){if (currentNode==J[j]||currentNode==D) break;currentSibling=currentNode.nextSibling;if (A==2) K.appendChild(currentNode.cloneNode(true));else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.appendChild(currentNode);};currentNode=currentSibling;};if (K) K=levelClone;};if (B) K=B.RootNode;for (var k=i;k<J.length;k++){levelStartNode=J[k];if (A>0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)) this.setStart(topEnd.parentNode,FCKDomTools.GetIndexOf(topEnd));this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);},toString:function(){var A=this.cloneContents();var B=this._Document.createElement('div');A.AppendTo(B);return B.textContent||B.innerText;}};
+var FCKEnterKey=function(A,B,C){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var D=new FCKKeystrokeHandler(false);D._EnterKey=this;D.OnKeystroke=FCKEnterKey_OnKeystroke;D.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[46,'Delete']]);D.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){this._HasShift=(B===true);var C=A||this.EnterMode;if (C=='br') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(C);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (!B.CheckIsCollapsed()) return false;var C=B.StartBlock;var D=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&C&&D){if (!B.CheckIsCollapsed()){var E=B.CheckEndOfBlock();B.DeleteContents();if (C!=D){B.SetStart(D,1);B.SetEnd(D,1);};B.Select();A=(C==D);};if (B.CheckStartOfBlock()){var F=B.StartBlock;var G=FCKDomTools.GetPreviousSourceElement(F,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,G,F);}else if (FCKBrowserInfo.IsGecko){B.Select();}};B.Release();return A;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){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.TrimNode(C);FCKDomTools.TrimNode(B);A.SetStart(B,2);A.Collapse(true);var I=A.CreateBookmark();FCKDomTools.MoveChildren(C,B);A.MoveToBookmark(I);A.Select();D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGecko)){var C=B.StartBlock;var D=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,C,D);};B.Release();return A;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);if (!B) C.MoveToSelection();if (C.StartBlockLimit==C.EndBlockLimit){if (!C.StartBlock) this._FixBlock(C,true,A);if (!C.EndBlock) this._FixBlock(C,false,A);var D=C.StartBlock;var E=C.EndBlock;if (!C.CheckIsEmpty()) C.DeleteContents();if (D==E){var F;var G=C.CheckStartOfBlock();var H=C.CheckEndOfBlock();if (G&&!H){F=D.cloneNode(false);if (FCKBrowserInfo.IsGeckoLike) F.innerHTML=GECKO_BOGUS;D.parentNode.insertBefore(F,D);if (FCKBrowserInfo.IsIE){C.MoveToNodeContents(F);C.Select();};C.MoveToElementEditStart(D);}else{if (H){var I=D.tagName.toUpperCase();if (G&&I=='LI'){this._OutdentWithSelection(D,C);C.Release();return true;}else{if ((/^H[1-6]$/).test(I)||this._HasShift) F=this.Window.document.createElement(A);else{F=D.cloneNode(false);this._RecreateEndingTree(D,F);};if (FCKBrowserInfo.IsGeckoLike){F.innerHTML=GECKO_BOGUS;if (G) D.innerHTML=GECKO_BOGUS;}}}else{C.SetEnd(D,2);var J=C.ExtractContents();F=D.cloneNode(false);FCKDomTools.TrimNode(J.RootNode);if (J.RootNode.firstChild.nodeType==1&&J.RootNode.firstChild.tagName.toUpperCase().Equals('UL','OL')) F.innerHTML=GECKO_BOGUS;J.AppendTo(F);if (FCKBrowserInfo.IsGecko){this._AppendBogusBr(D);this._AppendBogusBr(F);}};if (F){FCKDomTools.InsertAfterNode(D,F);C.MoveToElementEditStart(F);if (FCKBrowserInfo.IsGecko) F.scrollIntoView(false);}}}else{C.MoveToElementEditStart(E);};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;if (!F&&E=='LI') return this._ExecuteEnterBlock(null,B);if (!F&&D&&(/^H[1-6]$/).test(E)){FCKDebug.Output('BR - Header');FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createElement('br'));if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(B.StartBlock,this.Window.document.createTextNode(''));B.SetStart(B.StartBlock.nextSibling,FCKBrowserInfo.IsIE?3:1);}else{FCKDebug.Output('BR - No Header');var G=this.Window.document.createElement('br');B.InsertNode(G);if (FCKBrowserInfo.IsGecko) FCKDomTools.InsertAfterNode(G,this.Window.document.createTextNode(''));if (D&&FCKBrowserInfo.IsGecko) this._AppendBogusBr(G.parentNode);if (FCKBrowserInfo.IsIE) B.SetStart(G,4);else B.SetStart(G.nextSibling,1);};B.Collapse(true);B.Select();};B.Release();return true;};FCKEnterKey.prototype._FixBlock=function(A,B,C){var D=A.CreateBookmark();A.Collapse(B);A.Expand('block_contents');var E=this.Window.document.createElement(C);A.ExtractContents().AppendTo(E);FCKDomTools.TrimNode(E);A.InsertNode(E);A.MoveToBookmark(D);};FCKEnterKey.prototype._AppendBogusBr=function(A){var B=A.getElementsByTagName('br');if (B) B=B[B.legth-1];if (!B||B.getAttribute('type',2)!='_moz') A.appendChild(FCKTools.CreateBogusBR(this.Window.document));};FCKEnterKey.prototype._RecreateEndingTree=function(A,B){while ((A=A.lastChild)&&A.nodeType==1&&FCKListsLib.InlineChildReqElements[A.nodeName.toLowerCase()]!=null) B=B.insertBefore(A.cloneNode(false),B.firstChild);};FCKEnterKey.prototype._OutdentWithSelection=function(A,B){var C=B.CreateBookmark();FCKListHandler.OutdentListItem(A);B.MoveToBookmark(C);B.Select();}
+var FCKDocumentProcessor={};FCKDocumentProcessor._Items=[];FCKDocumentProcessor.AppendNew=function(){var A={};this._Items.AddItem(A);return A;};FCKDocumentProcessor.Process=function(A){var B,i=0;while((B=this._Items[i++])) B.ProcessDocument(A);};var FCKDocumentProcessor_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};if (FCKBrowserInfo.IsIE||FCKBrowserInfo.IsOpera){var FCKAnchorsProcessor=FCKDocumentProcessor.AppendNew();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0){if (C.innerHTML!=''){if (FCKBrowserInfo.IsIE) C.className+=' FCK__AnchorC';}else{var D=FCKDocumentProcessor_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}}};var FCKPageBreaksProcessor=FCKDocumentProcessor.AppendNew();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('DIV');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.childNodes.length==1&&C.childNodes[0].style&&C.childNodes[0].style.display=='none'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}};var FCKFlashProcessor=FCKDocumentProcessor.AppendNew();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=C.attributes['type'];if ((C.src&&C.src.EndsWith('.swf',true))||(D&&D.nodeValue=='application/x-shockwave-flash')){var E=C.cloneNode(true);if (FCKBrowserInfo.IsIE){var F=['scale','play','loop','menu','wmode','quality'];for (var G=0;G<F.length;G++){var H=C.getAttribute(F[G]);if (H) E.setAttribute(F[G],H);};E.setAttribute('type',D.nodeValue);};var I=FCKDocumentProcessor_CreateFakeImage('FCK__Flash',E);I.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(I,C);C.parentNode.insertBefore(I,C);C.parentNode.removeChild(C);}}};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('HR');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){var D=A.createElement('hr');D.mergeAttributes(C,true);FCKDomTools.InsertAfterNode(C,D);C.parentNode.removeChild(C);}}};FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByTagName('INPUT');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.type=='hidden'){var D=FCKDocumentProcessor_CreateFakeImage('FCK__InputHidden',C.cloneNode(true));D.setAttribute('_fckinputhidden','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);}}}
+var FCKSelection=FCK.Selection={};
+FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);}};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return null;default:return FCK.EditorDocument.selection.createRange().parentElement();}};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (FCK.EditorDocument.selection.type=="Control"){oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){B=oRange(i).parentNode;break;}}}else{oRange=FCK.EditorDocument.selection.createRange();B=oRange.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};
+var FCKTableHandler={};FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode('TR');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=GECKO_BOGUS;var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);}};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode('TD')||FCKSelection.MoveToAncestorNode('TH');if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);}};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode('TD');if (!B) return null;var C=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.length-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';var D=FCK.EditorDocument.createDocumentFragment();for (var i=A.length-1;i>=0;i--){var E=A[i];for (var c=E.childNodes.length-1;c>=0;c--){var F=E.removeChild(E.childNodes[c]);if ((F.hasAttribute&&F.hasAttribute('_moz_editor_bogus_node'))||(F.getAttribute&&F.getAttribute('type',2)=='_moz')) continue;D.insertBefore(F,D.firstChild);};if (i>0){B+=isNaN(E.colSpan)?1:E.colSpan;FCKTableHandler.DeleteCell(E);}};A[0].colSpan=B;if (FCKBrowserInfo.IsGecko&&D.childNodes.length==0) A[0].innerHTML=GECKO_BOGUS;else A[0].appendChild(D);};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;}}};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=[];for (var r=0;r<A.length;r++){var D=A[r][B];if (D&&(C.length==0||C[C.length-1]!=D)) C[C.length]=D;};return C;};FCKTableHandler._CreateTableMap=function(A){var B=A.rows;var r=-1;var C=[];for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=[];var c=-1;for (var j=0;j<B[i].cells.length;j++){var D=B[i].cells[j];c++;while (C[r][c]) c++;var E=isNaN(D.colSpan)?1:D.colSpan;var F=isNaN(D.rowSpan)?1:D.rowSpan;for (var G=0;G<F;G++){if (!C[r+G]) C[r+G]=[];for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];}};c+=E-1;}};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';}};
+FCKTableHandler.GetSelectedCells=function(){var A=[];var B=FCK.EditorDocument.selection.createRange();var C=FCKSelection.GetParentElement();if (C&&C.tagName.Equals('TD','TH')) A[0]=C;else{C=FCKSelection.MoveToAncestorNode('TABLE');if (C){for (var i=0;i<C.cells.length;i++){var D=FCK.EditorDocument.selection.createRange();D.moveToElementText(C.cells[i]);if (B.inRange(D)||(B.compareEndPoints('StartToStart',D)>=0&&B.compareEndPoints('StartToEnd',D)<=0)||(B.compareEndPoints('EndToStart',D)>=0&&B.compareEndPoints('EndToEnd',D)<=0)){A[A.length]=C.cells[i];}}}};return A;};
+var FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.DOMDocument=null;};if (this.DOMDocument==null||this.DOMDocument.firstChild==null){this.Error=true;if (window.confirm('Error loading "'+A+'"\r\nDo you want to see more info?')) alert('URL requested: "'+A+'"\r\nServer response:\r\nStatus: '+B.status+'\r\nResponse text:\r\n'+B.responseText);}};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return [];if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return null;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);}
+var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes={};};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement());else this._RemoveMe(FCK.ToolbarSet.CurrentInstance.Selection.GetParentElement());}
+FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.ToolbarSet.CurrentInstance.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCK.ToolbarSet.CurrentInstance.Selection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);}};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':A.style.cssText=this.Attributes[a];break;case 'class':A.setAttribute('className',this.Attributes[a],0);break;case 'src':A.setAttribute('_fcksavedurl',this.Attributes[a],0);default:A.setAttribute(a,this.Attributes[a],0);}}};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)) FCKTools.RemoveOuterTags(B);}};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;}};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);}};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
+var FCKStylesLoader=function(){this.Styles={};this.StyleGroups={};this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=[];J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
+var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
+var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;this.Resizable=false;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height,null,null,this.Resizable);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return 0;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return 0;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A,10);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else if (A=='div'&&FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('FormatBlock','div');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return 0;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.GetParentForm();if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return 0;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return 0;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKConfig.SourcePopup){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==0?0:1);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?0:-1);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?0:-1);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var e=FCK.EditorDocument.createElement('DIV');e.style.pageBreakAfter='always';e.innerHTML='<span style="DISPLAY:none">&nbsp;</span>';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);A=FCK.InsertElement(A);};FCKPageBreakCommand.prototype.GetState=function(){return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCK.Selection.SelectNode(A);};FCK.ExecuteNamedCommand(this.Name);if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);};FCKUnlinkCommand.prototype.GetState=function(){var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){return FCK.GetNamedCommandState('Paste');}};
+var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;}};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');}};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?0:-1;}
+var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;var B;if (FCKBrowserInfo.IsIE) B=window;else if (FCK.ToolbarSet._IFrame) B=FCKTools.GetElementWindow(FCK.ToolbarSet._IFrame);else B=window.parent;this._Panel=new FCKPanel(B,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._Panel.MainNode.className='FCK_Panel';this._CreatePanelBody(this._Panel.Document,this._Panel.MainNode);FCKTools.DisableSelection(this._Panel.Document.body);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGeckoLike){if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,false);FCK.ExecuteNamedCommand('hilitecolor',A);if (FCKBrowserInfo.IsGecko&&!FCKConfig.GeckoUseSPAN) FCK.EditorDocument.execCommand('useCSS',false,true);}else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return 0;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.className='ForceBaseFont';D.style.tableLayout='fixed';D.cellPadding=0;D.cellSpacing=0;D.border=0;D.width=150;var E=D.insertRow(-1).insertCell(-1);E.colSpan=8;var C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\n			<tr>\n				<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\n				<td nowrap width="100%" align="center">'+FCKLang.ColorAutomatic+'</td>\n			</tr>\n		</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;}};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
+var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
+var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');};
+var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;case 'TableDelete':FCKTableHandler.DeleteTable();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){return 0;}
+var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){if (!FCK.EditorDocument) return -1;var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?0:-1;};return 0;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=[];if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];}}};if (C) this._CheckStyle(A.parentNode,B,C);}
+var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1) G._fckSavedStyles=FCKTools.SaveStyles(G);};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var H=FCKTools.GetViewPaneSize(C);B.position="absolute";B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=H.Width+"px";B.height=H.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();FCK.EditingArea.MakeEditable();FCK.Focus();};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';};
+var FCKCommands=FCK.Commands={};FCKCommands.LoadedCommands={};FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330);break;case 'Unlink':B=new FCKUnlinkCommand();break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html?UL',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html?OL',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,320);break;case 'Smiley':B=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);break;case 'Table':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',450,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',550,250);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'Paste':B=new FCKPasteCommand();break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'TableDelete':B=new FCKTableCommand('TableDelete');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'FitWindow':B=new FCKFitWindow();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();break;case 'SelectAll':B=new FCKSelectAllCommand();break;case 'Undefined':B=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(A)) B=new FCKNamedCommand(A);else{alert(FCKLang.UnknownCommand.replace(/%1/g,A));return null;}};FCKCommands.LoadedCommands[A]=B;return B;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?0:-1;};
+var FCKPanel=function(A){this.IsRTL=(FCKLang.Dir=='rtl');this.IsContextMenu=false;this._LockCounter=0;this._Window=A||window;var B;if (FCKBrowserInfo.IsIE){this._Popup=this._Window.createPopup();B=this.Document=this._Popup.document;FCK.IECleanup.AddItem(this,FCKPanel_Cleanup);}else{var C=this._IFrame=this._Window.document.createElement('iframe');C.src='javascript:void(0)';C.allowTransparency=true;C.frameBorder='0';C.scrolling='no';C.style.position='absolute';C.style.zIndex=FCKConfig.FloatingPanelsZIndex;C.width=C.height=0;if (this._Window==window.parent&&window.frameElement) window.frameElement.parentNode.insertBefore(C,window.frameElement);else this._Window.document.body.appendChild(C);var D=C.contentWindow;B=this.Document=D.document;B.open();B.write('<html><head></head><body style="margin:0px;padding:0px;"><\/body><\/html>');B.close();FCKTools.AddEventListenerEx(D,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(D,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;B.oncontextmenu=FCKTools.CancelEvent;this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;if (this._Popup){this._Popup.show(x,y,0,0,A);this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,this.MainNode.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Lock();if (this.ParentPanel) this.ParentPanel.Lock();this.MainNode.style.width=B?B+'px':'';this.MainNode.style.height=C?C+'px':'';D=this.MainNode.offsetWidth;if (!B)	this._IFrame.width=1;if (!C)	this._IFrame.height=1;D=this.MainNode.offsetWidth;var E=FCKTools.GetElementPosition(A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A,this._Window);if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=E.X;y+=E.Y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var F=FCKTools.GetViewPaneSize(this._Window);var G=FCKTools.GetScrollPosition(this._Window);var H=F.Height+G.Y;var I=F.Width+G.X;if ((x+D)>I) x-=x+D-I;if ((y+this.MainNode.offsetHeight)>H) y-=y+this.MainNode.offsetHeight-H;};if (x<0) x=0;this._IFrame.style.left=x+'px';this._IFrame.style.top=y+'px';var J=D;var K=this.MainNode.offsetHeight;this._IFrame.width=J;this._IFrame.height=K;this._IFrame.contentWindow.focus();};this._IsOpened=true;FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened) return;if (typeof(FCKFocusManager)!='undefined') FCKFocusManager.Unlock();this._IFrame.width=this._IFrame.height=0;this._IsOpened=false;if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A,true);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}
+var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url('+this.Path+')';}}else{B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;};B.className='TB_Button_Image';return B;}
+var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=this.MainElement;if (B){FCKToolbarButtonUI_Cleanup.call(this);if (B.parentNode) B.parentNode.removeChild(B);B=this.MainElement=null;};var C=FCKTools.GetElementDocument(A);B=this.MainElement=C.createElement('DIV');B._FCKButton=this;B.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) B.onmousedown=FCKTools.CancelEvent;this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){B.appendChild(this.Icon.CreateIconElement(C));}else{var D=B.appendChild(C.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(C));else F.appendChild(this._CreatePaddingElement(C));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(C.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(C));};F=E.insertCell(-1);var G=F.appendChild(C.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(C));};A.appendChild(B);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';e.onmouseover=FCKToolbarButton_OnMouseOverOff;e.onmouseout=FCKToolbarButton_OnMouseOutOff;e.onclick=FCKToolbarButton_OnClick;break;case 1:e.className='TB_Button_On';e.onmouseover=FCKToolbarButton_OnMouseOverOn;e.onmouseout=FCKToolbarButton_OnMouseOutOn;e.onclick=FCKToolbarButton_OnClick;break;case -1:e.className='TB_Button_Disabled';e.onmouseover=null;e.onmouseout=null;e.onclick=null;break;};this.State=A;};function FCKToolbarButtonUI_Cleanup(){if (this.MainElement){this.MainElement._FCKButton=null;this.MainElement=null;}};function FCKToolbarButton_OnMouseOverOn(){this.className='TB_Button_On_Over';};function FCKToolbarButton_OnMouseOutOn(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOverOff(){this.className='TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOutOff(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){if (this._FCKButton.OnClick) this._FCKButton.OnClick(this._FCKButton);};
+var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (A==this._UIButton.State) return;this._UIButton.ChangeState(A);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}
+var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window,true);this._Panel.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.className=this.originalClass;this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemID=A;E.FCKItemLabel=C||A;E.FCKSpecialCombo=this;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;E.onmouseover=FCKSpecialCombo_ItemOnMouseOver;E.onmouseout=FCKSpecialCombo_ItemOnMouseOut;E.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl){this._LabelEl.innerHTML=this.Label;FCKTools.DisableSelection(this._LabelEl);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;"><tbody><tr><td class="SC_FieldLabel"><label>&nbsp;</label></td><td class="SC_FieldButton">&nbsp;</td></tr></tbody></table>';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='<table title="'+this.Tooltip+'" class="'+D+'" cellspacing="0" cellpadding="0" border="0"><tr><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_Text">'+this.Caption+'</td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td><td class="TB_ButtonArrow"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td><td><img class="TB_Button_Padding" src="'+FCK_SPACER_PATH+'" /></td></tr></table>';};G.SpecialCombo=this;G.onmouseover=FCKSpecialCombo_OnMouseOver;G.onmouseout=FCKSpecialCombo_OnMouseOut;G.onclick=FCKSpecialCombo_OnClick;FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e){var A=this.SpecialCombo;if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}};
+var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this._LastValue=null;};function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!=B){this._LastValue=B;FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);};
+var FCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<font face="'+B[i]+'" style="font-size: 12px">'+B[i]+'</font>');}
+var FCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);}}
+var FCKToolbarFontFormatCombo=function(A,B){this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;var C=FCKLang['FontFormats'].split(';');var D={p:C[0],pre:C[1],address:C[2],h1:C[3],h2:C[4],h3:C[5],h4:C[6],h5:C[7],h6:C[8],div:C[9]};var E=FCKConfig.FontFormats.split(';');for (var i=0;i<E.length;i++){var F=E[i];var G=D[F];if (F=='p') this.NormalLabel=G;this._Combo.AddItem(F,'<div class="BaseFont"><'+F+'>'+G+'</'+F+'></div>',G);}};if (FCKBrowserInfo.IsIE){FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A,B){if (B==this.NormalLabel){if (A.Label!='&nbsp;') A.DeselectAll(true);}else{if (this._LastValue==B) return;A.SelectItemByLabel(B,true);};this._LastValue=B;}}
+var FCKToolbarStyleCombo=function(A,B){this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);B.body.className+=' ForceBaseFont';if (FCKConfig.BodyId&&FCKConfig.BodyId.length>0) B.body.id=FCKConfig.BodyId;if (FCKConfig.BodyClass&&FCKConfig.BodyClass.length>0) B.body.className+=' '+FCKConfig.BodyClass;if (!(FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsGecko10)) A.OnBeforeClick=this.RefreshVisibleItems;var C=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Styles;for (var s in C){var D=C[s];var E;if (D.IsObjectElement) E=A.AddItem(s,s);else E=A.AddItem(s,D.GetOpenerTag()+s+D.GetCloserTag());E.Style=D;}};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';}}
+var FCKToolbarPanelButton=function(A,B,C,D,E){this.CommandName=A;var F;if (E==null) F=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(E)=='number') F=[FCKConfig.SkinPath+'fck_strip.gif',16,E];var G=this._UIButton=new FCKToolbarButtonUI(A,B,C,F,D);G._FCKToolbarPanelButton=this;G.ShowArrow=true;G.OnClick=FCKToolbarPanelButton_OnButtonClick;};FCKToolbarPanelButton.prototype.TypeName='FCKToolbarPanelButton';FCKToolbarPanelButton.prototype.Create=function(A){A.className+='Menu';this._UIButton.Create(A);var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName)._Panel;B._FCKToolbarPanelButton=this;var C=B.Document.body.appendChild(B.Document.createElement('div'));C.style.position='absolute';C.style.top='0px';var D=this.LineImg=C.appendChild(B.Document.createElement('IMG'));D.className='TB_ConnectionLine';D.src=FCK_SPACER_PATH;B.OnHide=FCKToolbarPanelButton_OnPanelHide;};function FCKToolbarPanelButton_OnButtonClick(A){var B=this._FCKToolbarPanelButton;var e=B._UIButton.MainElement;B._UIButton.ChangeState(1);B.LineImg.style.width=(e.offsetWidth-2)+'px';FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(B.CommandName).Execute(0,e.offsetHeight-1,e);};function FCKToolbarPanelButton_OnPanelHide(){var A=this._FCKToolbarPanelButton;A._UIButton.ChangeState(0);};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
+var FCKToolbarItems={};FCKToolbarItems.LoadedItems={};FCKToolbarItems.RegisterItem=function(A,B){this.LoadedItems[A]=B;};FCKToolbarItems.GetItem=function(A){var B=FCKToolbarItems.LoadedItems[A];if (B) return B;switch (A){case 'Source':B=new FCKToolbarButton('Source',FCKLang.Source,null,2,true,true,1);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps,null,null,null,null,2);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true,null,3);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true,null,4);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true,null,5);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates,null,null,null,null,6);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true,null,47);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true,7);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true,8);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true,9);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true,10);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true,11);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true,12);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck,null,null,null,null,13);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true,14);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true,15);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true,null,18);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true,19);break;case 'FitWindow':B=new FCKToolbarButton('FitWindow',FCKLang.FitWindow,null,null,true,true,66);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true,20);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true,21);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true,22);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true,23);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true,24);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true,25);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true,26);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true,27);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true,28);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true,29);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true,34);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true,35);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor,null,null,null,null,36);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage,null,false,true,37);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash,null,false,true,38);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable,null,false,true,39);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar,null,false,true,42);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley,null,false,true,41);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak,null,false,true,43);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true,40);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true,30);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true,31);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true,32);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true,33);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor,null,null,45);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor,null,null,46);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find,null,null,null,null,16);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace,null,null,null,null,17);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form,null,null,null,null,48);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox,null,null,null,null,49);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton,null,null,null,null,50);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField,null,null,null,null,51);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea,null,null,null,null,52);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField,null,null,null,null,56);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button,null,null,null,null,54);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField,null,null,null,null,53);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton,null,null,null,null,55);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
+var FCKToolbar=function(){this.Items=[];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbar_Cleanup);};FCKToolbar.prototype.AddItem=function(A){return this.Items[this.Items.length]=A;};FCKToolbar.prototype.AddButton=function(A,B,C,D,E,F){if (typeof(D)=='number') D=[this.DefaultIconsStrip,this.DefaultIconSize,D];var G=new FCKToolbarButtonUI(A,B,C,D,E,F);G._FCKToolbar=this;G.OnClick=FCKToolbar_OnItemClick;return this.AddItem(G);};function FCKToolbar_OnItemClick(A){var B=A._FCKToolbar;if (B.OnItemClick) B.OnItemClick(B,A);};FCKToolbar.prototype.AddSeparator=function(){this.AddItem(new FCKToolbarSeparator());};FCKToolbar.prototype.Create=function(A){if (this.MainElement){if (this.MainElement.parentNode) this.MainElement.parentNode.removeChild(this.MainElement);this.MainElement=null;};var B=FCKTools.GetElementDocument(A);var e=this.MainElement=B.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=(FCKLang.Dir=='ltr'?'left':'right');e.dir=FCKLang.Dir;e.cellPadding=0;e.cellSpacing=0;this.RowElement=e.insertRow(-1);var C;if (!this.HideStart){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_Start';};for (var i=0;i<this.Items.length;i++){this.Items[i].Create(this.RowElement.insertCell(-1));};if (!this.HideEnd){C=this.RowElement.insertCell(-1);C.appendChild(B.createElement('div')).className='TB_End';};A.appendChild(e);};function FCKToolbar_Cleanup(){this.MainElement=null;this.RowElement=null;};var FCKToolbarSeparator=function(){};FCKToolbarSeparator.prototype.Create=function(A){FCKTools.AppendElement(A,'div').className='TB_Separator';}
+var FCKToolbarBreak=function(){};FCKToolbarBreak.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A).createElement('div');B.className='TB_Break';B.style.clear=FCKLang.Dir=='rtl'?'left':'right';A.appendChild(B);}
+function FCKToolbarSet_Create(A){var B;var C=A||FCKConfig.ToolbarLocation;switch (C){case 'In':document.getElementById('xToolbarRow').style.display='';B=new FCKToolbarSet(document);break;default:FCK.Events.AttachEvent('OnBlur',FCK_OnBlur);FCK.Events.AttachEvent('OnFocus',FCK_OnFocus);var D;var E=C.match(/^Out:(.+)\((\w+)\)$/);if (E){D=eval('parent.'+E[1]).document.getElementById(E[2]);}else{E=C.match(/^Out:(\w+)$/);if (E) D=parent.document.getElementById(E[1]);};if (!D){alert('Invalid value for "ToolbarLocation"');return this._Init('In');};B=D.__FCKToolbarSet;if (B) break;var F=FCKTools.GetElementDocument(D).createElement('iframe');F.frameBorder=0;F.width='100%';F.height='10';D.appendChild(F);F.unselectable='on';var G=F.contentWindow.document;G.open();G.write('<html><head><script type="text/javascript"> window.onload = window.onresize = function() { window.frameElement.height = document.body.scrollHeight ; } </script></head><body style="overflow: hidden">'+document.getElementById('xToolbarSpace').innerHTML+'</body></html>');G.close();G.oncontextmenu=FCKTools.CancelEvent;FCKTools.AppendStyleSheet(G,FCKConfig.SkinPath+'fck_editor.css');B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;B.onclick=FCKToolbarSet_Expand_OnClick;C.title=FCKLang.ToolbarCollapse;C.onclick=FCKToolbarSet_Collapse_OnClick;if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();C.style.display=FCKConfig.ToolbarCanCollapse?'':'none';if (FCKConfig.ToolbarCanCollapse) C.style.display='';else A.getElementById('xTBLeftBorder').style.display='';this.Toolbars=[];this.IsLoaded=false;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarSet_Cleanup);};function FCKToolbarSet_Expand_OnClick(){FCK.ToolbarSet.Expand();};function FCKToolbarSet_Collapse_OnClick(){FCK.ToolbarSet.Collapse();};FCKToolbarSet.prototype.Expand=function(){this._ChangeVisibility(false);};FCKToolbarSet.prototype.Collapse=function(){this._ChangeVisibility(true);};FCKToolbarSet.prototype._ChangeVisibility=function(A){this._Document.getElementById('xCollapsed').style.display=A?'':'none';this._Document.getElementById('xExpanded').style.display=A?'none':'';if (FCKBrowserInfo.IsGecko){FCKTools.RunFunction(window.onresize);}};FCKToolbarSet.prototype.Load=function(A){this.Name=A;this.Items=[];this.ItemsWysiwygOnly=[];this.ItemsContextSensitive=[];this._TargetElement.innerHTML='';var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=[];for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);this.Items.push(F);if (!F.SourceView) this.ItemsWysiwygOnly.push(F);if (F.ContextSensitive) this.ItemsContextSensitive.push(F);}}}};D.Create(this._TargetElement);this.Toolbars[this.Toolbars.length]=D;};FCKTools.DisableSelection(this._Document.getElementById('xCollapseHandle').parentNode);if (FCK.Status!=2) FCK.Events.AttachEvent('OnStatusChange',this.RefreshModeState);else this.RefreshModeState();this.IsLoaded=true;this.IsEnabled=true;FCKTools.RunFunction(this.OnLoad);};FCKToolbarSet.prototype.Enable=function(){if (this.IsEnabled) return;this.IsEnabled=true;var A=this.Items;for (var i=0;i<A.length;i++) A[i].RefreshState();};FCKToolbarSet.prototype.Disable=function(){if (!this.IsEnabled) return;this.IsEnabled=false;var A=this.Items;for (var i=0;i<A.length;i++) A[i].Disable();};FCKToolbarSet.prototype.RefreshModeState=function(A){if (FCK.Status!=2) return;var B=A?A.ToolbarSet:this;var C=B.ItemsWysiwygOnly;if (FCK.EditMode==0){for (var i=0;i<C.length;i++) C[i].Enable();B.RefreshItemsState(A);}else{B.RefreshItemsState(A);for (var j=0;j<C.length;j++) C[j].Disable();}};FCKToolbarSet.prototype.RefreshItemsState=function(A){var B=(A?A.ToolbarSet:this).ItemsContextSensitive;for (var i=0;i<B.length;i++) B[i].RefreshState();};
+var FCKDialog={};FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I={};I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
+FCKDialog.Show=function(A,B,C,D,E,F,G){if (!F) F=window;var H='help:no;scroll:no;status:no;resizable:'+(G?'yes':'no')+';dialogWidth:'+D+'px;dialogHeight:'+E+'px';FCKFocusManager.Lock();var I='B';try{I=F.showModalDialog(C,A,H);}catch(e) {};if ('B'===I) alert(FCKLang.DialogBlocked);FCKFocusManager.Unlock();};
+var FCKMenuItem=function(A,B,C,D,E){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.Activate();else{B.Deactivate();FCKTools.RunFunction(B.OnClick,B,[B]);}};function FCKMenuItem_OnMouseOver(A,B){B.Activate();};function FCKMenuItem_OnMouseOut(A,B){B.Deactivate();};function FCKMenuItem_Cleanup(){this.MainElement=null;}
+var FCKMenuBlock=function(){this._Items=[];};FCKMenuBlock.prototype.Count=function(){return this._Items.length;};FCKMenuBlock.prototype.AddItem=function(A,B,C,D){var E=new FCKMenuItem(this,A,B,C,D);E.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);E.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(E);return E;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i<this._Items.length;i++) this._Items[i].Create(this._ItemsTable);};function FCKMenuBlock_Item_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuBlock_Item_OnActivate(A){var B=A._ActiveItem;if (B&&B!=this){if (!FCKBrowserInfo.IsIE&&B.HasSubMenu&&!this.HasSubMenu) A._Window.focus();B.Deactivate();};A._ActiveItem=this;};function FCKMenuBlock_Cleanup(){this._Window=null;this._ItemsTable=null;};var FCKMenuSeparator=function(){};FCKMenuSeparator.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var r=A.insertRow(-1);var C=r.insertCell(-1);C.className='MN_Separator MN_Icon';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';C=r.insertCell(-1);C.className='MN_Separator';C.appendChild(B.createElement('DIV')).className='MN_Separator_Line';}
+var FCKMenuBlockPanel=function(){FCKMenuBlock.call(this);};FCKMenuBlockPanel.prototype=new FCKMenuBlock();FCKMenuBlockPanel.prototype.Create=function(){var A=this.Panel=(this.Parent&&this.Parent.Panel?this.Parent.Panel.CreateChildPanel():new FCKPanel());A.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');FCKMenuBlock.prototype.Create.call(this,A.MainNode);};FCKMenuBlockPanel.prototype.Show=function(x,y,A){if (!this.Panel.CheckIsOpened()) this.Panel.Show(x,y,A);};FCKMenuBlockPanel.prototype.Hide=function(){if (this.Panel.CheckIsOpened()) this.Panel.Hide();}
+var FCKContextMenu=function(A,B){var C=this._Panel=new FCKPanel(A,true);C.AppendStyleSheet(FCKConfig.SkinPath+'fck_editor.css');C.IsContextMenu=true;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;this._Document.addEventListener('contextmenu',FCKContextMenu_Document_OnContextMenu,false);}};FCKContextMenu.prototype.AddItem=function(A,B,C,D){var E=this._MenuBlock.AddItem(A,B,C,D);this._Redraw=true;return E;};FCKContextMenu.prototype.AddSeparator=function(){this._MenuBlock.AddSeparator();this._Redraw=true;};FCKContextMenu.prototype.RemoveAllItems=function(){this._MenuBlock.RemoveAllItems();this._Redraw=true;};FCKContextMenu.prototype.AttachToElement=function(A){if (FCKBrowserInfo.IsIE) FCKTools.AddEventListenerEx(A,'contextmenu',FCKContextMenu_AttachedElement_OnContextMenu,this);else A._FCKContextMenu=this;};function FCKContextMenu_Document_OnContextMenu(e){var A=e.target;while (A){if (A._FCKContextMenu){FCKTools.CancelEvent(e);FCKContextMenu_AttachedElement_OnContextMenu(e,A._FCKContextMenu,A);};A=A.parentNode;}};function FCKContextMenu_AttachedElement_OnContextMenu(A,B,C){var D=C||this;if (B.OnBeforeOpen) B.OnBeforeOpen.call(B,D);if (B._MenuBlock.Count()==0) return false;if (B._Redraw){B._MenuBlock.Create(B._Panel.MainNode);B._Redraw=false;};FCKTools.DisableSelection(B._Panel.Document.body);B._Panel.Show(A.pageX||A.screenX,A.pageY||A.screenY,A.currentTarget||null);return false;};function FCKContextMenu_MenuBlock_OnClick(A,B){B._Panel.Hide();FCKTools.RunFunction(B.OnItemClick,B,A);}
+FCK.ContextMenu={};FCK.ContextMenu.Listeners=[];FCK.ContextMenu.RegisterListener=function(A){if (A) this.Listeners.push(A);};function FCK_ContextMenu_Init(){var A=FCK.ContextMenu._InnerContextMenu=new FCKContextMenu(FCKBrowserInfo.IsIE?window:window.parent,FCKLang.Dir);A.OnBeforeOpen=FCK_ContextMenu_OnBeforeOpen;A.OnItemClick=FCK_ContextMenu_OnItemClick;var B=FCK.ContextMenu;for (var i=0;i<FCKConfig.ContextMenu.length;i++) B.RegisterListener(FCK_ContextMenu_GetListener(FCKConfig.ContextMenu[i]));};function FCK_ContextMenu_GetListener(A){switch (A){case 'Generic':return {AddItems:function(menu,tag,tagName){menu.AddItem('Cut',FCKLang.Cut,7,FCKCommands.GetCommand('Cut').GetState()==-1);menu.AddItem('Copy',FCKLang.Copy,8,FCKCommands.GetCommand('Copy').GetState()==-1);menu.AddItem('Paste',FCKLang.Paste,9,FCKCommands.GetCommand('Paste').GetState()==-1);}};case 'Table':return {AddItems:function(menu,tag,tagName){var B=(tagName=='TABLE');var C=(!B&&FCKSelection.HasAncestorNode('TABLE'));if (C){menu.AddSeparator();var D=menu.AddItem('Cell',FCKLang.CellCM);D.AddItem('TableInsertCell',FCKLang.InsertCell,58);D.AddItem('TableDeleteCells',FCKLang.DeleteCells,59);D.AddItem('TableMergeCells',FCKLang.MergeCells,60);D.AddItem('TableSplitCell',FCKLang.SplitCell,61);D.AddSeparator();D.AddItem('TableCellProp',FCKLang.CellProperties,57);menu.AddSeparator();D=menu.AddItem('Row',FCKLang.RowCM);D.AddItem('TableInsertRow',FCKLang.InsertRow,62);D.AddItem('TableDeleteRows',FCKLang.DeleteRows,63);menu.AddSeparator();D=menu.AddItem('Column',FCKLang.ColumnCM);D.AddItem('TableInsertColumn',FCKLang.InsertColumn,64);D.AddItem('TableDeleteColumns',FCKLang.DeleteColumns,65);};if (B||C){menu.AddSeparator();menu.AddItem('TableDelete',FCKLang.TableDelete);menu.AddItem('TableProp',FCKLang.TableProperties,39);}}};case 'Link':return {AddItems:function(menu,tag,tagName){var E=(tagName=='A'||FCKSelection.HasAncestorNode('A'));if (E||FCK.GetNamedCommandState('Unlink')!=-1){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0&&F.href.length==0);if (G) return;menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i<C.length;i++) C[i].AddItems(B,A,sTagName);};function FCK_ContextMenu_OnItemClick(A){FCK.Focus();FCKCommands.GetCommand(A.Name).Execute();};
+var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}
+var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var B=FCKConfig.Plugins.Items[i];var C=A[B[0]]=new FCKPlugin(B[0],B[1],B[2]);FCKPlugins.ItemsCount++;};for (var s in A) A[s].Load();FCKPlugins.Load=null;}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_1.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_1.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_1.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,27 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * This file has been compacted for best loading performance.
- */
-var FCKDebug=new Object();if (FCKConfig.Debug){FCKDebug.Output=function(A,B){if (!FCKConfig.Debug) return;if (A!=null&&isNaN(A)) A=A.replace(/</g,"&lt;");if (!this.DebugWindow||this.DebugWindow.closed) this.DebugWindow=window.open('fckdebug.html','FCKeditorDebug','menubar=no,scrollbars=no,resizable=yes,location=no,toolbar=no,width=600,height=500',true);if (this.DebugWindow.Output) this.DebugWindow.Output(A,B);};}else FCKDebug.Output=function() {};
-var FCKTools=new Object();FCKTools.GetLinkedFieldValue=function(){return FCK.LinkedField.value;};FCKTools.AttachToLinkedFieldFormSubmit=function(A){var B=FCK.LinkedField.form;if (!B) return;if (FCKBrowserInfo.IsIE) B.attachEvent("onsubmit",A);else B.addEventListener('submit',A,true);if (!B.updateFCKeditor) B.updateFCKeditor=new Array();B.updateFCKeditor[B.updateFCKeditor.length]=A;if (!B.originalSubmit&&(typeof(B.submit)=='function'||(!B.submit.tagName&&!B.submit.length))){B.originalSubmit=B.submit;B.submit=FCKTools_SubmitReplacer;};};function FCKTools_SubmitReplacer(){if (this.updateFCKeditor){for (var i=0;i<this.updateFCKeditor.length;i++) this.updateFCKeditor[i]();};this.originalSubmit();};FCKTools.AddSelectOption=function(A,B,C,D){var E=A.createElement("OPTION");E.text=C;E.value=D;B.options.add(E);return E;};FCKTools.RemoveAllSelectOptions=function(A){for (var i=A.options.length-1;i>=0;i--){A.options.remove(i);};};FCKTools.SelectNoCase=function(A,B,C){var D=B.toString().toLowerCase();for (var i=0;i<A.options.length;i++){if (D==A.options[i].value.toLowerCase()){A.selectedIndex=i;return;};};if (C!=null) FCKTools.SelectNoCase(A,C);};FCKTools.HTMLEncode=function(A){if (!A) return '';A=A.replace(/&/g,"&amp;");A=A.replace(/"/g,"&quot;");A=A.replace(/</g,"&lt;");A=A.replace(/>/g,"&gt;");A=A.replace(/'/g,"&#39;");return A;};FCKTools.GetResultingArray=function(A,B){switch (typeof(A)){case "string":return A.split(B);case "function":return B();default:if (isArray(A)) return A;else return new Array();};};FCKTools.GetElementPosition=function(A){var c={ X:0,Y:0 };while (A){c.X+=A.offsetLeft;c.Y+=A.offsetTop;A=A.offsetParent;};return c;};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.Pause=function(A){var B=new Date();while (true){var C=new Date();if (A<C-B) return;};};FCKTools.ConvertStyleSizeToHtml=function(A){return A.endsWith('%')?A:parseInt(A);};FCKTools.ConvertHtmlSizeToStyle=function(A){return A.endsWith('%')?A:(A+'px');};
-FCKTools.AppendStyleSheet=function(A,B){return A.createStyleSheet(B);};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=new Array();for (var i=0;i<A.all.length;i++){var C=A.all[i].id;if (C&&C.length>0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){};};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};}
-var FCKRegexLib=new Object();FCKRegexLib.AposEntity=/&apos;/gi;FCKRegexLib.ObjectElements=/^(?:IMG|TABLE|TR|TD|INPUT|SELECT|TEXTAREA|HR|OBJECT)$/i;FCKRegexLib.BlockElements=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TD)$/i;FCKRegexLib.EmptyElements=/^(?:BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT)$/i;FCKRegexLib.NamedCommands=/^(?:Cut|Copy|Paste|Print|SelectAll|RemoveFormat|Unlink|Undo|Redo|Bold|Italic|Underline|StrikeThrough|Subscript|Superscript|JustifyLeft|JustifyCenter|JustifyRight|JustifyFull|Outdent|Indent|InsertOrderedList|InsertUnorderedList|InsertHorizontalRule)$/i;FCKRegexLib.BodyContents=/([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i;FCKRegexLib.ToReplace=/___fcktoreplace:([\w]+)/ig;FCKRegexLib.MetaHttpEquiv=/http-equiv\s*=\s*["']?([^"' ]+)/i;FCKRegexLib.HasBaseTag=/<base /i;FCKRegexLib.HeadOpener=/<head\s?[^>]*>/i;FCKRegexLib.HeadCloser=/<\/head\s*>/i;FCKRegexLib.TableBorderClass=/\s*FCK__ShowTableBorders\s*/;FCKRegexLib.ElementName=/^[A-Za-z_:][\w.-:]*$/;FCKRegexLib.ForceSimpleAmpersand=/___FCKAmp___/g;FCKRegexLib.SpaceNoClose=/\/>/g;FCKRegexLib.EmptyParagraph=/^<(p|div)>\s*<\/\1>$/i;FCKRegexLib.TagBody=/></;FCKRegexLib.StrongOpener=/<STRONG([ \>])/gi;FCKRegexLib.StrongCloser=/<\/STRONG>/gi;FCKRegexLib.EmOpener=/<EM([ \>])/gi;FCKRegexLib.EmCloser=/<\/EM>/gi;FCKRegexLib.GeckoEntitiesMarker=/#\?-\:/g;
-FCKLanguageManager.GetActiveLanguage=function(){if (FCKConfig.AutoDetectLanguage){var A;if (navigator.userLanguage) A=navigator.userLanguage.toLowerCase();else if (navigator.language) A=navigator.language.toLowerCase();else{return FCKConfig.DefaultLanguage;};if (A.length>=5){A=A.substr(0,5);if (this.AvailableLanguages[A]) return A;};if (A.length>=2){A=A.substr(0,2);if (this.AvailableLanguages[A]) return A;};};return this.DefaultLanguage;};FCKLanguageManager.TranslateElements=function(A,B,C){var e=A.getElementsByTagName(B);for (var i=0;i<e.length;i++){var D=e[i].getAttribute('fckLang');if (D){var s=FCKLang[D];if (s) eval('e[i].'+C+' = s');};};};FCKLanguageManager.TranslatePage=function(A){this.TranslateElements(A,'INPUT','value');this.TranslateElements(A,'SPAN','innerHTML');this.TranslateElements(A,'LABEL','innerHTML');this.TranslateElements(A,'OPTION','innerHTML');};if (FCKLanguageManager.AvailableLanguages[FCKConfig.DefaultLanguage]) FCKLanguageManager.DefaultLanguage=FCKConfig.DefaultLanguage;else FCKLanguageManager.DefaultLanguage='en';FCKLanguageManager.ActiveLanguage=new Object();FCKLanguageManager.ActiveLanguage.Code=FCKLanguageManager.GetActiveLanguage();FCKLanguageManager.ActiveLanguage.Name=FCKLanguageManager.AvailableLanguages[FCKLanguageManager.ActiveLanguage.Code];FCK.Language=FCKLanguageManager;LoadLanguageFile();
-var FCKEvents;if (!(FCKEvents=NS.FCKEvents)){FCKEvents=NS.FCKEvents=function(A){this.Owner=A;this.RegisteredEvents=new Object();};FCKEvents.prototype.AttachEvent=function(A,B){if (!this.RegisteredEvents[A]) this.RegisteredEvents[A]=new Array();this.RegisteredEvents[A][this.RegisteredEvents[A].length]=B;};FCKEvents.prototype.FireEvent=function(A,B){var C=true;var D=this.RegisteredEvents[A];if (D){for (var i=0;i<D.length;i++) C=(D[i](this.Owner,B)&&C);};return C;};}
-var FCKXHtmlEntities=new Object();if (FCKConfig.ProcessHTMLEntities){FCKXHtmlEntities.Entities={' ':'nbsp','¡':'iexcl','¢':'cent','£':'pound','¤':'curren','¥':'yen','¦':'brvbar','§':'sect','¨':'uml','©':'copy','ª':'ordf','«':'laquo','¬':'not','­':'shy','®':'reg','¯':'macr','°':'deg','±':'plusmn','²':'sup2','³':'sup3','´':'acute','µ':'micro','¶':'para','·':'middot','¸':'cedil','¹':'sup1','º':'ordm','»':'raquo','¼':'frac14','½':'frac12','¾':'frac34','¿':'iquest','×':'times','÷':'divide','ƒ':'fnof','•':'bull','…':'hellip','′':'prime','″':'Prime','‾':'oline','⁄':'frasl','℘':'weierp','ℑ':'image','ℜ':'real','™':'trade','ℵ':'alefsym','←':'larr','↑':'uarr','→':'rarr','↓':'darr','↔':'harr','↵':'crarr','⇐':'lArr','⇑':'uArr','⇒':'rArr','⇓':'dArr','⇔':'hArr','∀':'forall','∂':'part','∃':'exist','∅':'empty','∇':'nabla','∈':'isin','∉':'notin','∋':'ni','∏':'prod','∑':'sum','−':'minus','∗':'lowast','√':'radic','∝':'prop','∞':'infin','∠':'ang','∧':'and','∨':'or','∩':'cap','∪':'cup','∫':'int','∴':'there4','∼':'sim','≅':'cong','≈':'asymp','≠':'ne','≡':'equiv','≤':'le','≥':'ge','⊂':'sub','⊃':'sup','⊄':'nsub','⊆':'sube','⊇':'supe','⊕':'oplus','⊗':'otimes','⊥':'perp','⋅':'sdot','◊':'loz','♠':'spades','♣':'clubs','♥':'hearts','♦':'diams','"':'quot','ˆ':'circ','˜':'tilde',' ':'ensp',' ':'emsp',' ':'thinsp','‌':'zwnj','‍':'zwj','‎':'lrm','‏':'rlm','–':'ndash','—':'mdash','‘':'lsquo','’':'rsquo','‚':'sbquo','“':'ldquo','”':'rdquo','„':'bdquo','†':'dagger','‡':'Dagger','‰':'permil','‹':'lsaquo','›':'rsaquo','€':'euro'};FCKXHtmlEntities.Chars='';for (var e in FCKXHtmlEntities.Entities) FCKXHtmlEntities.Chars+=e;if (FCKConfig.IncludeLatinEntities){var oEntities={'À':'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 (var e in oEntities){FCKXHtmlEntities.Entities[e]=oEntities[e];FCKXHtmlEntities.Chars+=e;};oEntities=null;};if (FCKConfig.IncludeGreekEntities){var oEntities={'Α':'Alpha','Β':'Beta','Γ':'Gamma','Δ':'Delta','Ε':'Epsilon','Ζ':'Zeta','Η':'Eta','Θ':'Theta','Ι':'Iota','Κ':'Kappa','Λ':'Lambda','Μ':'Mu','Ν':'Nu','Ξ':'Xi','Ο':'Omicron','Π':'Pi','Ρ':'Rho','Σ':'Sigma','Τ':'Tau','Υ':'Upsilon','Φ':'Phi','Χ':'Chi','Ψ':'Psi','Ω':'Omega','α':'alpha','β':'beta','γ':'gamma','δ':'delta','ε':'epsilon','ζ':'zeta','η':'eta','θ':'theta','ι':'iota','κ':'kappa','λ':'lambda','μ':'mu','ν':'nu','ξ':'xi','ο':'omicron','π':'pi','ρ':'rho','ς':'sigmaf','σ':'sigma','τ':'tau','υ':'upsilon','φ':'phi','χ':'chi','ψ':'psi','ω':'omega'};for (var e in oEntities){FCKXHtmlEntities.Entities[e]=oEntities[e];FCKXHtmlEntities.Chars+=e;};oEntities=null;};FCKXHtmlEntities.EntitiesRegex=new RegExp('','');FCKXHtmlEntities.EntitiesRegex.compile('['+FCKXHtmlEntities.Chars+']|[^'+FCKXHtmlEntities.Chars+']+','g');}else{FCKXHtmlEntities.Entities={ ' ':'nbsp' };FCKXHtmlEntities.EntitiesRegex=/[ ]|[^ ]+/g;}
-var FCKXHtml=new Object();FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKXHtml.SpecialBlocks=new Array();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 D=this._GetMainXmlString();D=D.substr(7,D.length-15).trim();if (FCKBrowserInfo.IsGecko) D=D.replace(/<br\/>$/,'');D=D.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) D=D.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) D=FCKCodeFormatter.Format(D);for (var i=0;i<FCKXHtml.SpecialBlocks.length;i++){var E=new RegExp('___FCKsi___'+i);D=D.replace(E,FCKXHtml.SpecialBlocks[i]);};this.XML=null;return D};FCKXHtml._AppendAttribute=function(A,B,C){try{var D=this.XML.createAttribute(B);D.value=C?C:'';A.attributes.setNamedItem(D);}catch (e){};};FCKXHtml._AppendChildNodes=function(A,B,C){var D=0;if (B.hasChildNodes()){var E=B.childNodes;for (var i=0;i<E.length;i++){if (this._AppendNode(A,E[i])) D++;};};if (D==0){if (C&&FCKConfig.FillEmptyBlocks){this._AppendEntity(A,'nbsp');return;};if (!FCKRegexLib.EmptyElements.test(B.nodeName)) A.appendChild(this.XML.createTextNode(''));};};FCKXHtml._AppendNode=function(A,B){switch (B.nodeType){case 1:if (B.getAttribute('_fckfakelement')) return FCKXHtml._AppendNode(A,FCK.GetRealElement(B));if (FCKBrowserInfo.IsGecko&&B.hasAttribute('_moz_editor_bogus_node')) return false;if (B.getAttribute('_fckdelete')) return false;var C=B.nodeName;if (!FCKRegexLib.ElementName.test(C)) return false;C=C.toLowerCase();if (FCKBrowserInfo.IsGecko&&C=='br'&&B.hasAttribute('type')&&B.getAttribute('type',2)=='_moz') return false;if (B._fckxhtmljob&&B._fckxhtmljob==FCKXHtml.CurrentJobNum) return false;else B._fckxhtmljob=FCKXHtml.CurrentJobNum;var D=this._CreateNode(C);FCKXHtml._AppendAttributes(A,B,D,C);var E=FCKXHtml.TagProcessors[C];if (E){D=E(D,B);if (!D) break;}else this._AppendChildNodes(D,B,FCKRegexLib.BlockElements.test(C));A.appendChild(D);break;case 3:this._AppendTextNode(A,B.nodeValue.replaceNewLineChars(' '));break;case 8: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;};if (FCKConfig.ForceStrongEm){FCKXHtml._CreateNode=function(A){switch (A){case 'b':A='strong';break;case 'i':A='em';break;};return this.XML.createElement(A);};}else{FCKXHtml._CreateNode=function(A){return this.XML.createElement(A);};};FCKXHtml._AppendSpecialItem=function(A){return '___FCKsi___'+FCKXHtml.SpecialBlocks.addItem(A);};FCKXHtml._AppendTextNode=function(A,B){var C=B.match(FCKXHtmlEntities.EntitiesRegex);if (C){for (var i=0;i<C.length;i++){if (C[i].length==1){var D=FCKXHtmlEntities.Entities[C[i]];if (D!=null){this._AppendEntity(A,D);continue;};};A.appendChild(this.XML.createTextNode(C[i]));};};};FCKXHtml.TagProcessors=new Object();FCKXHtml.TagProcessors['img']=function(A){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');return A;};FCKXHtml.TagProcessors['script']=function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;};FCKXHtml.TagProcessors['style']=function(A,B){if (B.getAttribute('_fcktemp')) return null;if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.innerHTML)));return A;};FCKXHtml.TagProcessors['title']=function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;};FCKXHtml.TagProcessors['base']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['link']=function(A,B){if (B.getAttribute('_fcktemp')) return null;return A;};FCKXHtml.TagProcessors['table']=function(A,B){var C=A.attributes.getNamedItem('class');if (C&&FCKRegexLib.TableBorderClass.test(C.nodeValue)){var D=C.nodeValue.replace(FCKRegexLib.TableBorderClass,'');if (D.length==0) A.attributes.removeNamedItem('class');else FCKXHtml._AppendAttribute(A,'class',D);};FCKXHtml._AppendChildNodes(A,B,false);return A;}
-FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendEntity=function(A,B){A.appendChild(this.XML.createEntityReference(B));};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes;for (var n=0;n<E.length;n++){var F=E[n];if (F.specified){var G=F.nodeName.toLowerCase();var H;if (G=='_fckxhtmljob') continue;else if (G=='style') H=B.style.cssText;else if (G=='class'||G.indexOf('on')==0) H=F.nodeValue;else if (D=='body'&&G=='contenteditable') continue;else if (F.nodeValue===true) H=G;else if (!(H=B.getAttribute(G,2))) H=F.nodeValue;if (FCKConfig.ForceSimpleAmpersand&&H.replace) H=H.replace(/&/g,'___FCKAmp___');this._AppendAttribute(C,G,H);};};};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);};};return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['abbr']=function(A,B){var C=B.nextSibling;while (true){if (C&&C.nodeName!='/ABBR'){FCKXHtml._AppendNode(A,C);C=C.nextSibling;}else break;};return A;};FCKXHtml.TagProcessors['area']=function(A,B){if (!A.attributes.getNamedItem('coords')){var C=B.getAttribute('coords',2);if (C&&C!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',C);};if (!A.attributes.getNamedItem('shape')){var C=B.getAttribute('shape',2);if (C&&C.length>0) FCKXHtml._AppendAttribute(A,'shape',C);};return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);FCKXHtml._AppendChildNodes(A,B);return A;} 
-var FCKCodeFormatter;if (!(FCKCodeFormatter=NS.FCKCodeFormatter)){FCKCodeFormatter=NS.FCKCodeFormatter=new Object();FCKCodeFormatter.Regex=new Object();FCKCodeFormatter.Regex.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi;FCKCodeFormatter.Regex.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|AREA|OPTION)[^\>]*\>/gi;FCKCodeFormatter.Regex.NewLineTags=/\<(BR|HR)[^\>]\>/gi;FCKCodeFormatter.Regex.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;FCKCodeFormatter.Regex.LineSplitter=/\s*\n+\s*/g;FCKCodeFormatter.Regex.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;FCKCodeFormatter.Regex.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;FCKCodeFormatter.Regex.FormatIndentatorRemove=new RegExp(FCKConfig.FormatIndentator);FCKCodeFormatter.Format=function(A){var B=A.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;};return B.trim();};}
-var FCKUndo=new Object();FCKUndo.SavedData=new Array();FCKUndo.CurrentIndex=-1;FCKUndo.TypesCount=FCKUndo.MaxTypes=25;FCKUndo.Typing=false;FCKUndo.SaveUndoStep=function(){FCKUndo.SavedData=FCKUndo.SavedData.slice(0,FCKUndo.CurrentIndex+1);var A=FCK.EditorDocument.body.innerHTML;if (FCKUndo.CurrentIndex>=0&&A==FCKUndo.SavedData[FCKUndo.CurrentIndex][0]) return;if (FCKUndo.CurrentIndex+1>=FCKConfig.MaxUndoLevels) FCKUndo.SavedData.shift();else FCKUndo.CurrentIndex++;var B;if (FCK.EditorDocument.selection.type=='Text') B=FCK.EditorDocument.selection.createRange().getBookmark();FCKUndo.SavedData[FCKUndo.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (FCKUndo.Typing||FCKUndo.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (!FCKUndo.Typing&&FCKUndo.CurrentIndex<(FCKUndo.SavedData.length-1));};FCKUndo.Undo=function(){if (FCKUndo.CheckUndoState()){if (FCKUndo.CurrentIndex==(FCKUndo.SavedData.length-1)){FCKUndo.SaveUndoStep();};FCKUndo._ApplyUndoLevel(--FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");};};FCKUndo.Redo=function(){if (FCKUndo.CheckRedoState()){FCKUndo._ApplyUndoLevel(++FCKUndo.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");};};FCKUndo._ApplyUndoLevel=function(A){var B=FCKUndo.SavedData[A];if (!B) return;FCK.SetInnerHtml(B[0]);if (B[1]){var C=FCK.EditorDocument.selection.createRange();C.moveToBookmark(B[1]);C.select();};FCKUndo.TypesCount=0;FCKUndo.Typing=false;}
-FCK.Events=new FCKEvents(FCK);FCK.Toolbar=null;FCK.TempBaseTag=FCKConfig.BaseHref.length>0?'<base href="'+FCKConfig.BaseHref+'" _fcktemp="true"></base>':'';FCK.StartEditor=function(){this.EditorWindow=window.frames['eEditorArea'];this.EditorDocument=this.EditorWindow.document;this.SetHTML(FCKTools.GetLinkedFieldValue());FCKTools.AttachToLinkedFieldFormSubmit(this.UpdateLinkedField);FCKUndo.SaveUndoStep();this.SetStatus(FCK_STATUS_ACTIVE);};function Window_OnFocus(){FCK.Focus();};FCK.SetStatus=function(A){this.Status=A;if (A==FCK_STATUS_ACTIVE){window.onfocus=window.document.body.onfocus=Window_OnFocus;if (FCKConfig.StartupFocus) FCK.Focus();if (FCKBrowserInfo.IsIE) FCKScriptLoader.AddScript('js/fckeditorcode_ie_2.js');else FCKScriptLoader.AddScript('js/fckeditorcode_gecko_2.js');};this.Events.FireEvent('OnStatusChange',A);};FCK.GetHTML=function(A){var B;if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){if (FCKBrowserInfo.IsIE) B=this.EditorDocument.body.innerHTML.replace(FCKRegexLib.ToReplace,'$1');else B=this.EditorDocument.body.innerHTML;}else B=document.getElementById('eSourceField').value;if (A) return FCKCodeFormatter.Format(B);else return B;};FCK.GetXHTML=function(A){var B=(FCK.EditMode==FCK_EDITMODE_SOURCE);if (B) this.SwitchEditMode();var C;if (FCKConfig.FullPage) C=FCKXHtml.GetXHTML(this.EditorDocument.getElementsByTagName('html')[0],true,A);else{if (FCKConfig.IgnoreEmptyParagraphValue&&this.EditorDocument.body.innerHTML=='<P>&nbsp;</P>') C='';else C=FCKXHtml.GetXHTML(this.EditorDocument.body,false,A);};if (B) this.SwitchEditMode();if (FCKBrowserInfo.IsIE) C=C.replace(FCKRegexLib.ToReplace,'$1');if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) C=FCK.DocTypeDeclaration+'\n'+C;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) C=FCK.XmlDeclaration+'\n'+C;return FCKConfig.ProtectedSource.Revert(C);};FCK.UpdateLinkedField=function(){if (FCKConfig.EnableXHTML) FCK.LinkedField.value=FCK.GetXHTML(FCKConfig.FormatOutput);else FCK.LinkedField.value=FCK.GetHTML(FCKConfig.FormatOutput);FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');};FCK.ShowContextMenu=function(x,y){if (this.Status!=FCK_STATUS_COMPLETE) return;FCKContextMenu.Show(x,y);this.Events.FireEvent("OnContextMenu");};FCK.RegisteredDoubleClickHandlers=new Object();FCK.OnDoubleClick=function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName];if (B) B(A);};FCK.RegisterDoubleClickHandler=function(A,B){FCK.RegisteredDoubleClickHandlers[B.toUpperCase()]=A;};FCK.OnAfterSetHTML=function(){var A,i=0;while((A=FCKDocumentProcessors[i++])) A.ProcessDocument(FCK.EditorDocument);this.Events.FireEvent('OnAfterSetHTML');};var FCKDocumentProcessors=new Array();var FCKDocumentProcessors_CreateFakeImage=function(A,B){var C=FCK.EditorDocument.createElement('IMG');C.className=A;C.src=FCKConfig.FullBasePath+'images/spacer.gif';C.setAttribute('_fckfakelement','true',0);C.setAttribute('_fckrealelement',FCKTempBin.AddElement(B),0);return C;};var FCKAnchorsProcessor=new Object();FCKAnchorsProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('A');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.name.length>0&&(!C.getAttribute('href')||C.getAttribute('href').length==0)){var D=FCKDocumentProcessors_CreateFakeImage('FCK__Anchor',C.cloneNode(true));D.setAttribute('_fckanchor','true',0);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKDocumentProcessors.addItem(FCKAnchorsProcessor);var FCKPageBreaksProcessor=new Object();FCKPageBreaksProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('CENTER');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.style.pageBreakAfter=='always'&&C.innerHTML.trim().length==0){var D=FCKDocumentProcessors_CreateFakeImage('FCK__PageBreak',C.cloneNode(true));C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKDocumentProcessors.addItem(FCKPageBreaksProcessor);var FCKFlashProcessor=new Object();FCKFlashProcessor.ProcessDocument=function(A){var B=A.getElementsByTagName('EMBED');var C;var i=B.length-1;while (i>=0&&(C=B[i--])){if (C.src.endsWith('.swf',true)){var D=FCKDocumentProcessors_CreateFakeImage('FCK__Flash',C.cloneNode(true));D.setAttribute('_fckflash','true',0);FCKFlashProcessor.RefreshView(D,C);C.parentNode.insertBefore(D,C);C.parentNode.removeChild(C);};};};FCKFlashProcessor.RefreshView=function(A,B){if (B.width>0) A.style.width=FCKTools.ConvertHtmlSizeToStyle(B.width);if (B.height>0) A.style.height=FCKTools.ConvertHtmlSizeToStyle(B.height);};FCKDocumentProcessors.addItem(FCKFlashProcessor);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;};
-FCK.Description="FCKeditor for Internet Explorer 5.5+";FCK._BehaviorsStyle='<style type="text/css" _fcktemp="true">\ INPUT { behavior:url(' + FCKConfig.FullBasePath + 'css/behaviors/hiddenfield.htc);} ';if (FCKConfig.ShowBorders) FCK._BehaviorsStyle+='TABLE { behavior: url('+FCKConfig.FullBasePath+'css/behaviors/showtableborders.htc) ; }';var sNoHandlers='INPUT, TEXTAREA, SELECT, .FCK__Anchor, .FCK__PageBreak';if (FCKConfig.DisableImageHandles) sNoHandlers+=', IMG';if (FCKConfig.DisableTableHandles) sNoHandlers+=', TABLE';FCK._BehaviorsStyle+=sNoHandlers+' { behavior: url('+FCKConfig.FullBasePath+'css/behaviors/disablehandles.htc) ; }';FCK._BehaviorsStyle+='</style>';function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;};};function Doc_OnPaste(){if (FCK.Status==FCK_STATUS_COMPLETE) return FCK.Events.FireEvent("OnPaste");else return false;};function Doc_OnContextMenu(){var e=FCK.EditorWindow.event;FCK.ShowContextMenu(e.screenX,e.screenY);return false;};function Doc_OnKeyDown(){var e=FCK.EditorWindow.event;switch (e.keyCode){case 13:if (FCKConfig.UseBROnCarriageReturn&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();if (FCK.EditorDocument.queryCommandState('InsertOrderedList')||FCK.EditorDocument.queryCommandState('InsertUnorderedList')) return true;FCK.InsertHtml('<br>&nbsp;');var oRange=FCK.EditorDocument.selection.createRange();oRange.moveStart('character',-1);oRange.select();FCK.EditorDocument.selection.clear();return false;};break;case 9:if (FCKConfig.TabSpaces>0&&!(e.ctrlKey||e.altKey||e.shiftKey)){Doc_OnKeyDownUndo();FCK.InsertHtml(window.FCKTabHTML);return false;};break;case 90:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Undo();return false;};break;case 89:if (e.ctrlKey&&!(e.altKey||e.shiftKey)){FCKUndo.Redo();return false;};break;};if (!(e.keyCode>=16&&e.keyCode<=18)) Doc_OnKeyDownUndo();return true;};function Doc_OnKeyDownUndo(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();};};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){FCK.Events.FireEvent("OnSelectionChange");};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.attachEvent('oncontextmenu',Doc_OnContextMenu);if (FCKConfig.TabSpaces>0){window.FCKTabHTML='';for (i=0;i<FCKConfig.TabSpaces;i++) window.FCKTabHTML+="&nbsp;";};this.EditorDocument.attachEvent("onkeydown",Doc_OnKeyDown);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);};FCK.Focus=function(){try{if (FCK.EditMode==FCK_EDITMODE_WYSIWYG) FCK.EditorDocument.body.focus();else document.getElementById('eSourceField').focus();}catch(e) {};};FCK.SetHTML=function(A,B){if (B||FCK.EditMode==FCK_EDITMODE_WYSIWYG){A=FCKConfig.ProtectedSource.Protect(A);var C;if (FCKConfig.FullPage){var C=FCK._BehaviorsStyle+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) C+=FCK.TempBaseTag;C=A.replace(FCKRegexLib.HeadOpener,'$&'+C);}else{C=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'"';if (FCKConfig.IEForceVScroll) C+=' style="overflow-y: scroll"';C+='><head><title></title>'+'<link href="'+FCKConfig.EditorAreaCSS+'" rel="stylesheet" type="text/css" />'+'<link href="'+FCKConfig.FullBasePath+'css/fck_internal.css'+'" rel="stylesheet" type="text/css" _fcktemp="true" />';C+=FCK._BehaviorsStyle;C+=FCK.TempBaseTag;C+='</head><body>'+A+'</body></html>';};this.EditorDocument.open('','_self','',true);this.EditorDocument.write(C);this.EditorDocument.close();this.InitializeBehaviors();this.EditorDocument.body.contentEditable=true;FCK.OnAfterSetHTML();}else document.getElementById('eSourceField').value=A;};FCK.InsertHtml=function(A){FCK.Focus();FCKUndo.SaveUndoStep();var B=FCK.EditorDocument.selection;if (B.type.toLowerCase()!="none") B.clear();B.createRange().pasteHTML(A);};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='<div id="__fakeFCKRemove__">&nbsp;</div>'+A;B.getElementById('__fakeFCKRemove__').removeNode(true);}

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_2.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_2.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/js/fckeditorcode_ie_2.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,56 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * This file has been compacted for best loading performance.
- */
-FCK.RedirectNamedCommands=new Object();FCK.ExecuteNamedCommand=function(A,B){FCKUndo.SaveUndoStep();if (FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};FCKUndo.SaveUndoStep();};FCK.GetNamedCommandState=function(A){try{if (!FCK.EditorDocument.queryCommandEnabled(A)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(A)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;};};FCK.GetNamedCommandValue=function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==FCK_TRISTATE_DISABLED) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.Preview=function(){var A=FCKConfig.ScreenWidth*0.8;var B=FCKConfig.ScreenHeight*0.7;var C=(FCKConfig.ScreenWidth-A)/2;var D=window.open('',null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+A+',height='+B+',left='+C);var E;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) E=FCK.GetXHTML().replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);else E=FCK.GetXHTML();}else{E=FCKConfig.DocType+'<html dir="'+FCKConfig.ContentLangDirection+'">'+'<head><title>'+FCKLang.Preview+'</title>'+'<link href="'+FCKConfig.EditorAreaCSS+'" rel="stylesheet" type="text/css" />'+FCK.TempBaseTag+'</head><body>'+FCK.GetXHTML()+'</body></html>';};D.document.write(E);D.document.close();};FCK.SwitchEditMode=function(){var A=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);document.getElementById('eWysiwyg').style.display=A?'none':'';document.getElementById('eSource').style.display=A?'':'none';if (A){if (FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();document.getElementById('eSourceField').value=(FCKConfig.EnableXHTML&&FCKConfig.EnableSourceXHTML?FCK.GetXHTML(FCKConfig.FormatSource):FCK.GetHTML(FCKConfig.FormatSource));}else FCK.SetHTML(FCK.GetHTML(),true);FCK.EditMode=A?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCKToolbarSet.RefreshModeState();FCK.Focus();};FCK.CreateElement=function(A){var e=FCK.EditorDocument.createElement(A);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('__FCKTempLabel',1);this.InsertElement(e);var A=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<A.length;i++){if (A[i].getAttribute('__FCKTempLabel')){A[i].removeAttribute('__FCKTempLabel');return A[i];};};return null;};
-FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;}else if (FCKConfig.AutoDetectPasteFromWord){var A=FCK.GetClipboardHTML();var B=/<\w[^>]* class="?MsoNormal"?/gi;if (B.test(A)){if (confirm(FCKLang["PasteWordConfirm"])){FCK.PasteFromWord();return false;};};}else return true;};FCK.PasteAsPlainText=function(){var A=FCKTools.HTMLEncode(clipboardData.getData("Text"));A=A.replace(/\n/g,'<BR>');this.InsertHtml(A);};FCK.InsertElement=function(A){FCK.InsertHtml(A.outerHTML);};FCK.GetClipboardHTML=function(){var A=document.getElementById('___FCKHiddenDiv');if (!A){var A=document.createElement('DIV');A.id='___FCKHiddenDiv';A.style.visibility='hidden';A.style.overflow='hidden';A.style.position='absolute';A.style.width=1;A.style.height=1;document.body.appendChild(A);};A.innerHTML='';var C=document.body.createTextRange();C.moveToElementText(A);C.execCommand('Paste');var D=A.innerHTML;A.innerHTML='';return D;};FCK.AttachToOnSelectionChange=function(A){this.Events.AttachEvent('OnSelectionChange',A);};FCK.CreateLink=function(A){FCK.ExecuteNamedCommand('Unlink');if (A.length>0){var B='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',B);var C=this.EditorDocument.links;for (i=0;i<C.length;i++){if (C[i].href==B){C[i].href=A;return C[i];};};};};
-var FCKSelection=new Object();FCK.Selection=FCKSelection;
-FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=FCK.EditorDocument.selection.createRange();if (A&&A.item) return FCK.EditorDocument.selection.createRange().item(0);};};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':return FCKSelection.GetSelectedElement().parentElement;case 'None':return;default:return FCK.EditorDocument.selection.createRange().parentElement();};};FCKSelection.SelectNode=function(A){FCK.Focus();FCK.EditorDocument.selection.empty();var B=FCK.EditorDocument.selection.createRange();B.moveToElementText(A);B.select();};FCKSelection.Collapse=function(A){FCK.Focus();var B=FCK.EditorDocument.selection.createRange();B.collapse(A==null||A===true);B.select();};FCKSelection.HasAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){B=this.GetSelectedElement();}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B){if (B.tagName==A) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;if (FCK.EditorDocument.selection.type=="Control"){var C=FCK.EditorDocument.selection.createRange();for (i=0;i<C.length;i++){if (C(i).parentNode){B=C(i).parentNode;break;};};}else{var C=FCK.EditorDocument.selection.createRange();B=C.parentElement();};while (B&&B.nodeName!=A) B=B.parentNode;return B;};FCKSelection.Delete=function(){var A=FCK.EditorDocument.selection;if (A.type.toLowerCase()!="none"){A.clear();};return A;};
-var FCKPanel=function(A){this.Window=A?A:window;};function FCKPanel_OnContextMenu() { return false;};FCKPanel.prototype.Create=function(){this._Popup=this.Window.createPopup();this.Document=this._Popup.document;aCleanupDocs[aCleanupDocs.length]=this.Document;this.Document.oncontextmenu=FCKPanel_OnContextMenu;if (this.StyleSheet) FCKTools.AppendStyleSheet(this.Document,this.StyleSheet);this.PanelDiv=this.Document.body.appendChild(this.Document.createElement('DIV'));this.PanelDiv.className='FCK_Panel';this.Created=true;};FCKPanel.prototype.Show=function(A,B,C,D,E,F){if (!this.Created) this._Create();this._Popup.show(A,B,0,0,C);if (D==null||(F&&D>this.PanelDiv.offsetWidth)) var G=this.PanelDiv.offsetWidth;else var G=D;if (E==null||(F&&E>this.PanelDiv.offsetHeight)) var I=this.PanelDiv.offsetHeight;else var I=E;this.PanelDiv.style.height=I;this._Popup.show(A,B,G,I,C);};FCKPanel.prototype.Hide=function(){if (this._Popup) this._Popup.hide();}
-var FCKTableHandler=new Object();FCKTableHandler.InsertRow=function(){var A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=A.cloneNode(true);A.parentNode.insertBefore(B,A);FCKTableHandler.ClearRow(A);};FCKTableHandler.DeleteRows=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TR");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');if (B.rows.length==1){FCKTableHandler.DeleteTable(B);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A) A=FCKSelection.MoveToAncestorNode("TABLE");if (!A) return;A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) A=FCKSelection.MoveToAncestorNode("TH");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex+1;for (var i=0;i<B.rows.length;i++){var D=B.rows[i];if (D.cells.length<C) continue;A=D.cells[C-1].cloneNode(false);if (FCKBrowserInfo.IsGecko) A.innerHTML=FCKBrowserInfo.IsGecko?GECKO_BOGUS:'';var E=D.cells[C];if (E) D.insertBefore(A,E);else D.appendChild(A);};};FCKTableHandler.DeleteColumns=function(){var A=FCKSelection.MoveToAncestorNode("TD");if (!A) return;var B=FCKTools.GetElementAscensor(A,'TABLE');var C=A.cellIndex;for (var i=B.rows.length-1;i>=0;i--){var D=B.rows[i];if (C==0&&D.cells.length==1){FCKTableHandler.DeleteRows(D);continue;};if (D.cells[C]) D.removeChild(D.cells[C]);};};FCKTableHandler.InsertCell=function(A){var B=A?A:FCKSelection.MoveToAncestorNode("TD");if (!B) return;var C=FCK.EditorDocument.createElement("TD");if (FCKBrowserInfo.IsGecko) C.innerHTML=GECKO_BOGUS;if (B.cellIndex==B.parentNode.cells.lenght-1){B.parentNode.appendChild(C);}else{B.parentNode.insertBefore(C,B.nextSibling);};return C;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);};};FCKTableHandler.MergeCells=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length<2) return;if (A[0].parentNode!=A[A.length-1].parentNode) return;var B=isNaN(A[0].colSpan)?1:A[0].colSpan;var C='';for (var i=A.length-1;i>0;i--){B+=isNaN(A[i].colSpan)?1:A[i].colSpan;C=A[i].innerHTML+C;FCKTableHandler.DeleteCell(A[i]);};A[0].colSpan=B;A[0].innerHTML+=C;};FCKTableHandler.SplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=this._CreateTableMap(A[0].parentNode.parentNode);var C=FCKTableHandler._GetCellIndexSpan(B,A[0].parentNode.rowIndex,A[0]);var D=this._GetCollumnCells(B,C);for (var i=0;i<D.length;i++){if (D[i]==A[0]){var E=this.InsertCell(A[0]);if (!isNaN(A[0].rowSpan)&&A[0].rowSpan>1) E.rowSpan=A[0].rowSpan;}else{if (isNaN(D[i].colSpan)) D[i].colSpan=2;else D[i].colSpan+=1;};};};FCKTableHandler._GetCellIndexSpan=function(A,B,C){if (A.length<B+1) return null;var D=A[B];for (var c=0;c<D.length;c++){if (D[c]==C) return c;};return null;};FCKTableHandler._GetCollumnCells=function(A,B){var C=new Array();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=new Array();for (var i=0;i<B.length;i++){r++;if (!C[r]) C[r]=new Array();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]=new Array();for (var H=0;H<E;H++){C[r+G][c+H]=B[i].cells[j];};};c+=E-1;};};return C;};FCKTableHandler.ClearRow=function(A){var B=A.cells;for (var i=0;i<B.length;i++){if (FCKBrowserInfo.IsGecko) B[i].innerHTML=GECKO_BOGUS;else B[i].innerHTML='';};}
-FCKTableHandler.GetSelectedCells=function(){var A=new Array();var B=FCK.EditorDocument.selection.createRange();var C=B.parentElement();if (C&&C.tagName=="TD") A[0]=C;else{var C=FCKSelection.MoveToAncestorNode("TABLE");if (C){for (var i=0;i<C.cells.length;i++){var E=FCK.EditorDocument.selection.createRange();E.moveToElementText(C.cells[i]);if (B.inRange(E)||(B.compareEndPoints('StartToStart',E)>=0&&B.compareEndPoints('StartToEnd',E)<=0)||(B.compareEndPoints('EndToStart',E)>=0&&B.compareEndPoints('EndToEnd',E)<=0)){A[A.length]=C.cells[i];};};};};return A;};
-var FCKXml;if (!(FCKXml=NS.FCKXml)){FCKXml=NS.FCKXml=function(){this.Error=false;};FCKXml.prototype.LoadUrl=function(A){this.Error=false;var B=FCKTools.CreateXmlObject('XmlHttp');if (!B){this.Error=true;return;};B.open("GET",A,false);B.send(null);if (B.status==200||B.status==304) this.DOMDocument=B.responseXML;else if (B.status==0&&B.readyState==4){this.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');this.DOMDocument.async=false;this.DOMDocument.resolveExternals=false;this.DOMDocument.loadXML(B.responseText);}else{this.Error=true;alert('Error loading "'+A+'"');};};FCKXml.prototype.SelectNodes=function(A,B){if (this.Error) return new Array();if (B) return B.selectNodes(A);else return this.DOMDocument.selectNodes(A);};FCKXml.prototype.SelectSingleNode=function(A,B){if (this.Error) return;if (B) return B.selectSingleNode(A);else return this.DOMDocument.selectSingleNode(A);};}
-var FCKStyleDef=function(A,B){this.Name=A;this.Element=B.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes=new Object();};FCKStyleDef.prototype.AddAttribute=function(A,B){this.Attributes[A]=B;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCKSelection.GetSelectedElement());else this._RemoveMe(FCKSelection.GetParentElement());}
-FCKStyleDef.prototype.ApplyToSelection=function(){var A=FCK.EditorDocument.selection;if (A.type=='Text'){var B=A.createRange();var e=document.createElement(this.Element);e.innerHTML=B.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);B.pasteHTML(e.outerHTML);}else if (A.type=='Control'){var C=FCKSelection.GetSelectedElement();if (C.tagName==this.Element) this._AddAttributes(C);};};FCKStyleDef.prototype._AddAttributes=function(A){for (var a in this.Attributes){if (a.toLowerCase()=='style') A.style.cssText=this.Attributes[a];else A.setAttribute(a,this.Attributes[a],0);};};FCKStyleDef.prototype._RemoveDuplicates=function(A){for (var i=0;i<A.children.length;i++){var B=A.children[i];this._RemoveDuplicates(B);if (this.IsEqual(B)){B.insertAdjacentHTML('beforeBegin',B.innerHTML);B.parentElement.removeChild(B);};};};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;};};return true;};FCKStyleDef.prototype._RemoveMe=function(A){if (!A) return;var B=A.parentElement;if (this.IsEqual(A)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':A.removeAttribute('className',0);break;default:A.removeAttribute(a,0);};};return;}else FCKTools.RemoveOuterTags(A);};this._RemoveMe(B);}
-var FCKStylesLoader=function(){this.Styles=new Object();this.StyleGroups=new Object();this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(A){var B=new FCKXml();B.LoadUrl(A);var C=B.SelectNodes('Styles/Style');for (var i=0;i<C.length;i++){var D=C[i].attributes.getNamedItem('element').value.toUpperCase();var E=new FCKStyleDef(C[i].attributes.getNamedItem('name').value,D);if (E.IsObjectElement) this.HasObjectElements=true;var F=B.SelectNodes('Attribute',C[i]);for (var j=0;j<F.length;j++){var G=F[j].attributes.getNamedItem('name').value;var H=F[j].attributes.getNamedItem('value').value;if (G.toLowerCase()=='style'){var I=document.createElement('SPAN');I.style.cssText=H;H=I.style.cssText;};E.AddAttribute(G,H);};this.Styles[E.Name]=E;var J=this.StyleGroups[D];if (J==null){this.StyleGroups[D]=new Array();J=this.StyleGroups[D];};J[J.length]=E;};this.Loaded=true;}
-var FCKNamedCommand=function(A){this.Name=A;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
-var FCKDialogCommand=function(A,B,C,D,E,F,G){this.Name=A;this.Title=B;this.Url=C;this.Width=D;this.Height=E;this.GetStateFunction=F;this.GetStateParam=G;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK_TRISTATE_OFF;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(A){if (A==null||A==""){}else FCK.ExecuteNamedCommand('FontName',A);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(A){if (typeof(A)=='string') A=parseInt(A);if (A==null||A==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',A);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(A){if (A==null||A=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else FCK.ExecuteNamedCommand('FormatBlock','<'+A+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var A=FCK.LinkedField.form;if (typeof(A.onsubmit)=='function'){var B=A.onsubmit();if (B!=null&&B===false) return;};A.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();FCK.SetHTML('');FCKUndo.Typing=true;};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSourceCommand=function(){this.Name='Source';};FCKSourceCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsGecko){var A=FCKConfig.ScreenWidth*0.65;var B=FCKConfig.ScreenHeight*0.65;FCKDialog.OpenDialog('FCKDialog_Source',FCKLang.Source,'dialog/fck_source.html',A,B,null,null,true);}else FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);};var FCKUndoCommand=function(){this.Name='Undo';};FCKUndoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Undo();else FCK.ExecuteNamedCommand('Undo');};FCKUndoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckUndoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Undo');};var FCKRedoCommand=function(){this.Name='Redo';};FCKRedoCommand.prototype.Execute=function(){if (FCKBrowserInfo.IsIE) FCKUndo.Redo();else FCK.ExecuteNamedCommand('Redo');};FCKRedoCommand.prototype.GetState=function(){if (FCKBrowserInfo.IsIE) return (FCKUndo.CheckRedoState()?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED);else return FCK.GetNamedCommandState('Redo');};var FCKPageBreakCommand=function(){this.Name='PageBreak';};FCKPageBreakCommand.prototype.Execute=function(){var A=FCK.EditorDocument.createElement('CENTER');A.style.pageBreakAfter='always';var B=FCKDocumentProcessors_CreateFakeImage('FCK__PageBreak',A);B=FCK.InsertElement(B);};FCKPageBreakCommand.prototype.GetState=function(){return 0;}
-var FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;};};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var A=new ActiveXObject("ieSpell.ieSpellExtension");A.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');};};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
-var FCKTextColorCommand=function(A){this.Name=A=='ForeColor'?'TextColor':'BGColor';this.Type=A;this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._CreatePanelBody(this._Panel.Document,this._Panel.PanelDiv);};FCKTextColorCommand.prototype.Execute=function(A,B,C){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(A,B,C);};FCKTextColorCommand.prototype.SetColor=function(A){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',A);else if (FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('hilitecolor',A);else FCK.ExecuteNamedCommand('BackColor',A);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};function FCKTextColorCommand_OnMouseOver()	{ this.className='ColorSelected';};function FCKTextColorCommand_OnMouseOut()	{ this.className='ColorDeselected';};function FCKTextColorCommand_OnClick(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};function FCKTextColorCommand_AutoOnClick(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};function FCKTextColorCommand_MoreOnClick(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};FCKTextColorCommand.prototype._CreatePanelBody=function(A,B){function CreateSelectionDiv(){var C=A.createElement("DIV");C.className='ColorDeselected';C.onmouseover=FCKTextColorCommand_OnMouseOver;C.onmouseout=FCKTextColorCommand_OnMouseOut;return C;};var D=B.appendChild(A.createElement("TABLE"));D.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">\<tr>\<td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\<td nowrap width="100%" align="center" unselectable="on">' + FCKLang.ColorAutomatic + '</td>\</tr>\</table>';C.Command=this;C.onclick=FCKTextColorCommand_AutoOnClick;var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H<G.length){var I=D.insertRow(-1);for (var i=0;i<8&&H<G.length;i++,H++){C=I.insertCell(-1).appendChild(CreateSelectionDiv());C.Color=G[H];C.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+G[H]+'"></div></div>';C.Command=this;C.onclick=FCKTextColorCommand_OnClick;};};E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';C.Command=this;C.onclick=FCKTextColorCommand_MoreOnClick;}
-var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
-var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCKConfig.ForcePasteAsPlainText) return FCK_TRISTATE_DISABLED;else return FCK.GetNamedCommandState('Paste');};
-var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));};};FCKTableCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;}
-var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(A,B){FCKUndo.SaveUndoStep();if (B.Selected) B.Style.RemoveFromSelection();else B.Style.ApplyToSelection();FCKUndo.SaveUndoStep();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){var A=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var A=new Array();if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),A,false);else this._CheckStyle(FCKSelection.GetParentElement(),A,true);return A;};FCKStyleCommand.prototype._CheckStyle=function(A,B,C){if (!A) return;if (A.nodeType==1){var D=this.StylesLoader.StyleGroups[A.tagName];if (D){for (var i=0;i<D.length;i++){if (D[i].IsEqual(A)) B[B.length]=D[i];};};};if (C) this._CheckStyle(A.parentNode,B,C);}
-var FCKCommands=FCK.Commands=new Object();FCKCommands.LoadedCommands=new Object();FCKCommands.RegisterCommand=function(A,B){this.LoadedCommands[A]=B;};FCKCommands.GetCommand=function(A){var B=FCKCommands.LoadedCommands[A];if (B) return B;switch (A){case 'DocProps':B=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Templates':B=new FCKDialogCommand('Templates',FCKLang.DlgTemplatesTitle,'dialog/fck_template.html',380,450);break;case 'Link':B=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'Anchor':B=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':B=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html',370,170);break;case 'NumberedList':B=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html',370,170);break;case 'About':B=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':B=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':B=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':B=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400);break;case 'Flash':B=new FCKDialogCommand('Flash',FCKLang.DlgFlashTitle,'dialog/fck_flash.html',450,400);break;case 'SpecialChar':B=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,300);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',400,250);break;case 'TableProp':B=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':B=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',500,250);break;case 'UniversalKey':B=new FCKDialogCommand('UniversalKey',FCKLang.UniversalKeyboard,'dialog/fck_universalkey.html',415,300);break;case 'Style':B=new FCKStyleCommand();break;case 'FontName':B=new FCKFontNameCommand();break;case 'FontSize':B=new FCKFontSizeCommand();break;case 'FontFormat':B=new FCKFormatBlockCommand();break;case 'Source':B=new FCKSourceCommand();break;case 'Preview':B=new FCKPreviewCommand();break;case 'Save':B=new FCKSaveCommand();break;case 'NewPage':B=new FCKNewPageCommand();break;case 'PageBreak':B=new FCKPageBreakCommand();break;case 'TextColor':B=new FCKTextColorCommand('ForeColor');break;case 'BGColor':B=new FCKTextColorCommand('BackColor');break;case 'PasteText':B=new FCKPastePlainTextCommand();break;case 'PasteWord':B=new FCKPasteWordCommand();break;case 'TableInsertRow':B=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':B=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':B=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':B=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':B=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':B=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':B=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':B=new FCKTableCommand('TableSplitCell');break;case 'Form':B=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':B=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':B=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':B=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':B=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':B=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':B=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':B=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':B=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':B=new FCKSpellCheckCommand();break;case 'Undo':B=new FCKUndoCommand();break;case 'Redo':B=new FCKRedoCommand();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?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};
-var FCKToolbarButton=function(A,B,C,D,E,F){this.Command=FCKCommands.GetCommand(A);this.Label=B?B:A;this.Tooltip=C?C:(B?B:A);this.Style=D?D:FCK_TOOLBARITEM_ONLYICON;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';this.State=FCK_UNKNOWN;};FCKToolbarButton.prototype.CreateInstance=function(A){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;var B='<table title="'+this.Tooltip+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>';if (this.Style!=FCK_TOOLBARITEM_ONLYTEXT) B+='<td class="TB_Icon" unselectable="on"><img src="'+this.IconPath+'" width="21" height="21" unselectable="on"></td>';if (this.Style!=FCK_TOOLBARITEM_ONLYICON) B+='<td class="TB_Text" unselectable="on" nowrap>'+this.Label+'</td>';B+='</tr>'+'</table>';this.DOMDiv.innerHTML=B;var C=A.DOMRow.insertCell(-1);C.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarButton.prototype.RefreshState=function(){var A=this.Command.GetState();if (A==this.State) return;this.State=A;switch (this.State){case FCK_TRISTATE_ON:this.DOMDiv.className='TB_Button_On';this.DOMDiv.onmouseover=FCKToolbarButton_OnMouseOnOver;this.DOMDiv.onmouseout=FCKToolbarButton_OnMouseOnOut;this.DOMDiv.onclick=FCKToolbarButton_OnClick;break;case FCK_TRISTATE_OFF:this.DOMDiv.className='TB_Button_Off';this.DOMDiv.onmouseover=FCKToolbarButton_OnMouseOffOver;this.DOMDiv.onmouseout=FCKToolbarButton_OnMouseOffOut;this.DOMDiv.onclick=FCKToolbarButton_OnClick;break;default:this.Disable();break;};};function FCKToolbarButton_OnMouseOnOver(){this.className='TB_Button_On TB_Button_On_Over';};function FCKToolbarButton_OnMouseOnOut(){this.className='TB_Button_On';};function FCKToolbarButton_OnMouseOffOver(){this.className='TB_Button_On TB_Button_Off_Over';};function FCKToolbarButton_OnMouseOffOut(){this.className='TB_Button_Off';};function FCKToolbarButton_OnClick(e){this.FCKToolbarButton.Click(e);return false;};FCKToolbarButton.prototype.Click=function(){this.Command.Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this.DOMDiv.className='TB_Button_Disabled';this.DOMDiv.onmouseover=null;this.DOMDiv.onmouseout=null;this.DOMDiv.onclick=null;}
-var FCKSpecialCombo=function(A){this.FieldWidth=80;this.PanelWidth=130;this.PanelMaxHeight=150;this.Label='&nbsp;';this.Caption=A;this.Tooltip=A;this.Style=FCK_TOOLBARITEM_ICONTEXT;this.Enabled=true;this.Items=new Object();this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._Panel.PanelDiv.className+=' SC_Panel';this._Panel.PanelDiv.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._Panel.PanelDiv.getElementsByTagName('TD')[0];};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(){this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};FCKSpecialCombo.prototype.AddItem=function(A,B,C){var D=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));D.className=D.originalClass='SC_Item';D.innerHTML=B;D.FCKItemID=A;D.FCKItemLabel=C?C:A;D.FCKSpecialCombo=this;D.Selected=false;D.onmouseover=FCKSpecialCombo_ItemOnMouseOver;D.onmouseout=FCKSpecialCombo_ItemOnMouseOut;D.onclick=FCKSpecialCombo_ItemOnClick;this.Items[A.toString().toLowerCase()]=D;return D;};FCKSpecialCombo.prototype.SelectItem=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];if (B){B.className=B.originalClass='SC_ItemSelected';B.Selected=true;};};FCKSpecialCombo.prototype.DeselectAll=function(){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){this.Label=A.length==0?'&nbsp;':A;if (this._LabelEl) this._LabelEl.innerHTML=this.Label;};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){this._OuterTable=A.appendChild(document.createElement('TABLE'));this._OuterTable.cellPadding=0;this._OuterTable.cellSpacing=0;this._OuterTable.insertRow(-1);var B;var C;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:B='TB_ButtonType_Icon';C=false;break;case FCK_TOOLBARITEM_ONLYTEXT:B='TB_ButtonType_Text';C=false;break;case FCK_TOOLBARITEM_ICONTEXT:C=true;break;};if (this.Caption&&this.Caption.length>0&&C){var D=this._OuterTable.rows[0].insertCell(-1);D.unselectable='on';D.innerHTML=this.Caption;D.className='SC_FieldCaption';};var E=this._OuterTable.rows[0].insertCell(-1).appendChild(document.createElement('DIV'));if (C){E.className='SC_Field';E.style.width=this.FieldWidth+'px';E.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldLabel" unselectable="on"><label unselectable="on">&nbsp;</label></td><td class="SC_FieldButton" unselectable="on">&nbsp;</td></tr></tbody></table>';this._LabelEl=E.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{E.className='TB_Button_Off';E.innerHTML='<table cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldButton" style="border-left: none;" unselectable="on">&nbsp;</td></tr></tbody></table>';E.innerHTML='<table title="'+this.Tooltip+'" class="'+B+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>'+'<td class="TB_Text" unselectable="on">'+this.Caption+'</td>'+'<td class="TB_ButtonArrow" unselectable="on"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'</tr>'+'</table>';};E.SpecialCombo=this;E.onmouseover=FCKSpecialCombo_OnMouseOver;E.onmouseout=FCKSpecialCombo_OnMouseOut;E.onclick=FCKSpecialCombo_OnClick;};function FCKSpecialCombo_OnMouseOver(){if (this.SpecialCombo.Enabled){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_On';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_On';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field SC_FieldOver';break;};};};function FCKSpecialCombo_OnMouseOut(){switch (this.SpecialCombo.Style){case FCK_TOOLBARITEM_ONLYICON:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ONLYTEXT:this.className='TB_Button_Off';break;case FCK_TOOLBARITEM_ICONTEXT:this.className='SC_Field';break;};};function FCKSpecialCombo_OnClick(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.SpecialCombo.Enabled){var oPanel=this.SpecialCombo._Panel;if (typeof(this.SpecialCombo.OnBeforeClick)=='function') this.SpecialCombo.OnBeforeClick(this.SpecialCombo);if (this.SpecialCombo._ItemsHolderEl.offsetHeight>this.SpecialCombo.PanelMaxHeight) oPanel.PanelDiv.style.height=this.SpecialCombo.PanelMaxHeight+'px';else oPanel.PanelDiv.style.height=this.SpecialCombo._ItemsHolderEl.offsetHeight+'px';oPanel.PanelDiv.style.width=this.SpecialCombo.PanelWidth+'px';if (FCKBrowserInfo.IsGecko) oPanel.PanelDiv.style.overflow='-moz-scrollbars-vertical';oPanel.Show(0,this.offsetHeight,this,null,this.SpecialCombo.PanelMaxHeight,true);};return false;};
-var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};function FCKToolbarSpecialCombo_OnSelect(itemId,item){this.Command.Execute(itemId,item);};FCKToolbarSpecialCombo.prototype.CreateInstance=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel());this._Combo.FieldWidth=this.FieldWidth!=null?this.FieldWidth:100;this._Combo.PanelWidth=this.PanelWidth!=null?this.PanelWidth:150;this._Combo.PanelMaxHeight=this.PanelMaxHeight!=null?this.PanelMaxHeight:150;this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A.DOMRow.insertCell(-1));this._Combo.Command=this.Command;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(combo,value){combo.DeselectAll();combo.SelectItem(value);combo.SetLabelById(value);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=this.Command.GetState();if (B!=FCK_TRISTATE_DISABLED){A=FCK_TRISTATE_ON;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}else A=FCK_TRISTATE_DISABLED;if (A==this.State) return;if (A==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=FCK_TRISTATE_DISABLED);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}
-var FCKToolbarFontsCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontName');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(A){var B=FCKConfig.FontNames.split(';');for (var i=0;i<B.length;i++) this._Combo.AddItem(B[i],'<span style="font-family: \''+B[i]+'\'; font-size: 12px;">'+B[i]+'</span>');}
-var FCKToolbarFontSizeCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontSize');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(A){A.FieldWidth=70;var B=FCKConfig.FontSizes.split(';');for (var i=0;i<B.length;i++){var C=B[i].split('/');this._Combo.AddItem(C[0],'<font size="'+C[0]+'">'+C[1]+'</font>',C[1]);};}
-var FCKToolbarFontFormatCombo=function(A,B){this.Command=FCKCommands.GetCommand('FontFormat');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;this.PanelWidth=190;};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(A){var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]};var D=FCKConfig.FontFormats.split(';');for (var i=0;i<D.length;i++){if (D[i]=='div'&&FCKBrowserInfo.IsGecko) continue;this._Combo.AddItem(D[i],'<'+D[i]+'>'+C[D[i]]+'</'+D[i]+'>',C[D[i]]);};}
-var FCKToolbarStyleCombo=function(A,B){this.Command=FCKCommands.GetCommand('Style');this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:FCK_TOOLBARITEM_ICONTEXT;};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){FCKTools.AppendStyleSheet(A._Panel.Document,FCKConfig.EditorAreaCSS);if (!FCKBrowserInfo.IsGecko) A.OnBeforeClick=this.RefreshVisibleItems;for (var s in this.Command.Styles){var B=this.Command.Styles[s];var C;if (B.IsObjectElement) C=A.AddItem(s,s);else C=A.AddItem(s,B.GetOpenerTag()+s+B.GetCloserTag());C.Style=B;};};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){A.DeselectAll();var B=this.Command.GetActiveStyles();if (B.length>0){for (var i=0;i<B.length;i++) A.SelectItem(B[i].Name);A.SetLabelById(B[0].Name);}else A.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(A){if (FCKSelection.GetType()=='Control') var B=FCKSelection.GetSelectedElement().tagName;for (var i in A.Items){var C=A.Items[i];if ((B&&C.Style.Element==B)||(!B&&!C.Style.IsObjectElement)) C.style.display='';else C.style.display='none';};}
-var FCKToolbarPanelButton=function(A,B,C,D){this.Command=FCKCommands.GetCommand(A);this.Label=B?B:A;this.Tooltip=C?C:(B?B:A);this.Style=D?D:FCK_TOOLBARITEM_ONLYICON;this.State=FCK_UNKNOWN;};FCKToolbarPanelButton.prototype.Click=function(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.State!=FCK_TRISTATE_DISABLED){this.Command.Execute(0,this.DOMDiv.offsetHeight,this.DOMDiv);};return false;};FCKToolbarPanelButton.prototype.CreateInstance=function(A){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;var B='<table title="'+this.Tooltip+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>';if (this.Style!=FCK_TOOLBARITEM_ONLYTEXT) B+='<td class="TB_Icon" unselectable="on"><img src="'+FCKConfig.SkinPath+'toolbar/'+this.Command.Name.toLowerCase()+'.gif" width="21" height="21" unselectable="on"></td>';if (this.Style!=FCK_TOOLBARITEM_ONLYICON) B+='<td class="TB_Text" unselectable="on" nowrap>'+this.Label+'</td>';B+='<td class="TB_ButtonArrow" unselectable="on"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'</tr>'+'</table>';this.DOMDiv.innerHTML=B;var C=A.DOMRow.insertCell(-1);C.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
-var FCKToolbarItems=new Object();FCKToolbarItems.LoadedItems=new Object();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,FCK_TOOLBARITEM_ICONTEXT,true,true);break;case 'DocProps':B=new FCKToolbarButton('DocProps',FCKLang.DocProps);break;case 'Templates':B=new FCKToolbarButton('Templates',FCKLang.Templates);break;case 'Save':B=new FCKToolbarButton('Save',FCKLang.Save,null,null,true);break;case 'NewPage':B=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true);break;case 'Preview':B=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true);break;case 'About':B=new FCKToolbarButton('About',FCKLang.About,null,null,true);break;case 'Cut':B=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true);break;case 'Copy':B=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true);break;case 'Paste':B=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true);break;case 'PasteText':B=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true);break;case 'PasteWord':B=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true);break;case 'Print':B=new FCKToolbarButton('Print',FCKLang.Print,null,null,false,true);break;case 'SpellCheck':B=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck);break;case 'Undo':B=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true);break;case 'Redo':B=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true);break;case 'SelectAll':B=new FCKToolbarButton('SelectAll',FCKLang.SelectAll);break;case 'RemoveFormat':B=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true);break;case 'Bold':B=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true);break;case 'Italic':B=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true);break;case 'Underline':B=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true);break;case 'StrikeThrough':B=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true);break;case 'Subscript':B=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true);break;case 'Superscript':B=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true);break;case 'OrderedList':B=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true);break;case 'UnorderedList':B=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true);break;case 'Outdent':B=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true);break;case 'Indent':B=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true);break;case 'Link':B=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true);break;case 'Unlink':B=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true);break;case 'Anchor':B=new FCKToolbarButton('Anchor',FCKLang.Anchor);break;case 'Image':B=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage);break;case 'Flash':B=new FCKToolbarButton('Flash',FCKLang.InsertFlashLbl,FCKLang.InsertFlash);break;case 'Table':B=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable);break;case 'SpecialChar':B=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar);break;case 'Smiley':B=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley);break;case 'PageBreak':B=new FCKToolbarButton('PageBreak',FCKLang.PageBreakLbl,FCKLang.PageBreak);break;case 'UniversalKey':B=new FCKToolbarButton('UniversalKey',FCKLang.UniversalKeyboard);break;case 'Rule':B=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine,null,false,true);break;case 'JustifyLeft':B=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true);break;case 'JustifyCenter':B=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true);break;case 'JustifyRight':B=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true);break;case 'JustifyFull':B=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true);break;case 'Style':B=new FCKToolbarStyleCombo();break;case 'FontName':B=new FCKToolbarFontsCombo();break;case 'FontSize':B=new FCKToolbarFontSizeCombo();break;case 'FontFormat':B=new FCKToolbarFontFormatCombo();break;case 'TextColor':B=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor);break;case 'BGColor':B=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor);break;case 'Find':B=new FCKToolbarButton('Find',FCKLang.Find);break;case 'Replace':B=new FCKToolbarButton('Replace',FCKLang.Replace);break;case 'Form':B=new FCKToolbarButton('Form',FCKLang.Form);break;case 'Checkbox':B=new FCKToolbarButton('Checkbox',FCKLang.Checkbox);break;case 'Radio':B=new FCKToolbarButton('Radio',FCKLang.RadioButton);break;case 'TextField':B=new FCKToolbarButton('TextField',FCKLang.TextField);break;case 'Textarea':B=new FCKToolbarButton('Textarea',FCKLang.Textarea);break;case 'HiddenField':B=new FCKToolbarButton('HiddenField',FCKLang.HiddenField);break;case 'Button':B=new FCKToolbarButton('Button',FCKLang.Button);break;case 'Select':B=new FCKToolbarButton('Select',FCKLang.SelectionField);break;case 'ImageButton':B=new FCKToolbarButton('ImageButton',FCKLang.ImageButton);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,A));return null;};FCKToolbarItems.LoadedItems[A]=B;return B;}
-var FCKToolbar=function(){this.Items=new Array();var e=this.DOMTable=document.createElement('table');e.className='TB_Toolbar';e.style.styleFloat=e.style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';e.cellPadding=0;e.cellSpacing=0;e.border=0;this.DOMRow=e.insertRow(-1);var A=this.DOMRow.insertCell(-1);A.className='TB_Start';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.start.gif" width="7" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';FCKToolbarSet.DOMElement.appendChild(e);};FCKToolbar.prototype.AddItem=function(A){this.Items[this.Items.length]=A;A.CreateInstance(this);};FCKToolbar.prototype.AddSeparator=function(){var A=this.DOMRow.insertCell(-1);A.unselectable='on';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.separator.gif" width="5" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};FCKToolbar.prototype.AddTerminator=function(){var A=this.DOMRow.insertCell(-1);A.className='TB_End';A.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.end.gif" width="12" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};
-var FCKToolbarBreak=function(){var A=document.createElement('div');A.className='TB_Break';A.style.clear=FCKLang.Dir=='rtl'?'left':'right';FCKToolbarSet.DOMElement.appendChild(A);}
-var FCKToolbarSet=FCK.ToolbarSet=new Object();document.getElementById('ExpandHandle').title=FCKLang.ToolbarExpand;document.getElementById('CollapseHandle').title=FCKLang.ToolbarCollapse;FCKToolbarSet.Toolbars=new Array();FCKToolbarSet.ItemsWysiwygOnly=new Array();FCKToolbarSet.ItemsContextSensitive=new Array();FCKToolbarSet.Expand=function(){document.getElementById('Collapsed').style.display='none';document.getElementById('Expanded').style.display='';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Collapse=function(){document.getElementById('Collapsed').style.display='';document.getElementById('Expanded').style.display='none';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Restart=function(){if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();document.getElementById('CollapseHandle').style.display=FCKConfig.ToolbarCanCollapse?'':'none';};FCKToolbarSet.Load=function(A){this.DOMElement=document.getElementById('eToolbar');var B=FCKConfig.ToolbarSets[A];if (!B){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,A));return;};this.Toolbars=new Array();for (var x=0;x<B.length;x++){var C=B[x];var D;if (typeof(C)=='string'){if (C=='/') D=new FCKToolbarBreak();}else{D=new FCKToolbar();for (var j=0;j<C.length;j++){var E=C[j];if (E=='-') D.AddSeparator();else{var F=FCKToolbarItems.GetItem(E);if (F){D.AddItem(F);if (!F.SourceView) this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length]=F;if (F.ContextSensitive) this.ItemsContextSensitive[this.ItemsContextSensitive.length]=F;};};};D.AddTerminator();};this.Toolbars[this.Toolbars.length]=D;};};FCKToolbarSet.RefreshModeState=function(){if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Enable();FCKToolbarSet.RefreshItemsState();}else{FCKToolbarSet.RefreshItemsState();for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Disable();};};FCKToolbarSet.RefreshItemsState=function(){for (var i=0;i<FCKToolbarSet.ItemsContextSensitive.length;i++) FCKToolbarSet.ItemsContextSensitive[i].RefreshState();};
-var FCKDialog=new Object();FCKDialog.OpenDialog=function(A,B,C,D,E,F,G,H){var I=new Object();I.Title=B;I.Page=C;I.Editor=window;I.CustomValue=F;var J=FCKConfig.BasePath+'fckdialog.html';this.Show(I,A,J,D,E,G,H);};
-FCKDialog.Show=function(A,B,C,D,E,F){if (!F) F=window;F.showModalDialog(C,A,"dialogWidth:"+D+"px;dialogHeight:"+E+"px;help:no;scroll:no;status:no");};
-var FCKContextMenuItem=function(A,B,C,D){this.ContextMenu=A;this.Command=FCKCommands.GetCommand(B);this.Label=C?C:B;this.HasIcon=D?true:false;};function FCKContextMenuItem_OnMouseOver(){if (this.className!='CM_Disabled') this.className='CM_Over';};function FCKContextMenuItem_OnMouseOut(){if (this.className!='CM_Disabled') this.className='CM_Option';};function FCKContextMenuItem_OnClick(){if (this.className!='CM_Disabled'){this.FCKContextMenuItem.ContextMenu.Hide();this.FCKContextMenuItem.Command.Execute();};return false;};FCKContextMenuItem.prototype.CreateTableRow=function(A){this._Row=A.insertRow(-1);this._Row.className='CM_Disabled';this._Row.FCKContextMenuItem=this;this._Row.onmouseover=FCKContextMenuItem_OnMouseOver;this._Row.onmouseout=FCKContextMenuItem_OnMouseOut;this._Row.onclick=FCKContextMenuItem_OnClick;var B=this._Row.insertCell(-1);B.className='CM_Icon';if (this.HasIcon) B.innerHTML='<img alt="" src="'+FCKConfig.SkinPath+'toolbar/'+this.Command.Name.toLowerCase()+'.gif" width="21" height="20" unselectable="on">';B=this._Row.insertCell(-1);B.className='CM_Label';B.unselectable='on';B.noWrap=true;B.innerHTML=this.Label;};FCKContextMenuItem.prototype.SetVisible=function(A){this._Row.style.display=A?'':'none';};FCKContextMenuItem.prototype.RefreshState=function(){switch (this.Command.GetState()){case FCK_TRISTATE_ON:case FCK_TRISTATE_OFF:this._Row.className='CM_Option';break;default:this._Row.className='CM_Disabled';break;};};
-var FCKContextMenuSeparator=function(){};FCKContextMenuSeparator.prototype.CreateTableRow=function(A){this._Row=A.insertRow(-1);this._Row.className='CM_Separator';var B=this._Row.insertCell(-1);B.className='CM_Icon';B=this._Row.insertCell(-1);B.className='CM_Label';B.innerHTML='<div></div>';};FCKContextMenuSeparator.prototype.SetVisible=function(A){this._Row.style.display=A?'':'none';};FCKContextMenuSeparator.prototype.RefreshState=function(){};
-var FCKContextMenuGroup=function(A,B,C,D,E){this.IsVisible=true;this.Items=new Array();if (A) this.Add(new FCKContextMenuSeparator());if (B&&C&&D) this.Add(new FCKContextMenuItem(B,C,D,E));this.ValidationFunction=null;};FCKContextMenuGroup.prototype.Add=function(A){this.Items[this.Items.length]=A;};FCKContextMenuGroup.prototype.CreateTableRows=function(A){for (var i=0;i<this.Items.length;i++){this.Items[i].CreateTableRow(A);};};FCKContextMenuGroup.prototype.SetVisible=function(A){for (var i=0;i<this.Items.length;i++){this.Items[i].SetVisible(A);};this.IsVisible=A;};FCKContextMenuGroup.prototype.RefreshState=function(){if (!this.IsVisible) return;for (var i=0;i<this.Items.length;i++){this.Items[i].RefreshState();};}
-var FCKContextMenu=new Object();FCKContextMenu._IsLoaded=false;FCKContextMenu.Reload=function(){this._Div=this._Document.createElement('DIV');this._Div.className='CM_ContextMenu';this._Div.style.position='absolute';this._Div.style.visibility='hidden';this._Document.body.appendChild(this._Div);var A=this._Document.createElement('TABLE');A.cellSpacing=0;A.cellPadding=0;A.border=0;this._Div.appendChild(A);this.Groups=new Object();for (var i=0;i<FCKConfig.ContextMenu.length;i++){var B=FCKConfig.ContextMenu[i];this.Groups[B]=this._GetGroup(B);this.Groups[B].CreateTableRows(A);};this._IsLoaded=true;};FCKContextMenu._GetGroup=function(A){var B;switch (A){case 'Generic':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuItem(this,'Cut',FCKLang.Cut,true));B.Add(new FCKContextMenuItem(this,'Copy',FCKLang.Copy,true));B.Add(new FCKContextMenuItem(this,'Paste',FCKLang.Paste,true));break;case 'Link':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'Link',FCKLang.EditLink,true));B.Add(new FCKContextMenuItem(this,'Unlink',FCKLang.RemoveLink,true));break;case 'TableCell':B=new FCKContextMenuGroup();B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertRow',FCKLang.InsertRow,true));B.Add(new FCKContextMenuItem(this,'TableDeleteRows',FCKLang.DeleteRows,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertColumn',FCKLang.InsertColumn,true));B.Add(new FCKContextMenuItem(this,'TableDeleteColumns',FCKLang.DeleteColumns,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableInsertCell',FCKLang.InsertCell,true));B.Add(new FCKContextMenuItem(this,'TableDeleteCells',FCKLang.DeleteCells,true));B.Add(new FCKContextMenuItem(this,'TableMergeCells',FCKLang.MergeCells,true));B.Add(new FCKContextMenuItem(this,'TableSplitCell',FCKLang.SplitCell,true));B.Add(new FCKContextMenuSeparator());B.Add(new FCKContextMenuItem(this,'TableCellProp',FCKLang.CellProperties,true));B.Add(new FCKContextMenuItem(this,'TableProp',FCKLang.TableProperties,true));break;case 'Table':return new FCKContextMenuGroup(true,this,'Table',FCKLang.TableProperties,true);case 'Image':return new FCKContextMenuGroup(true,this,'Image',FCKLang.ImageProperties,true);case 'Flash':return new FCKContextMenuGroup(true,this,'Flash',FCKLang.FlashProperties,true);case 'Form':return new FCKContextMenuGroup(true,this,'Form',FCKLang.FormProp,true);case 'Checkbox':return new FCKContextMenuGroup(true,this,'Checkbox',FCKLang.CheckboxProp,true);case 'Radio':return new FCKContextMenuGroup(true,this,'Radio',FCKLang.RadioButtonProp,true);case 'TextField':return new FCKContextMenuGroup(true,this,'TextField',FCKLang.TextFieldProp,true);case 'HiddenField':return new FCKContextMenuGroup(true,this,'HiddenField',FCKLang.HiddenFieldProp,true);case 'ImageButton':return new FCKContextMenuGroup(true,this,'ImageButton',FCKLang.ImageButtonProp,true);case 'Button':return new FCKContextMenuGroup(true,this,'Button',FCKLang.ButtonProp,true);case 'Select':return new FCKContextMenuGroup(true,this,'Select',FCKLang.SelectionFieldProp,true);case 'Textarea':return new FCKContextMenuGroup(true,this,'Textarea',FCKLang.TextareaProp,true);case 'BulletedList':return new FCKContextMenuGroup(true,this,'BulletedList',FCKLang.BulletedListProp,true);case 'NumberedList':return new FCKContextMenuGroup(true,this,'NumberedList',FCKLang.NumberedListProp,true);case 'Anchor':return new FCKContextMenuGroup(true,this,'Anchor',FCKLang.AnchorProp,true);};return B;};FCKContextMenu.RefreshState=function(){var A=FCKSelection.GetSelectedElement();var B;if (A) B=A.tagName;if (this.Groups['Link'])			this.Groups['Link'].SetVisible(FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED);if (this.Groups['TableCell'])		this.Groups['TableCell'].SetVisible(B!='TABLE'&&FCKSelection.HasAncestorNode('TABLE'));if (this.Groups['Table'])			this.Groups['Table'].SetVisible(B=='TABLE');if (this.Groups['Image'])			this.Groups['Image'].SetVisible(B=='IMG'&&!A.getAttribute('_fckfakelement'));if (this.Groups['Flash'])			this.Groups['Flash'].SetVisible(B=='IMG'&&A.getAttribute('_fckflash'));if (this.Groups['Anchor'])		this.Groups['Anchor'].SetVisible(B=='IMG'&&A.getAttribute('_fckanchor'));if (this.Groups['BulletedList'])	this.Groups['BulletedList'].SetVisible(FCKSelection.HasAncestorNode('UL'));if (this.Groups['NumberedList'])	this.Groups['NumberedList'].SetVisible(FCKSelection.HasAncestorNode('OL'));if (this.Groups['Select'])		this.Groups['Select'].SetVisible(B=='SELECT');if (this.Groups['Textarea'])		this.Groups['Textarea'].SetVisible(B=='TEXTAREA');if (this.Groups['Form'])			this.Groups['Form'].SetVisible(FCKSelection.HasAncestorNode('FORM'));if (this.Groups['Checkbox'])		this.Groups['Checkbox'].SetVisible(B=='INPUT'&&A.type=='checkbox');if (this.Groups['Radio'])			this.Groups['Radio'].SetVisible(B=='INPUT'&&A.type=='radio');if (this.Groups['TextField'])		this.Groups['TextField'].SetVisible(B=='INPUT'&&(A.type=='text'||A.type=='password'));if (this.Groups['HiddenField'])	this.Groups['HiddenField'].SetVisible(B=='INPUT'&&A.type=='hidden');if (this.Groups['ImageButton'])	this.Groups['ImageButton'].SetVisible(B=='INPUT'&&A.type=='image');if (this.Groups['Button'])		this.Groups['Button'].SetVisible(B=='INPUT'&&(A.type=='button'||A.type=='submit'||A.type=='reset'));for (var o in this.Groups){this.Groups[o].RefreshState();};};
-function FCKContextMenu_OnContextMenu() { return false;};FCKContextMenu.Show=function(x,y){if (!this._Popup){this._Popup=window.createPopup();this._Document=this._Popup.document;this._Document.createStyleSheet(FCKConfig.SkinPath+'fck_contextmenu.css');this._Document.oncontextmenu=FCKContextMenu_OnContextMenu;aCleanupDocs[aCleanupDocs.length]=this._Document;};if (!this._IsLoaded){this.Reload();this._Div.style.visibility='';};this.RefreshState();this._Popup.show(x,y,0,0);this._Popup.show(x,y,this._Div.offsetWidth,this._Div.offsetHeight);};FCKContextMenu.Hide=function(){if (this._Popup) this._Popup.hide();}
-if (!FCKConfig.PluginsPath.endsWith('/')) FCKConfig.PluginsPath+='/';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=new Array();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];FCKScriptLoader.AddScript(this.Path+'lang/'+A+'.js');};FCKScriptLoader.AddScript(this.Path+'fckplugin.js');}
-var FCKPlugins=FCK.Plugins=new Object();FCKPlugins.ItemsCount=0;FCKPlugins.Loaded=false;FCKPlugins.Items=new Object();for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var oItem=FCKConfig.Plugins.Items[i];FCKPlugins.Items[oItem[0]]=new FCKPlugin(oItem[0],oItem[1],oItem[2]);FCKPlugins.ItemsCount++;};FCKPlugins.Load=function(){for (var s in this.Items) this.Items[s].Load();this.Loaded=true;FCKPlugins.Load=null;}
-if (FCKLang&&window.document.dir.toLowerCase()!=FCKLang.Dir.toLowerCase()) window.document.dir=FCKLang.Dir;if (FCKConfig.ForcePasteAsPlainText) FCK.Events.AttachEvent("OnPaste",FCK.Paste);if (FCKPlugins.ItemsCount>0){FCKScriptLoader.OnEmpty=CompleteLoading;FCKPlugins.Load();}else CompleteLoading();function CompleteLoading(){FCKToolbarSet.Name=FCKURLParams['Toolbar']||'Default';FCKToolbarSet.Load(FCKToolbarSet.Name);FCKToolbarSet.Restart();FCK.AttachToOnSelectionChange(FCKToolbarSet.RefreshItemsState);FCK.SetStatus(FCK_STATUS_COMPLETE);if (typeof(window.parent.FCKeditor_OnComplete)=='function') window.parent.FCKeditor_OnComplete(FCK);}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/_getfontformat.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/_getfontformat.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/_getfontformat.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+-->
+<html>
+	<head>
+		<title></title>
+	</head>
+	<script language="javascript">
+
+window.onload = function()
+{
+	var oRange = document.selection.createRange() ;
+
+	var sNormal ;
+	var sFormats = '' ;
+	for ( var i = 1 ; i <= 9 ; i++ )
+	{
+		oRange.moveToElementText( document.getElementById( 'x' + i ) ) ;
+		sFormats += oRange.queryCommandValue( 'FormatBlock' ) ;
+		if ( i == 1 )
+			sNormal = sFormats ;
+		sFormats += ';' ;
+	}
+
+	document.getElementById('xFontFormats').innerHTML = sFormats + sNormal + ' (DIV)' ;
+}
+	</script>
+	<body>
+		<table width="70%" align="center">
+			<tr>
+				<td>
+					<h3>FontFormats Localization</h3>
+					<p>
+						IE has some limits when handling the "Font Format". It actually uses localized
+						strings to retrieve the current format value. This makes it very difficult to
+						make a system that works on every single computer in the world.
+					</p>
+					<p>
+						With FCKeditor, this problem impacts in the "Format" toolbar command that
+						doesn't reflects the format of the current cursor position.
+					</p>
+					<p>
+						There is only one way to make it work. We must localize FCKeditor using the
+						strings used by IE. In this way, we will have the expected behavior at least
+						when using FCKeditor in the same language as the browser. So, when localizing
+						FCKeditor, go to a computer with IE in the target language, open this page and
+						use the following string to the "FontFormats" value:
+					</p>
+					<div style="white-space: nowrap">
+						FontFormats : "<span id="xFontFormats" style="COLOR: #000099"></span>",
+					</div>
+				</td>
+			</tr>
+		</table>
+		<div style="DISPLAY: none">
+			<p id="x1">&nbsp;</p>
+			<pre id="x2">&nbsp;</pre>
+			<address id="x3">&nbsp;</address>
+			<h1 id="x4">&nbsp;</h1>
+			<h2 id="x5">&nbsp;</h2>
+			<h3 id="x6">&nbsp;</h3>
+			<h4 id="x7">&nbsp;</h4>
+			<h5 id="x8">&nbsp;</h5>
+			<h6 id="x9">&nbsp;</h6>
+		</div>
+	</body>
+</html>

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/_translationstatus.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/_translationstatus.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/_translationstatus.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,67 +1,76 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: _translationstatus.txt
- * 	Translation Status.
- * 	A useful site with languages information:
- * 	http://www.omniglot.com/
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Translations Status.
  */
 
-PROCESSING: ar.js      Found: 375   Missing: 2
-PROCESSING: bg.js      Found: 375   Missing: 2
-PROCESSING: bs.js      Found: 232   Missing: 145
-PROCESSING: ca.js      Found: 375   Missing: 2
-PROCESSING: cs.js      Found: 352   Missing: 25
-PROCESSING: da.js      Found: 375   Missing: 2
-PROCESSING: de.js      Found: 375   Missing: 2
-PROCESSING: el.js      Found: 232   Missing: 145
-PROCESSING: en-au.js   Found: 375   Missing: 2
-PROCESSING: en-uk.js   Found: 375   Missing: 2
-PROCESSING: eo.js      Found: 352   Missing: 25
-PROCESSING: es.js      Found: 375   Missing: 2
-PROCESSING: et.js      Found: 232   Missing: 145
-PROCESSING: eu.js      Found: 375   Missing: 2
-PROCESSING: fa.js      Found: 358   Missing: 19
-PROCESSING: fi.js      Found: 375   Missing: 2
-PROCESSING: fo.js      Found: 358   Missing: 19
-PROCESSING: fr.js      Found: 375   Missing: 2
-PROCESSING: gl.js      Found: 375   Missing: 2
-PROCESSING: he.js      Found: 375   Missing: 2
-PROCESSING: hr.js      Found: 375   Missing: 2
-PROCESSING: hu.js      Found: 377   Missing: 0
-PROCESSING: it.js      Found: 375   Missing: 2
-PROCESSING: ja.js      Found: 375   Missing: 2
-PROCESSING: ko.js      Found: 375   Missing: 2
-PROCESSING: lt.js      Found: 375   Missing: 2
-PROCESSING: mn.js      Found: 232   Missing: 145
-PROCESSING: ms.js      Found: 358   Missing: 19
-PROCESSING: nl.js      Found: 375   Missing: 2
-PROCESSING: no.js      Found: 375   Missing: 2
-PROCESSING: pl.js      Found: 352   Missing: 25
-PROCESSING: pt-br.js   Found: 375   Missing: 2
-PROCESSING: pt.js      Found: 375   Missing: 2
-PROCESSING: ro.js      Found: 375   Missing: 2
-PROCESSING: ru.js      Found: 375   Missing: 2
-PROCESSING: sk.js      Found: 375   Missing: 2
-PROCESSING: sl.js      Found: 375   Missing: 2
-PROCESSING: sr-latn.js Found: 375   Missing: 2
-PROCESSING: sr.js      Found: 375   Missing: 2
-PROCESSING: sv.js      Found: 375   Missing: 2
-PROCESSING: th.js      Found: 352   Missing: 25
-PROCESSING: tr.js      Found: 374   Missing: 3
-PROCESSING: uk.js      Found: 375   Missing: 2
-PROCESSING: vi.js      Found: 374   Missing: 3
-PROCESSING: zh-cn.js   Found: 375   Missing: 2
-PROCESSING: zh.js      Found: 375   Missing: 2
\ No newline at end of file
+af.js      Found: 401   Missing: 1
+ar.js      Found: 401   Missing: 1
+bg.js      Found: 378   Missing: 24
+bn.js      Found: 386   Missing: 16
+bs.js      Found: 230   Missing: 172
+ca.js      Found: 401   Missing: 1
+cs.js      Found: 386   Missing: 16
+da.js      Found: 386   Missing: 16
+de.js      Found: 401   Missing: 1
+el.js      Found: 401   Missing: 1
+en-au.js   Found: 402   Missing: 0
+en-ca.js   Found: 402   Missing: 0
+en-uk.js   Found: 402   Missing: 0
+eo.js      Found: 350   Missing: 52
+es.js      Found: 386   Missing: 16
+et.js      Found: 386   Missing: 16
+eu.js      Found: 386   Missing: 16
+fa.js      Found: 401   Missing: 1
+fi.js      Found: 386   Missing: 16
+fo.js      Found: 401   Missing: 1
+fr.js      Found: 401   Missing: 1
+gl.js      Found: 386   Missing: 16
+he.js      Found: 401   Missing: 1
+hi.js      Found: 401   Missing: 1
+hr.js      Found: 401   Missing: 1
+hu.js      Found: 401   Missing: 1
+it.js      Found: 401   Missing: 1
+ja.js      Found: 401   Missing: 1
+km.js      Found: 376   Missing: 26
+ko.js      Found: 373   Missing: 29
+lt.js      Found: 381   Missing: 21
+lv.js      Found: 386   Missing: 16
+mn.js      Found: 230   Missing: 172
+ms.js      Found: 356   Missing: 46
+nb.js      Found: 400   Missing: 2
+nl.js      Found: 401   Missing: 1
+no.js      Found: 400   Missing: 2
+pl.js      Found: 386   Missing: 16
+pt-br.js   Found: 401   Missing: 1
+pt.js      Found: 386   Missing: 16
+ro.js      Found: 400   Missing: 2
+ru.js      Found: 401   Missing: 1
+sk.js      Found: 401   Missing: 1
+sl.js      Found: 378   Missing: 24
+sr-latn.js Found: 373   Missing: 29
+sr.js      Found: 373   Missing: 29
+sv.js      Found: 381   Missing: 21
+th.js      Found: 398   Missing: 4
+tr.js      Found: 401   Missing: 1
+uk.js      Found: 401   Missing: 1
+vi.js      Found: 401   Missing: 1
+zh-cn.js   Found: 401   Missing: 1
+zh.js      Found: 401   Missing: 1

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/af.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/af.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/af.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Afrikaans language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Vou Gereedskaps balk toe",
+ToolbarExpand		: "Vou Gereedskaps balk oop",
+
+// Toolbar Items and Context Menu
+Save				: "Bewaar",
+NewPage				: "Nuwe Bladsy",
+Preview				: "Voorskou",
+Cut					: "Uitsny ",
+Copy				: "Kopieer",
+Paste				: "Byvoeg",
+PasteText			: "Slegs inhoud byvoeg",
+PasteWord			: "Van Word af byvoeg",
+Print				: "Druk",
+SelectAll			: "Selekteer alles",
+RemoveFormat		: "Formaat verweider",
+InsertLinkLbl		: "Skakel",
+InsertLink			: "Skakel byvoeg/verander",
+RemoveLink			: "Skakel verweider",
+Anchor				: "Plekhouer byvoeg/verander",
+InsertImageLbl		: "Beeld",
+InsertImage			: "Beeld byvoeg/verander",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Flash byvoeg/verander",
+InsertTableLbl		: "Tabel",
+InsertTable			: "Tabel byvoeg/verander",
+InsertLineLbl		: "Lyn",
+InsertLine			: "Horisontale lyn byvoeg",
+InsertSpecialCharLbl: "Spesiaale karakter",
+InsertSpecialChar	: "Spesiaale Karakter byvoeg",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley byvoeg",
+About				: "Meer oor FCKeditor",
+Bold				: "Vet",
+Italic				: "Skuins",
+Underline			: "Onderstreep",
+StrikeThrough		: "Gestreik",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Links rig",
+CenterJustify		: "Rig Middel",
+RightJustify		: "Regs rig",
+BlockJustify		: "Blok paradeer",
+DecreaseIndent		: "Paradeering verkort",
+IncreaseIndent		: "Paradeering verleng",
+Undo				: "Ont-skep",
+Redo				: "Her-skep",
+NumberedListLbl		: "Genommerde lys",
+NumberedList		: "Genommerde lys byvoeg/verweider",
+BulletedListLbl		: "Gepunkte lys",
+BulletedList		: "Gepunkte lys byvoeg/verweider",
+ShowTableBorders	: "Wys tabel kante",
+ShowDetails			: "Wys informasie",
+Style				: "Styl",
+FontFormat			: "Karakter formaat",
+Font				: "Karakters",
+FontSize			: "Karakter grote",
+TextColor			: "Karakter kleur",
+BGColor				: "Agtergrond kleur",
+Source				: "Source",
+Find				: "Vind",
+Replace				: "Vervang",
+SpellCheck			: "Spelling nagaan",
+UniversalKeyboard	: "Universeele Sleutelbord",
+PageBreakLbl		: "Bladsy breek",
+PageBreak			: "Bladsy breek byvoeg",
+
+Form			: "Form",
+Checkbox		: "HakBox",
+RadioButton		: "PuntBox",
+TextField		: "Byvoegbare karakter strook",
+Textarea		: "Byvoegbare karakter area",
+HiddenField		: "Blinde strook",
+Button			: "Knop",
+SelectionField	: "Opklapbare keuse strook",
+ImageButton		: "Beeld knop",
+
+FitWindow		: "Maksimaliseer venster grote",
+
+// Context Menu
+EditLink			: "Verander skakel",
+CellCM				: "Cell",
+RowCM				: "Ry",
+ColumnCM			: "Kolom",
+InsertRow			: "Ry byvoeg",
+DeleteRows			: "Ry verweider",
+InsertColumn		: "Kolom byvoeg",
+DeleteColumns		: "Kolom verweider",
+InsertCell			: "Cell byvoeg",
+DeleteCells			: "Cell verweider",
+MergeCells			: "Cell verenig",
+SplitCell			: "Cell verdeel",
+TableDelete			: "Tabel verweider",
+CellProperties		: "Cell eienskappe",
+TableProperties		: "Tabel eienskappe",
+ImageProperties		: "Beeld eienskappe",
+FlashProperties		: "Flash eienskappe",
+
+AnchorProp			: "Plekhouer eienskappe",
+ButtonProp			: "Knop eienskappe",
+CheckboxProp		: "HakBox eienskappe",
+HiddenFieldProp		: "Blinde strook eienskappe",
+RadioButtonProp		: "PuntBox eienskappe",
+ImageButtonProp		: "Beeld knop eienskappe",
+TextFieldProp		: "Karakter strook eienskappe",
+SelectionFieldProp	: "Opklapbare keuse strook eienskappe",
+TextareaProp		: "Karakter area eienskappe",
+FormProp			: "Form eienskappe",
+
+FontFormats			: "Normaal;Geformateerd;Adres;Opskrif 1;Opskrif 2;Opskrif 3;Opskrif 4;Opskrif 5;Opskrif 6;Normaal (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML word verarbeit. U geduld asseblief...",
+Done				: "Kompleet",
+PasteWordConfirm	: "Die informasie wat U probeer byvoeg is warskynlik van Word. Wil U dit reinig voor die byvoeging?",
+NotCompatiblePaste	: "Die instruksie is beskikbaar vir Internet Explorer weergawe 5.5 of hor. Wil U dir byvoeg sonder reiniging?",
+UnknownToolbarItem	: "Unbekende gereedskaps balk item \"%1\"",
+UnknownCommand		: "Unbekende instruksie naam \"%1\"",
+NotImplemented		: "Instruksie is nie geimplementeer nie.",
+UnknownToolbarSet	: "Gereedskaps balk \"%1\" bestaan nie",
+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.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Kanseleer",
+DlgBtnClose			: "Sluit",
+DlgBtnBrowseServer	: "Server deurblaai",
+DlgAdvancedTag		: "Ingewikkeld",
+DlgOpOther			: "<Ander>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Voeg asseblief die URL in",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<geen instelling>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Taal rigting",
+DlgGenLangDirLtr	: "Links na regs (LTR)",
+DlgGenLangDirRtl	: "Regs na links (RTL)",
+DlgGenLangCode		: "Taal kode",
+DlgGenAccessKey		: "Toegang sleutel",
+DlgGenName			: "Naam",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Lang beskreiwing URL",
+DlgGenClass			: "Skakel Tiepe",
+DlgGenTitle			: "Voorbeveelings Titel",
+DlgGenContType		: "Voorbeveelings inhoud soort",
+DlgGenLinkCharset	: "Geskakelde voorbeeld karakterstel",
+DlgGenStyle			: "Styl",
+
+// Image Dialog
+DlgImgTitle			: "Beeld eienskappe",
+DlgImgInfoTab		: "Beeld informasie",
+DlgImgBtnUpload		: "Stuur dit na die Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Uplaai",
+DlgImgAlt			: "Alternatiewe beskrywing",
+DlgImgWidth			: "Weidte",
+DlgImgHeight		: "Hoogde",
+DlgImgLockRatio		: "Behou preporsie",
+DlgBtnResetSize		: "Herstel groote",
+DlgImgBorder		: "Kant",
+DlgImgHSpace		: "HSpasie",
+DlgImgVSpace		: "VSpasie",
+DlgImgAlign			: "Paradeer",
+DlgImgAlignLeft		: "Links",
+DlgImgAlignAbsBottom: "Abs Onder",
+DlgImgAlignAbsMiddle: "Abs Middel",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Onder",
+DlgImgAlignMiddle	: "Middel",
+DlgImgAlignRight	: "Regs",
+DlgImgAlignTextTop	: "Text Bo",
+DlgImgAlignTop		: "Bo",
+DlgImgPreview		: "Voorskou",
+DlgImgAlertUrl		: "Voeg asseblief Beeld URL in.",
+DlgImgLinkTab		: "Skakel",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash eienskappe",
+DlgFlashChkPlay		: "Automaties Speel",
+DlgFlashChkLoop		: "Herhaling",
+DlgFlashChkMenu		: "Laat Flash Menu toe",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Wys alles",
+DlgFlashScaleNoBorder	: "Geen kante",
+DlgFlashScaleFit	: "Presiese pas",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Skakel",
+DlgLnkInfoTab		: "Skakel informasie",
+DlgLnkTargetTab		: "Mikpunt",
+
+DlgLnkType			: "Skakel soort",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Skakel na plekhouers in text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protokol",
+DlgLnkProtoOther	: "<ander>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Kies 'n plekhouer",
+DlgLnkAnchorByName	: "Volgens plekhouer naam",
+DlgLnkAnchorById	: "Volgens element Id",
+DlgLnkNoAnchors		: "<Geen plekhouers beskikbaar in dokument>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-Mail Adres",
+DlgLnkEMailSubject	: "Boodskap Opskrif",
+DlgLnkEMailBody		: "Boodskap Inhoud",
+DlgLnkUpload		: "Oplaai",
+DlgLnkBtnUpload		: "Stuur na Server",
+
+DlgLnkTarget		: "Mikpunt",
+DlgLnkTargetFrame	: "<raam>",
+DlgLnkTargetPopup	: "<popup venster>",
+DlgLnkTargetBlank	: "Nuwe Venster (_blank)",
+DlgLnkTargetParent	: "Vorige Venster (_parent)",
+DlgLnkTargetSelf	: "Selfde Venster (_self)",
+DlgLnkTargetTop		: "Boonste Venster (_top)",
+DlgLnkTargetFrameName	: "Mikpunt Venster Naam",
+DlgLnkPopWinName	: "Popup Venster Naam",
+DlgLnkPopWinFeat	: "Popup Venster Geaartheid",
+DlgLnkPopResize		: "Verstelbare Groote",
+DlgLnkPopLocation	: "Adres Balk",
+DlgLnkPopMenu		: "Menu Balk",
+DlgLnkPopScroll		: "Gleibalkstuk",
+DlgLnkPopStatus		: "Status Balk",
+DlgLnkPopToolbar	: "Gereedskap Balk",
+DlgLnkPopFullScrn	: "Voll Skerm (IE)",
+DlgLnkPopDependent	: "Afhanklik (Netscape)",
+DlgLnkPopWidth		: "Weite",
+DlgLnkPopHeight		: "Hoogde",
+DlgLnkPopLeft		: "Links Posisie",
+DlgLnkPopTop		: "Bo Posisie",
+
+DlnLnkMsgNoUrl		: "Voeg asseblief die URL in",
+DlnLnkMsgNoEMail	: "Voeg asseblief die e-mail adres in",
+DlnLnkMsgNoAnchor	: "Kies asseblief 'n plekhouer",
+DlnLnkMsgInvPopName	: "Die popup naam moet begin met alphabetiese karakters sonder spasies.",
+
+// Color Dialog
+DlgColorTitle		: "Kies Kleur",
+DlgColorBtnClear	: "Maak skoon",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Geselekteer",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Voeg Smiley by",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Kies spesiale karakter",
+
+// Table Dialog
+DlgTableTitle		: "Tabel eienskappe",
+DlgTableRows		: "Reie",
+DlgTableColumns		: "Kolome",
+DlgTableBorder		: "Kant groote",
+DlgTableAlign		: "Parideering",
+DlgTableAlignNotSet	: "<geen instelling>",
+DlgTableAlignLeft	: "Links",
+DlgTableAlignCenter	: "Middel",
+DlgTableAlignRight	: "Regs",
+DlgTableWidth		: "Weite",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Hoogde",
+DlgTableCellSpace	: "Cell spasieering",
+DlgTableCellPad		: "Cell buffer",
+DlgTableCaption		: "Beskreiwing",
+DlgTableSummary		: "Opsomming",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell eienskappe",
+DlgCellWidth		: "Weite",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Hoogde",
+DlgCellWordWrap		: "Woord Wrap",
+DlgCellWordWrapNotSet	: "<geen instelling>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nee",
+DlgCellHorAlign		: "Horisontale rigting",
+DlgCellHorAlignNotSet	: "<geen instelling>",
+DlgCellHorAlignLeft	: "Links",
+DlgCellHorAlignCenter	: "Middel",
+DlgCellHorAlignRight: "Regs",
+DlgCellVerAlign		: "Vertikale rigting",
+DlgCellVerAlignNotSet	: "<geen instelling>",
+DlgCellVerAlignTop	: "Bo",
+DlgCellVerAlignMiddle	: "Middel",
+DlgCellVerAlignBottom	: "Onder",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rei strekking",
+DlgCellCollSpan		: "Kolom strekking",
+DlgCellBackColor	: "Agtergrond Kleur",
+DlgCellBorderColor	: "Kant Kleur",
+DlgCellBtnSelect	: "Keuse...",
+
+// Find Dialog
+DlgFindTitle		: "Vind",
+DlgFindFindBtn		: "Vind",
+DlgFindNotFoundMsg	: "Die gespesifiseerde karakters word nie gevind nie.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Vervang",
+DlgReplaceFindLbl		: "Soek wat:",
+DlgReplaceReplaceLbl	: "Vervang met:",
+DlgReplaceCaseChk		: "Vergelyk karakter skryfweise",
+DlgReplaceReplaceBtn	: "Vervang",
+DlgReplaceReplAllBtn	: "Vervang alles",
+DlgReplaceWordChk		: "Vergelyk komplete woord",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).",
+PasteErrorCopy	: "U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).",
+
+PasteAsText		: "Voeg slegs karakters by",
+PasteFromWord	: "Byvoeging uit Word",
+
+DlgPasteMsg2	: "Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignoreer karakter soort defenisies",
+DlgPasteRemoveStyles	: "Verweider Styl defenisies",
+DlgPasteCleanBox		: "Maak Box Skoon",
+
+// Color Picker
+ColorAutomatic	: "Automaties",
+ColorMoreColors	: "Meer Kleure...",
+
+// Document Properties
+DocProps		: "Dokument Eienskappe",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Plekhouer Eienskappe",
+DlgAnchorName		: "Plekhouer Naam",
+DlgAnchorErrorName	: "Voltooi die plekhouer naam asseblief",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Nie in woordeboek nie",
+DlgSpellChangeTo		: "Verander na",
+DlgSpellBtnIgnore		: "Ignoreer",
+DlgSpellBtnIgnoreAll	: "Ignoreer na-volgende",
+DlgSpellBtnReplace		: "Vervang",
+DlgSpellBtnReplaceAll	: "vervang na-volgende",
+DlgSpellBtnUndo			: "Ont-skep",
+DlgSpellNoSuggestions	: "- Geen voorstel -",
+DlgSpellProgress		: "Spelling word beproef...",
+DlgSpellNoMispell		: "Spellproef kompleet: Geen foute",
+DlgSpellNoChanges		: "Spellproef kompleet: Geen woord veranderings",
+DlgSpellOneChange		: "Spellproef kompleet: Een woord verander",
+DlgSpellManyChanges		: "Spellproef kompleet: %1 woorde verander",
+
+IeSpellDownload			: "Geen Spellproefer geinstaleer nie. Wil U dit aflaai?",
+
+// Button Dialog
+DlgButtonText		: "Karakters (Waarde)",
+DlgButtonType		: "Soort",
+DlgButtonTypeBtn	: "Knop",
+DlgButtonTypeSbm	: "Indien",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Naam",
+DlgCheckboxValue	: "Waarde",
+DlgCheckboxSelected	: "Uitgekies",
+
+// Form Dialog
+DlgFormName		: "Naam",
+DlgFormAction	: "Aksie",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Naam",
+DlgSelectValue		: "Waarde",
+DlgSelectSize		: "Grote",
+DlgSelectLines		: "lyne",
+DlgSelectChkMulti	: "Laat meerere keuses toe",
+DlgSelectOpAvail	: "Beskikbare Opsies",
+DlgSelectOpText		: "Karakters",
+DlgSelectOpValue	: "Waarde",
+DlgSelectBtnAdd		: "Byvoeg",
+DlgSelectBtnModify	: "Verander",
+DlgSelectBtnUp		: "Op",
+DlgSelectBtnDown	: "Af",
+DlgSelectBtnSetValue : "Stel as uitgekiesde waarde",
+DlgSelectBtnDelete	: "Verweider",
+
+// Textarea Dialog
+DlgTextareaName	: "Naam",
+DlgTextareaCols	: "Kolom",
+DlgTextareaRows	: "Reie",
+
+// Text Field Dialog
+DlgTextName			: "Naam",
+DlgTextValue		: "Waarde",
+DlgTextCharWidth	: "Karakter weite",
+DlgTextMaxChars		: "Maximale karakters",
+DlgTextType			: "Soort",
+DlgTextTypeText		: "Karakters",
+DlgTextTypePass		: "Wagwoord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Naam",
+DlgHiddenValue	: "Waarde",
+
+// Bulleted List Dialog
+BulletedListProp	: "Gepunkte lys eienskappe",
+NumberedListProp	: "Genommerde lys eienskappe",
+DlgLstStart			: "Begin",
+DlgLstType			: "Soort",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Skyf",
+DlgLstTypeSquare	: "Vierkant",
+DlgLstTypeNumbers	: "Nommer (1, 2, 3)",
+DlgLstTypeLCase		: "Klein Letters (a, b, c)",
+DlgLstTypeUCase		: "Hoof Letters (A, B, C)",
+DlgLstTypeSRoman	: "Klein Romeinse nommers (i, ii, iii)",
+DlgLstTypeLRoman	: "Groot Romeinse nommers (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Algemeen",
+DlgDocBackTab		: "Agtergrond",
+DlgDocColorsTab		: "Kleure en Rante",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Bladsy Opskrif",
+DlgDocLangDir		: "Taal rigting",
+DlgDocLangDirLTR	: "Link na Regs (LTR)",
+DlgDocLangDirRTL	: "Regs na Links (RTL)",
+DlgDocLangCode		: "Taal Kode",
+DlgDocCharSet		: "Karakterstel Kodeering",
+DlgDocCharSetCE		: "Sentraal Europa",
+DlgDocCharSetCT		: "Chinees Traditioneel (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Grieks",
+DlgDocCharSetJP		: "Japanees",
+DlgDocCharSetKR		: "Koreans",
+DlgDocCharSetTR		: "Turks",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Ander Karakterstel Kodeering",
+
+DlgDocDocType		: "Dokument Opskrif Soort",
+DlgDocDocTypeOther	: "Ander Dokument Opskrif Soort",
+DlgDocIncXHTML		: "Voeg XHTML verklaring by",
+DlgDocBgColor		: "Agtergrond kleur",
+DlgDocBgImage		: "Agtergrond Beeld URL",
+DlgDocBgNoScroll	: "Vasgeklemde Agtergrond",
+DlgDocCText			: "Karakters",
+DlgDocCLink			: "Skakel",
+DlgDocCVisited		: "Besoekte Skakel",
+DlgDocCActive		: "Aktiewe Skakel",
+DlgDocMargins		: "Bladsy Rante",
+DlgDocMaTop			: "Bo",
+DlgDocMaLeft		: "Links",
+DlgDocMaRight		: "Regs",
+DlgDocMaBottom		: "Onder",
+DlgDocMeIndex		: "Dokument Index Sleutelwoorde(comma verdeelt)",
+DlgDocMeDescr		: "Dokument Beskrywing",
+DlgDocMeAuthor		: "Skrywer",
+DlgDocMeCopy		: "Kopiereg",
+DlgDocPreview		: "Voorskou",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Inhoud Templates",
+DlgTemplatesSelMsg	: "Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):",
+DlgTemplatesLoading	: "Templates word gelaai. U geduld asseblief...",
+DlgTemplatesNoTpl	: "(Geen templates gedefinieerd)",
+DlgTemplatesReplace	: "Vervang bestaande inhoud",
+
+// About Dialog
+DlgAboutAboutTab	: "Meer oor",
+DlgAboutBrowserInfoTab	: "Blaai Informasie deur",
+DlgAboutLicenseTab	: "Lesensie",
+DlgAboutVersion		: "weergawe",
+DlgAboutInfo		: "Vir meer informasie gaan na "
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ar.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ar.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ar.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ar.js
- * 	Arabic language file.
- * 
- * File Authors:
- * 		Abdul-Aziz Abdul-Kareem Al-Oraij (http://aziz.oraij.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Arabic language file.
  */
 
 var FCKLang =
@@ -82,12 +86,14 @@
 BGColor				: "لون الخلفية",
 Source				: "شفرة المصدر",
 Find				: "بحث",
-Replace				: "استبدال",
+Replace				: "إستبدال",
 SpellCheck			: "تدقيق إملائي",
 UniversalKeyboard	: "لوحة المفاتيح العالمية",
+PageBreakLbl		: "فصل الصفحة",
+PageBreak			: "إدخال صفحة جديدة",
 
 Form			: "نموذج",
-Checkbox		: "خانة اختيار",
+Checkbox		: "خانة إختيار",
 RadioButton		: "زر خيار",
 TextField		: "مربع نص",
 Textarea		: "ناحية نص",
@@ -96,8 +102,13 @@
 SelectionField	: "قائمة منسدلة",
 ImageButton		: "زر صورة",
 
+FitWindow		: "تكبير حجم المحرر",
+
 // Context Menu
 EditLink			: "تحرير رابط",
+CellCM				: "خلية",
+RowCM				: "صف",
+ColumnCM			: "عمود",
 InsertRow			: "إدراج صف",
 DeleteRows			: "حذف صفوف",
 InsertColumn		: "إدراج عمود",
@@ -106,6 +117,7 @@
 DeleteCells			: "حذف خلايا",
 MergeCells			: "دمج خلايا",
 SplitCell			: "تقسيم خلية",
+TableDelete			: "حذف الجدول",
 CellProperties		: "خصائص الخلية",
 TableProperties		: "خصائص الجدول",
 ImageProperties		: "خصائص الصورة",
@@ -113,7 +125,7 @@
 
 AnchorProp			: "خصائص الإشارة المرجعية",
 ButtonProp			: "خصائص زر الضغط",
-CheckboxProp		: "خصائص خانة الاختيار",
+CheckboxProp		: "خصائص خانة الإختيار",
 HiddenFieldProp		: "خصائص الحقل الخفي",
 RadioButtonProp		: "خصائص زر الخيار",
 ImageButtonProp		: "خصائص زر الصورة",
@@ -122,10 +134,10 @@
 TextareaProp		: "خصائص ناحية النص",
 FormProp			: "خصائص النموذج",
 
-FontFormats			: "عادي;منسّق;دوس;العنوان 1;العنوان  2;العنوان  3;العنوان  4;العنوان  5;العنوان  6",
+FontFormats			: "عادي;منسّق;دوس;العنوان 1;العنوان  2;العنوان  3;العنوان  4;العنوان  5;العنوان  6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "انتظر قليلاً ريثما تتم   معالَجة‏ XHTML. لن يستغرق طويلاً...",
+ProcessingXHTML		: "إنتظر قليلاً ريثما تتم   معالَجة‏ XHTML. لن يستغرق طويلاً...",
 Done				: "تم",
 PasteWordConfirm	: "يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟",
 NotCompatiblePaste	: "هذه الميزة تحتاج لمتصفح من النوعInternet Explorer إصدار 5.5 فما فوق. هل تود اللصق دون تنظيف الكود؟",
@@ -133,7 +145,9 @@
 UnknownCommand		: "أمر غير معروف \"%1\"",
 NotImplemented		: "لم يتم دعم هذا الأمر",
 UnknownToolbarSet	: "لم أتمكن من العثور على طقم الأدوات \"%1\" ",
-NoActiveX			: "You 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
+NoActiveX			: "لتأمين متصفحك يجب أن تحدد بعض مميزات المحرر. يتوجب عليك تمكين الخيار \"Run ActiveX controls and plug-ins\". قد تواجة أخطاء وتلاحظ مميزات مفقودة",
+BrowseServerBlocked : "لايمكن فتح مصدر المتصفح. فضلا يجب التأكد بأن جميع موانع النوافذ المنبثقة معطلة",
+DialogBlocked		: "لايمكن فتح نافذة الحوار . فضلا تأكد من أن  مانع النوافذ المنبثة معطل .",
 
 // Dialogs
 DlgBtnOK			: "موافق",
@@ -141,25 +155,25 @@
 DlgBtnClose			: "إغلاق",
 DlgBtnBrowseServer	: "تصفح الخادم",
 DlgAdvancedTag		: "متقدم",
-DlgOpOther			: "&lt;أخرى&gt;",
+DlgOpOther			: "<أخرى>",
 DlgInfoTab			: "معلومات",
 DlgAlertUrl			: "الرجاء كتابة عنوان الإنترنت",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;بدون تحديد&gt;",
-DlgGenId			: "Id",
-DlgGenLangDir		: "اتجاه النص",
+DlgGenNotSet		: "<بدون تحديد>",
+DlgGenId			: "الرقم",
+DlgGenLangDir		: "إتجاه النص",
 DlgGenLangDirLtr	: "اليسار لليمين (LTR)",
 DlgGenLangDirRtl	: "اليمين لليسار (RTL)",
 DlgGenLangCode		: "رمز اللغة",
-DlgGenAccessKey		: "مفاتيح الاختصار",
+DlgGenAccessKey		: "مفاتيح الإختصار",
 DlgGenName			: "الاسم",
 DlgGenTabIndex		: "الترتيب",
 DlgGenLongDescr		: "عنوان الوصف المفصّل",
 DlgGenClass			: "فئات التنسيق",
 DlgGenTitle			: "تلميح الشاشة",
 DlgGenContType		: "نوع التلميح",
-DlgGenLinkCharset	: "ترميز المادة المرطلوبة",
+DlgGenLinkCharset	: "ترميز المادة المطلوبة",
 DlgGenStyle			: "نمط",
 
 // Image Dialog
@@ -170,9 +184,9 @@
 DlgImgUpload		: "رفع",
 DlgImgAlt			: "الوصف",
 DlgImgWidth			: "العرض",
-DlgImgHeight		: "الارتفاع",
+DlgImgHeight		: "الإرتفاع",
 DlgImgLockRatio		: "تناسق الحجم",
-DlgBtnResetSize		: "استعادة الحجم الأصلي",
+DlgBtnResetSize		: "إستعادة الحجم الأصلي",
 DlgImgBorder		: "سمك الحدود",
 DlgImgHSpace		: "تباعد أفقي",
 DlgImgVSpace		: "تباعد عمودي",
@@ -187,7 +201,7 @@
 DlgImgAlignTextTop	: "أعلى النص",
 DlgImgAlignTop		: "أعلى",
 DlgImgPreview		: "معاينة",
-DlgImgAlertUrl		: "فضلاً اكتب الموقع الذي توجد عليه هذه الصورة.",
+DlgImgAlertUrl		: "فضلاً أكتب الموقع الذي توجد عليه هذه الصورة.",
 DlgImgLinkTab		: "الرابط",
 
 // Flash Dialog
@@ -201,7 +215,7 @@
 DlgFlashScaleFit	: "ضبط تام",
 
 // Link Dialog
-DlgLnkWindowTitle	: "ارتباط تشعبي",
+DlgLnkWindowTitle	: "إرتباط تشعبي",
 DlgLnkInfoTab		: "معلومات الرابط",
 DlgLnkTargetTab		: "الهدف",
 
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "مكان في هذا المستند",
 DlgLnkTypeEMail		: "بريد إلكتروني",
 DlgLnkProto			: "البروتوكول",
-DlgLnkProtoOther	: "&lt;أخرى&gt;",
+DlgLnkProtoOther	: "<أخرى>",
 DlgLnkURL			: "الموقع",
 DlgLnkAnchorSel		: "اختر علامة مرجعية",
 DlgLnkAnchorByName	: "حسب اسم العلامة",
 DlgLnkAnchorById	: "حسب تعريف العنصر",
-DlgLnkNoAnchors		: "&lt;لا يوجد علامات مرجعية في هذا المستند&gt;",
+DlgLnkNoAnchors		: "<لا يوجد علامات مرجعية في هذا المستند>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "عنوان بريد إلكتروني",
 DlgLnkEMailSubject	: "موضوع الرسالة",
 DlgLnkEMailBody		: "محتوى الرسالة",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "أرسلها للخادم",
 
 DlgLnkTarget		: "الهدف",
-DlgLnkTargetFrame	: "&lt;إطار&gt;",
-DlgLnkTargetPopup	: "&lt;نافذة منبثقة&gt;",
+DlgLnkTargetFrame	: "<إطار>",
+DlgLnkTargetPopup	: "<نافذة منبثقة>",
 DlgLnkTargetBlank	: "إطار جديد (_blank)",
 DlgLnkTargetParent	: "الإطار الأصل (_parent)",
 DlgLnkTargetSelf	: "نفس الإطار (_self)",
@@ -241,22 +255,23 @@
 DlgLnkPopFullScrn	: "ملئ الشاشة (IE)",
 DlgLnkPopDependent	: "تابع (Netscape)",
 DlgLnkPopWidth		: "العرض",
-DlgLnkPopHeight		: "الارتفاع",
+DlgLnkPopHeight		: "الإرتفاع",
 DlgLnkPopLeft		: "التمركز لليسار",
 DlgLnkPopTop		: "التمركز للأعلى",
 
 DlnLnkMsgNoUrl		: "فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط",
 DlnLnkMsgNoEMail	: "فضلاً أدخل عنوان البريد الإلكتروني",
 DlnLnkMsgNoAnchor	: "فضلاً حدد العلامة المرجعية المرغوبة",
+DlnLnkMsgInvPopName	: "اسم النافذة المنبثقة يجب أن يبدأ بحرف أبجدي دون مسافات",
 
 // Color Dialog
 DlgColorTitle		: "اختر لوناً",
 DlgColorBtnClear	: "مسح",
 DlgColorHighlight	: "تحديد",
-DlgColorSelected	: "اختيار",
+DlgColorSelected	: "إختيار",
 
 // Smiley Dialog
-DlgSmileyTitle		: "إدراج ابتسامات ",
+DlgSmileyTitle		: "إدراج إبتسامات ",
 
 // Special Character Dialog
 DlgSpecialCharTitle	: "إدراج رمز",
@@ -274,17 +289,18 @@
 DlgTableWidth		: "العرض",
 DlgTableWidthPx		: "بكسل",
 DlgTableWidthPc		: "بالمئة",
-DlgTableHeight		: "الارتفاع",
+DlgTableHeight		: "الإرتفاع",
 DlgTableCellSpace	: "تباعد الخلايا",
 DlgTableCellPad		: "المسافة البادئة",
 DlgTableCaption		: "الوصف",
+DlgTableSummary		: "الخلاصة",
 
 // Table Cell Dialog
 DlgCellTitle		: "خصائص الخلية",
 DlgCellWidth		: "العرض",
 DlgCellWidthPx		: "بكسل",
 DlgCellWidthPc		: "بالمئة",
-DlgCellHeight		: "الارتفاع",
+DlgCellHeight		: "الإرتفاع",
 DlgCellWordWrap		: "التفاف النص",
 DlgCellWordWrapNotSet	: "<بدون تحديد>",
 DlgCellWordWrapYes	: "نعم",
@@ -300,8 +316,8 @@
 DlgCellVerAlignMiddle	: "وسط",
 DlgCellVerAlignBottom	: "أسفل",
 DlgCellVerAlignBaseline	: "على السطر",
-DlgCellRowSpan		: "امتداد الصفوف",
-DlgCellCollSpan		: "امتداد الأعمدة",
+DlgCellRowSpan		: "إمتداد الصفوف",
+DlgCellCollSpan		: "إمتداد الأعمدة",
 DlgCellBackColor	: "لون الخلفية",
 DlgCellBorderColor	: "لون الحدود",
 DlgCellBtnSelect	: "حدّد...",
@@ -312,28 +328,27 @@
 DlgFindNotFoundMsg	: "لم يتم العثور على النص المحدد.",
 
 // Replace Dialog
-DlgReplaceTitle			: "استبدال",
+DlgReplaceTitle			: "إستبدال",
 DlgReplaceFindLbl		: "البحث عن:",
-DlgReplaceReplaceLbl	: "استبدال بـ:",
+DlgReplaceReplaceLbl	: "إستبدال بـ:",
 DlgReplaceCaseChk		: "مطابقة حالة الأحرف",
-DlgReplaceReplaceBtn	: "استبدال",
-DlgReplaceReplAllBtn	: "استبدال الكل",
+DlgReplaceReplaceBtn	: "إستبدال",
+DlgReplaceReplAllBtn	: "إستبدال الكل",
 DlgReplaceWordChk		: "الكلمة بالكامل فقط",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع اللصق التلقائي. فضلاً استخدم لوحة المفاتيح لفعل ذلك (Ctrl+V).",
-PasteErrorCut	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً استخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).",
-PasteErrorCopy	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً استخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).",
+PasteErrorCut	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).",
+PasteErrorCopy	: "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).",
 
 PasteAsText		: "لصق كنص بسيط",
 PasteFromWord	: "لصق من وورد",
 
-DlgPasteMsg2	: "الصق داخل الصندوق باستخدام زرّي (<STRONG>Ctrl+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.",
+DlgPasteMsg2	: "الصق داخل الصندوق بإستخدام زرّي (<STRONG>Ctrl+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "تجاهل تعريفات أسماء الخطوط",
 DlgPasteRemoveStyles	: "إزالة تعريفات الأنماط",
 DlgPasteCleanBox		: "نظّف محتوى الصندوق",
 
-
 // Color Picker
 ColorAutomatic	: "تلقائي",
 ColorMoreColors	: "ألوان إضافية...",
@@ -354,7 +369,7 @@
 DlgSpellBtnReplace		: "تغيير",
 DlgSpellBtnReplaceAll	: "تغيير الكل",
 DlgSpellBtnUndo			: "تراجع",
-DlgSpellNoSuggestions	: "- لا توجد اقتراحات -",
+DlgSpellNoSuggestions	: "- لا توجد إقتراحات -",
 DlgSpellProgress		: "جاري التدقيق إملائياً",
 DlgSpellNoMispell		: "تم إكمال التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية",
 DlgSpellNoChanges		: "تم إكمال التدقيق الإملائي: لم يتم تغيير أي كلمة",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟",
 
 // Button Dialog
-DlgButtonText	: "القيمة/التسمية",
-DlgButtonType	: "نوع الزر",
+DlgButtonText		: "القيمة/التسمية",
+DlgButtonType		: "نوع الزر",
+DlgButtonTypeBtn	: "زر",
+DlgButtonTypeSbm	: "إرسال",
+DlgButtonTypeRst	: "إعادة تعيين",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "الاسم",
@@ -390,7 +408,7 @@
 DlgSelectBtnModify	: "تعديل",
 DlgSelectBtnUp		: "تحريك لأعلى",
 DlgSelectBtnDown	: "تحريك لأسفل",
-DlgSelectBtnSetValue : "اجعلها محددة",
+DlgSelectBtnSetValue : "إجعلها محددة",
 DlgSelectBtnDelete	: "إزالة",
 
 // Textarea Dialog
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "خصائص التعداد النقطي",
 NumberedListProp	: "خصائص التعداد الرقمي",
+DlgLstStart			: "البدء عند",
 DlgLstType			: "النوع",
 DlgLstTypeCircle	: "دائرة",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "قرص",
 DlgLstTypeSquare	: "مربع",
 DlgLstTypeNumbers	: "أرقام (1، 2، 3)َ",
 DlgLstTypeLCase		: "حروف صغيرة (a, b, c)َ",
@@ -431,12 +450,21 @@
 DlgDocMetaTab		: "المعرّفات الرأسية",
 
 DlgDocPageTitle		: "عنوان الصفحة",
-DlgDocLangDir		: "اتجاه اللغة",
+DlgDocLangDir		: "إتجاه اللغة",
 DlgDocLangDirLTR	: "اليسار لليمين (LTR)",
 DlgDocLangDirRTL	: "اليمين لليسار (RTL)",
 DlgDocLangCode		: "رمز اللغة",
 DlgDocCharSet		: "ترميز الحروف",
-DlgDocCharSetOther	: "ترميز حروف آخر",
+DlgDocCharSetCE		: "أوروبا الوسطى",
+DlgDocCharSetCT		: "الصينية التقليدية (Big5)",
+DlgDocCharSetCR		: "السيريلية",
+DlgDocCharSetGR		: "اليونانية",
+DlgDocCharSetJP		: "اليابانية",
+DlgDocCharSetKR		: "الكورية",
+DlgDocCharSetTR		: "التركية",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "أوروبا الغربية",
+DlgDocCharSetOther	: "ترميز آخر",
 
 DlgDocDocType		: "ترويسة نوع  الصفحة",
 DlgDocDocTypeOther	: "ترويسة نوع  صفحة أخرى",
@@ -463,13 +491,14 @@
 Templates			: "القوالب",
 DlgTemplatesTitle	: "قوالب المحتوى",
 DlgTemplatesSelMsg	: "اختر القالب الذي تود وضعه في المحرر <br>(سيتم فقدان المحتوى الحالي):",
-DlgTemplatesLoading	: "جاري تحميل قائمة القوالب، الرجاء الانتظار...",
+DlgTemplatesLoading	: "جاري تحميل قائمة القوالب، الرجاء الإنتظار...",
 DlgTemplatesNoTpl	: "(لم يتم تعريف أي قالب)",
+DlgTemplatesReplace	: "استبدال المحتوى",
 
 // About Dialog
 DlgAboutAboutTab	: "نبذة",
 DlgAboutBrowserInfoTab	: "معلومات متصفحك",
+DlgAboutLicenseTab	: "الترخيص",
 DlgAboutVersion		: "الإصدار",
-DlgAboutLicense		: "مرخّص بحسب قانون  GNU LGPL",
 DlgAboutInfo		: "لمزيد من المعلومات تفضل بزيارة"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/bg.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/bg.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/bg.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: bg.js
- * 	Bulgarian language file.
- * 
- * File Authors:
- * 		Miroslav Ivanov (miro at primal-chaos.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bulgarian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Замести",
 SpellCheck			: "Провери правописа",
 UniversalKeyboard	: "Универсална клавиатура",
+PageBreakLbl		: "Нов ред",
+PageBreak			: "Вмъкни нов ред",
 
 Form			: "Формуляр",
 Checkbox		: "Поле за отметка",
@@ -96,8 +102,13 @@
 SelectionField	: "Падащо меню с опции",
 ImageButton		: "Бутон-изображение",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Редактирай връзка",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Добави ред",
 DeleteRows			: "Изтрий редовете",
 InsertColumn		: "Добави колона",
@@ -106,6 +117,7 @@
 DeleteCells			: "Изтрий клетките",
 MergeCells			: "Обедини клетките",
 SplitCell			: "Раздели клетката",
+TableDelete			: "Изтрий таблицата",
 CellProperties		: "Параметри на клетката",
 TableProperties		: "Параметри на таблицата",
 ImageProperties		: "Параметри на изображението",
@@ -122,7 +134,7 @@
 TextareaProp		: "Параметри на текстовата област",
 FormProp			: "Параметри на формуляра",
 
-FontFormats			: "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",
+FontFormats			: "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Обработка на XHTML. Моля изчакайте...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Непозната команда \"%1\"",
 NotImplemented		: "Командата не е имплементирана",
 UnknownToolbarSet	: "Панелът \"%1\" не съществува",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "ОК",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Затвори",
 DlgBtnBrowseServer	: "Разгледай сървъра",
 DlgAdvancedTag		: "Подробности...",
-DlgOpOther			: "&lt;Друго&gt;",
+DlgOpOther			: "<Друго>",
 DlgInfoTab			: "Информация",
 DlgAlertUrl			: "Моля, въведете пълния път (URL)",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;не е настроен&gt;",
+DlgGenNotSet		: "<не е настроен>",
 DlgGenId			: "Идентификатор",
 DlgGenLangDir		: "посока на речта",
 DlgGenLangDirLtr	: "От ляво на дясно",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Котва в текущата страница",
 DlgLnkTypeEMail		: "Е-поща",
 DlgLnkProto			: "Протокол",
-DlgLnkProtoOther	: "&lt;друго&gt;",
+DlgLnkProtoOther	: "<друго>",
 DlgLnkURL			: "Пълен път (URL)",
 DlgLnkAnchorSel		: "Изберете котва",
 DlgLnkAnchorByName	: "По име на котвата",
 DlgLnkAnchorById	: "По идентификатор на елемент",
-DlgLnkNoAnchors		: "&lt;Няма котви в текущия документ&gt;",
+DlgLnkNoAnchors		: "<Няма котви в текущия документ>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Адрес за е-поща",
 DlgLnkEMailSubject	: "Тема на писмото",
 DlgLnkEMailBody		: "Текст на писмото",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Прати на сървъра",
 
 DlgLnkTarget		: "Цел",
-DlgLnkTargetFrame	: "&lt;рамка&gt;",
-DlgLnkTargetPopup	: "&lt;дъщерен прозорец&gt;",
+DlgLnkTargetFrame	: "<рамка>",
+DlgLnkTargetPopup	: "<дъщерен прозорец>",
 DlgLnkTargetBlank	: "Нов прозорец (_blank)",
 DlgLnkTargetParent	: "Родителски прозорец (_parent)",
 DlgLnkTargetSelf	: "Активния прозорец (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Моля, напишете пълния път (URL)",
 DlnLnkMsgNoEMail	: "Моля, напишете адреса за е-поща",
 DlnLnkMsgNoAnchor	: "Моля, изберете котва",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Изберете цвят",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Разстояние между клетките",
 DlgTableCellPad		: "Отстъп на съдържанието в клетките",
 DlgTableCaption		: "Заглавие",
+DlgTableSummary		: "Резюме",
 
 // Table Cell Dialog
 DlgCellTitle		: "Параметри на клетката",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "проценти",
 DlgCellHeight		: "Височина",
 DlgCellWordWrap		: "пренасяне на нов ред",
-DlgCellWordWrapNotSet	: "&lt;Не е настроено&gt;",
+DlgCellWordWrapNotSet	: "<Не е настроено>",
 DlgCellWordWrapYes	: "Да",
 DlgCellWordWrapNo	: "не",
 DlgCellHorAlign		: "Хоризонтално подравняване",
-DlgCellHorAlignNotSet	: "&lt;Не е настроено&gt;",
+DlgCellHorAlignNotSet	: "<Не е настроено>",
 DlgCellHorAlignLeft	: "Ляво",
 DlgCellHorAlignCenter	: "Център",
 DlgCellHorAlignRight: "Дясно",
 DlgCellVerAlign		: "Вертикално подравняване",
-DlgCellVerAlignNotSet	: "&lt;Не е настроено&gt;",
+DlgCellVerAlignNotSet	: "<Не е настроено>",
 DlgCellVerAlignTop	: "Горе",
 DlgCellVerAlignMiddle	: "По средата",
 DlgCellVerAlignBottom	: "Долу",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Търси същата дума",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни вмъкването. За целта използвайте клавиатурата (Ctrl+V).",
 PasteErrorCut	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl+X).",
 PasteErrorCopy	: "Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Вмъкни от MS Word",
 
 DlgPasteMsg2	: "Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl+V</STRONG>) и натиснете <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Игнорирай шрифтовите дефиниции",
 DlgPasteRemoveStyles	: "Изтрий стиловите дефиниции",
 DlgPasteCleanBox		: "Изчисти",
 
-
 // Color Picker
 ColorAutomatic	: "По подразбиране",
 ColorMoreColors	: "Други цветове...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Инструментът за проверка на правопис не е инсталиран. Желаете ли да го инсталирате ?",
 
 // Button Dialog
-DlgButtonText	: "Текст (Стойност)",
-DlgButtonType	: "Тип",
+DlgButtonText		: "Текст (Стойност)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Име",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Параметри на ненумерирания списък",
 NumberedListProp	: "Параметри на нумерирания списък",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Тип",
 DlgLstTypeCircle	: "Окръжност",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Кръг",
 DlgLstTypeSquare	: "Квадрат",
 DlgLstTypeNumbers	: "Числа (1, 2, 3)",
 DlgLstTypeLCase		: "Малки букви (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "От дясно на ляво",
 DlgDocLangCode		: "Код на езика",
 DlgDocCharSet		: "Кодиране на символите",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Друго кодиране на символите",
 
 DlgDocDocType		: "Тип на документа",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Изберете шаблон <br>(текущото съдържание на редактора ще бъде загубено):",
 DlgTemplatesLoading	: "Зареждане на списъка с шаблоните. Моля изчакайте...",
 DlgTemplatesNoTpl	: "(Няма дефинирани шаблони)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "За",
 DlgAboutBrowserInfoTab	: "Информация за браузъра",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "версия",
-DlgAboutLicense		: "Лиценз по условията на GNU Lesser General Public License",
 DlgAboutInfo		: "За повече информация посетете"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/bn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/bn.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/bn.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bengali/Bangla 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			: "লিংক সরাও",
+Anchor				: "নোঙ্গর",
+InsertImageLbl		: "ছবির লেবেল যুক্ত কর",
+InsertImage			: "ছবি যুক্ত কর",
+InsertFlashLbl		: "ফ্লাশ লেবেল যুক্ত কর",
+InsertFlash			: "ফ্লাশ যুক্ত কর",
+InsertTableLbl		: "টেবিলের লেবেল যুক্ত কর",
+InsertTable			: "টেবিল যুক্ত কর",
+InsertLineLbl		: "রেখা যুক্ত কর",
+InsertLine			: "রেখা যুক্ত কর",
+InsertSpecialCharLbl: "বিশেষ অক্ষরের লেবেল যুক্ত কর",
+InsertSpecialChar	: "বিশেষ অক্ষর যুক্ত কর",
+InsertSmileyLbl		: "স্মাইলী",
+InsertSmiley		: "স্মাইলী যুক্ত কর",
+About				: "FCKeditor কে বানিয়েছে",
+Bold				: "বোল্ড",
+Italic				: "ইটালিক",
+Underline			: "আন্ডারলাইন",
+StrikeThrough		: "স্ট্রাইক থ্রু",
+Subscript			: "অধোলেখ",
+Superscript			: "অভিলেখ",
+LeftJustify			: "বা দিকে ঘেঁষা",
+CenterJustify		: "মাঝ বরাবর ঘেষা",
+RightJustify		: "ডান দিকে ঘেঁষা",
+BlockJustify		: "ব্লক জাস্টিফাই",
+DecreaseIndent		: "ইনডেন্ট কমাও",
+IncreaseIndent		: "ইনডেন্ট বাড়াও",
+Undo				: "আনডু",
+Redo				: "রি-ডু",
+NumberedListLbl		: "সাংখ্যিক লিস্টের লেবেল",
+NumberedList		: "সাংখ্যিক লিস্ট",
+BulletedListLbl		: "বুলেট লিস্ট লেবেল",
+BulletedList		: "বুলেটেড লিস্ট",
+ShowTableBorders	: "টেবিল বর্ডার",
+ShowDetails			: "সবটুকু দেখাও",
+Style				: "স্টাইল",
+FontFormat			: "ফন্ট ফরমেট",
+Font				: "ফন্ট",
+FontSize			: "সাইজ",
+TextColor			: "টেক্স্ট রং",
+BGColor				: "বেকগ্রাউন্ড রং",
+Source				: "সোর্স",
+Find				: "খোজো",
+Replace				: "রিপ্লেস",
+SpellCheck			: "বানান চেক",
+UniversalKeyboard	: "সার্বজনীন কিবোর্ড",
+PageBreakLbl		: "পেজ ব্রেক লেবেল",
+PageBreak			: "পেজ ব্রেক",
+
+Form			: "ফর্ম",
+Checkbox		: "চেক বাক্স",
+RadioButton		: "রেডিও বাটন",
+TextField		: "টেক্সট ফীল্ড",
+Textarea		: "টেক্সট এরিয়া",
+HiddenField		: "গুপ্ত ফীল্ড",
+Button			: "বাটন",
+SelectionField	: "বাছাই ফীল্ড",
+ImageButton		: "ছবির বাটন",
+
+FitWindow		: "উইন্ডো ফিট কর",
+
+// Context Menu
+EditLink			: "লিংক সম্পাদন",
+CellCM				: "সেল",
+RowCM				: "রো",
+ColumnCM			: "কলাম",
+InsertRow			: "রো যুক্ত কর",
+DeleteRows			: "রো মুছে দাও",
+InsertColumn		: "কলাম যুক্ত কর",
+DeleteColumns		: "কলাম মুছে দাও",
+InsertCell			: "সেল যুক্ত কর",
+DeleteCells			: "সেল মুছে দাও",
+MergeCells			: "সেল জোড়া দাও",
+SplitCell			: "সেল আলাদা কর",
+TableDelete			: "টেবিল ডিলীট কর",
+CellProperties		: "সেলের প্রোপার্টিজ",
+TableProperties		: "টেবিল প্রোপার্টি",
+ImageProperties		: "ছবি প্রোপার্টি",
+FlashProperties		: "ফ্লাশ প্রোপার্টি",
+
+AnchorProp			: "নোঙর প্রোপার্টি",
+ButtonProp			: "বাটন প্রোপার্টি",
+CheckboxProp		: "চেক বক্স প্রোপার্টি",
+HiddenFieldProp		: "গুপ্ত ফীল্ড প্রোপার্টি",
+RadioButtonProp		: "রেডিও বাটন প্রোপার্টি",
+ImageButtonProp		: "ছবি বাটন প্রোপার্টি",
+TextFieldProp		: "টেক্সট ফীল্ড প্রোপার্টি",
+SelectionFieldProp	: "বাছাই ফীল্ড প্রোপার্টি",
+TextareaProp		: "টেক্সট এরিয়া প্রোপার্টি",
+FormProp			: "ফর্ম প্রোপার্টি",
+
+FontFormats			: "সাধারণ;ফর্মেটেড;ঠিকানা;শীর্ষক ১;শীর্ষক ২;শীর্ষক ৩;শীর্ষক ৪;শীর্ষক ৫;শীর্ষক ৬;শীর্ষক (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML প্রসেস করা হচ্ছে",
+Done				: "শেষ হয়েছে",
+PasteWordConfirm	: "যে টেকস্টটি আপনি পেস্ট করতে চাচ্ছেন মনে হচ্ছে সেটি ওয়ার্ড থেকে কপি করা। আপনি কি পেস্ট করার আগে একে পরিষ্কার করতে চান?",
+NotCompatiblePaste	: "এই কমান্ডটি শুধুমাত্র ইন্টারনেট এক্সপ্লোরার ৫.০ বা তার পরের ভার্সনে পাওয়া সম্ভব। আপনি কি পরিষ্কার না করেই পেস্ট করতে চান?",
+UnknownToolbarItem	: "অজানা টুলবার আইটেম \"%1\"",
+UnknownCommand		: "অজানা কমান্ড \"%1\"",
+NotImplemented		: "কমান্ড ইমপ্লিমেন্ট করা হয়নি",
+UnknownToolbarSet	: "টুলবার সেট \"%1\" এর অস্তিত্ব নেই",
+NoActiveX			: "আপনার ব্রাউজারের সুরক্ষা সেটিংস কারনে এডিটরের কিছু ফিচার পাওয়া নাও যেতে পারে। আপনাকে অবশ্যই \"Run ActiveX controls and plug-ins\" এনাবেল করে নিতে হবে। আপনি ভুলভ্রান্তি কিছু কিছু ফিচারের অনুপস্থিতি উপলব্ধি করতে পারেন।",
+BrowseServerBlocked : "রিসোর্স ব্রাউজার খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",
+DialogBlocked		: "ডায়ালগ ইউন্ডো খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।",
+
+// Dialogs
+DlgBtnOK			: "ওকে",
+DlgBtnCancel		: "বাতিল",
+DlgBtnClose			: "বন্ধ কর",
+DlgBtnBrowseServer	: "ব্রাউজ সার্ভার",
+DlgAdvancedTag		: "এডভান্সড",
+DlgOpOther			: "<অন্য>",
+DlgInfoTab			: "তথ্য",
+DlgAlertUrl			: "দয়া করে URL যুক্ত করুন",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<সেট নেই>",
+DlgGenId			: "আইডি",
+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	: "নোঙরের আইডি দিয়ে",
+DlgLnkNoAnchors		: "<ডকুমেন্টে আর কোন নোঙর নেই>",		//REVIEW : Change < and > with ( and )
+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	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "রং বাছাই কর",
+DlgColorBtnClear	: "পরিষ্কার কর",
+DlgColorHighlight	: "হাইলাইট",
+DlgColorSelected	: "সিলেক্টেড",
+
+// Smiley Dialog
+DlgSmileyTitle		: "স্মাইলী যুক্ত কর",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "বিশেষ ক্যারেক্টার বাছাই কর",
+
+// Table Dialog
+DlgTableTitle		: "টেবিল প্রোপার্টি",
+DlgTableRows		: "রো",
+DlgTableColumns		: "কলাম",
+DlgTableBorder		: "বর্ডার সাইজ",
+DlgTableAlign		: "এলাইনমেন্ট",
+DlgTableAlignNotSet	: "<সেট নেই>",
+DlgTableAlignLeft	: "বামে",
+DlgTableAlignCenter	: "মাঝখানে",
+DlgTableAlignRight	: "ডানে",
+DlgTableWidth		: "প্রস্থ",
+DlgTableWidthPx		: "পিক্সেল",
+DlgTableWidthPc		: "শতকরা",
+DlgTableHeight		: "দৈর্ঘ্য",
+DlgTableCellSpace	: "সেল স্পেস",
+DlgTableCellPad		: "সেল প্যাডিং",
+DlgTableCaption		: "শীর্ষক",
+DlgTableSummary		: "সারাংশ",
+
+// Table Cell Dialog
+DlgCellTitle		: "সেল প্রোপার্টি",
+DlgCellWidth		: "প্রস্থ",
+DlgCellWidthPx		: "পিক্সেল",
+DlgCellWidthPc		: "শতকরা",
+DlgCellHeight		: "দৈর্ঘ্য",
+DlgCellWordWrap		: "ওয়ার্ড রেপ",
+DlgCellWordWrapNotSet	: "<সেট নেই>",
+DlgCellWordWrapYes	: "হাঁ",
+DlgCellWordWrapNo	: "না",
+DlgCellHorAlign		: "হরাইজন্টাল এলাইনমেন্ট",
+DlgCellHorAlignNotSet	: "<সেট নেই>",
+DlgCellHorAlignLeft	: "বামে",
+DlgCellHorAlignCenter	: "মাঝখানে",
+DlgCellHorAlignRight: "ডানে",
+DlgCellVerAlign		: "ভার্টিক্যাল এলাইনমেন্ট",
+DlgCellVerAlignNotSet	: "<সেট নেই>",
+DlgCellVerAlignTop	: "উপর",
+DlgCellVerAlignMiddle	: "মধ্য",
+DlgCellVerAlignBottom	: "নীচে",
+DlgCellVerAlignBaseline	: "মূলরেখা",
+DlgCellRowSpan		: "রো স্প্যান",
+DlgCellCollSpan		: "কলাম স্প্যান",
+DlgCellBackColor	: "ব্যাকগ্রাউন্ড রং",
+DlgCellBorderColor	: "বর্ডারের রং",
+DlgCellBtnSelect	: "বাছাই কর",
+
+// Find Dialog
+DlgFindTitle		: "খোঁজো",
+DlgFindFindBtn		: "খোঁজো",
+DlgFindNotFoundMsg	: "আপনার উল্লেখিত টেকস্ট পাওয়া যায়নি",
+
+// Replace Dialog
+DlgReplaceTitle			: "বদলে দাও",
+DlgReplaceFindLbl		: "যা খুঁজতে হবে:",
+DlgReplaceReplaceLbl	: "যার সাথে বদলাতে হবে:",
+DlgReplaceCaseChk		: "কেস মিলাও",
+DlgReplaceReplaceBtn	: "বদলে দাও",
+DlgReplaceReplAllBtn	: "সব বদলে দাও",
+DlgReplaceWordChk		: "পুরা শব্দ মেলাও",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+X)।",
+PasteErrorCopy	: "আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+C)।",
+
+PasteAsText		: "সাদা টেক্সট হিসেবে পেস্ট কর",
+PasteFromWord	: "ওয়ার্ড থেকে পেস্ট কর",
+
+DlgPasteMsg2	: "অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "ফন্ট ফেস ডেফিনেশন ইগনোর করুন",
+DlgPasteRemoveStyles	: "স্টাইল ডেফিনেশন সরিয়ে দিন",
+DlgPasteCleanBox		: "বাক্স পরিষ্কার করুন",
+
+// 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	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// 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			: "Start",	//MISSING
+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",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "অন্য ক্যারেক্টার সেট এনকোডিং",
+
+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	: "অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন<br>(আসল কনটেন্ট হারিয়ে যাবে):",
+DlgTemplatesLoading	: "টেমপ্লেট লিস্ট হারিয়ে যাবে। অনুগ্রহ করে অপেক্ষা করুন...",
+DlgTemplatesNoTpl	: "(কোন টেমপ্লেট ডিফাইন করা নেই)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "কে বানিয়েছে",
+DlgAboutBrowserInfoTab	: "ব্রাউজারের ব্যাপারে তথ্য",
+DlgAboutLicenseTab	: "লাইসেন্স",
+DlgAboutVersion		: "ভার্সন",
+DlgAboutInfo		: "আরও তথ্যের জন্য যান"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/bs.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/bs.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/bs.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: bs.js
- * 	Bosnian language file.
- * 
- * File Authors:
- * 		Muris Trax (www.elektronika.ba)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Bosnian language file.
  */
 
 var FCKLang =
@@ -83,8 +87,10 @@
 Source				: "HTML kôd",
 Find				: "Naði",
 Replace				: "Zamjeni",
-SpellCheck			: "Check Spell",	//MISSING
+SpellCheck			: "Check Spelling",	//MISSING
 UniversalKeyboard	: "Universal Keyboard",	//MISSING
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Form",	//MISSING
 Checkbox		: "Checkbox",	//MISSING
@@ -96,8 +102,13 @@
 SelectionField	: "Selection Field",	//MISSING
 ImageButton		: "Image Button",	//MISSING
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Izmjeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Ubaci red",
 DeleteRows			: "Briši redove",
 InsertColumn		: "Ubaci kolonu",
@@ -106,6 +117,7 @@
 DeleteCells			: "Briši æelije",
 MergeCells			: "Spoji æelije",
 SplitCell			: "Razdvoji æeliju",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Svojstva æelije",
 TableProperties		: "Svojstva tabele",
 ImageProperties		: "Svojstva slike",
@@ -122,7 +134,7 @@
 TextareaProp		: "Textarea Properties",	//MISSING
 FormProp			: "Form Properties",	//MISSING
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Procesiram XHTML. Molim saèekajte...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nepoznata komanda \"%1\"",
 NotImplemented		: "Komanda nije implementirana",
 UnknownToolbarSet	: "Traka sa alatima \"%1\" ne postoji",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Zatvori",
 DlgBtnBrowseServer	: "Browse Server",	//MISSING
 DlgAdvancedTag		: "Naprednije",
-DlgOpOther			: "&lt;Other&gt;",	//MISSING
+DlgOpOther			: "<Other>",	//MISSING
 DlgInfoTab			: "Info",	//MISSING
 DlgAlertUrl			: "Please insert the URL",	//MISSING
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nije podešeno&gt;",
+DlgGenNotSet		: "<nije podešeno>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Smjer pisanja",
 DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;drugi&gt;",
+DlgLnkProtoOther	: "<drugi>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Izaberi sidro",
 DlgLnkAnchorByName	: "Po nazivu sidra",
 DlgLnkAnchorById	: "Po Id-u elementa",
-DlgLnkNoAnchors		: "&lt;Nema dostupnih sidra na stranici&gt;",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra na stranici>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Adresa",
 DlgLnkEMailSubject	: "Subjekt poruke",
 DlgLnkEMailBody		: "Poruka",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Å alji na server",
 
 DlgLnkTarget		: "Prozor",
-DlgLnkTargetFrame	: "&lt;frejm&gt;",
-DlgLnkTargetPopup	: "&lt;popup prozor&gt;",
+DlgLnkTargetFrame	: "<frejm>",
+DlgLnkTargetPopup	: "<popup prozor>",
 DlgLnkTargetBlank	: "Novi prozor (_blank)",
 DlgLnkTargetParent	: "Glavni prozor (_parent)",
 DlgLnkTargetSelf	: "Isti prozor (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Molimo ukucajte URL link",
 DlnLnkMsgNoEMail	: "Molimo ukucajte e-mail adresu",
 DlnLnkMsgNoAnchor	: "Molimo izaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Izaberi boju",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Razmak æelija",
 DlgTableCellPad		: "Uvod æelija",
 DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Svojstva æelije",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Uporeðuj samo cijelu rijeè",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog lijepljenja. Molimo koristite kraticu na tastaturi (Ctrl+V).",
 PasteErrorCut	: "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).",
 PasteErrorCopy	: "Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).",
 
 PasteAsText		: "Zalijepi kao obièan tekst",
 PasteFromWord	: "Zalijepi iz Word-a",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
 DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
 DlgPasteCleanBox		: "Clean Up Box",	//MISSING
 
-
 // Color Picker
 ColorAutomatic	: "Automatska",
 ColorMoreColors	: "Više boja...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",	//MISSING
-DlgButtonType	: "Type",	//MISSING
+DlgButtonText		: "Text (Value)",	//MISSING
+DlgButtonType		: "Type",	//MISSING
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",	//MISSING
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Bulleted List Properties",	//MISSING
 NumberedListProp	: "Numbered List Properties",	//MISSING
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Type",	//MISSING
 DlgLstTypeCircle	: "Circle",	//MISSING
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
 DlgDocLangCode		: "Language Code",	//MISSING
 DlgDocCharSet		: "Character Set Encoding",	//MISSING
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
 
 DlgDocDocType		: "Document Type Heading",	//MISSING
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Templates",	//MISSING
 DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",	//MISSING
 DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
 DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "About",	//MISSING
 DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "verzija",
-DlgAboutLicense		: "Licencirano pod uslovima GNU Lesser General Public License",
 DlgAboutInfo		: "Za više informacija posjetite"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ca.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ca.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ca.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ca.js
- * 	Catalan language file.
- * 
- * File Authors:
- * 		Jordi Cerdan (nan at myp.ad)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Catalan language file.
  */
 
 var FCKLang =
@@ -22,123 +26,133 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Col·lapsar barra",
-ToolbarExpand		: "Expandir barra",
+ToolbarCollapse		: "Col·lapsa la barra",
+ToolbarExpand		: "Amplia la barra",
 
 // Toolbar Items and Context Menu
-Save				: "Guardar",
+Save				: "Desa",
 NewPage				: "Nova Pàgina",
 Preview				: "Vista Prèvia",
-Cut					: "Tallar",
-Copy				: "Copiar",
-Paste				: "Enganxar",
-PasteText			: "Enganxar com text planer",
-PasteWord			: "Enganxar des de Word",
-Print				: "Imprimir",
-SelectAll			: "Seleccionar tot",
-RemoveFormat		: "Eliminar Format",
+Cut					: "Retalla",
+Copy				: "Copia",
+Paste				: "Enganxa",
+PasteText			: "Enganxa com a text no formatat",
+PasteWord			: "Enganxa des del Word",
+Print				: "Imprimeix",
+SelectAll			: "Selecciona-ho tot",
+RemoveFormat		: "Elimina Format",
 InsertLinkLbl		: "Enllaç",
-InsertLink			: "Afegir/Editar Enllaç",
-RemoveLink			: "Eliminar Enllaç",
-Anchor				: "Afegir/Editar Àncora",
+InsertLink			: "Insereix/Edita enllaç",
+RemoveLink			: "Elimina enllaç",
+Anchor				: "Insereix/Edita àncora",
 InsertImageLbl		: "Imatge",
-InsertImage			: "Afegir/Editar Imatge",
+InsertImage			: "Insereix/Edita imatge",
 InsertFlashLbl		: "Flash",
-InsertFlash			: "Afegir/Editar Flash",
+InsertFlash			: "Insereix/Edita Flash",
 InsertTableLbl		: "Taula",
-InsertTable			: "Afegir/Editar Taula",
+InsertTable			: "Insereix/Edita taula",
 InsertLineLbl		: "Línia",
-InsertLine			: "Afegir Línia Horitzontal",
+InsertLine			: "Insereix línia horitzontal",
 InsertSpecialCharLbl: "Caràcter Especial",
-InsertSpecialChar	: "Afegir Caràcter Especial",
+InsertSpecialChar	: "Insereix caràcter especial",
 InsertSmileyLbl		: "Icona",
-InsertSmiley		: "Afegir Icona",
-About				: "Sobre FCKeditor",
+InsertSmiley		: "Insereix icona",
+About				: "Quant a FCKeditor",
 Bold				: "Negreta",
-Italic				: "Itàlica",
+Italic				: "Cursiva",
 Underline			: "Subratllat",
-StrikeThrough		: "Tatxat",
-Subscript			: "Subscript",
-Superscript			: "Superscript",
-LeftJustify			: "Justificar Esquerra",
-CenterJustify		: "Justificar Centrat",
-RightJustify		: "Justificar Dreta",
-BlockJustify		: "Justificar Bloc",
-DecreaseIndent		: "Disminuir Indentació",
-IncreaseIndent		: "Augmentar Indentació",
-Undo				: "Desfer",
-Redo				: "Refer",
-NumberedListLbl		: "Llista Numerada",
-NumberedList		: "Afegir/Eliminar Llista Numerada",
-BulletedListLbl		: "Llista Marcada",
-BulletedList		: "Afegir/Eliminar Llista Marcada",
-ShowTableBorders	: "Mostrar Costats de Taules",
-ShowDetails			: "Mostrar Detalls",
+StrikeThrough		: "Barrat",
+Subscript			: "Subíndex",
+Superscript			: "Superíndex",
+LeftJustify			: "Aliniament esquerra",
+CenterJustify		: "Aliniament centrat",
+RightJustify		: "Aliniament dreta",
+BlockJustify		: "Justifica",
+DecreaseIndent		: "Sagna el text",
+IncreaseIndent		: "Treu el sagnat del text",
+Undo				: "Desfés",
+Redo				: "Refés",
+NumberedListLbl		: "Llista numerada",
+NumberedList		: "Aplica o elimina la llista numerada",
+BulletedListLbl		: "Llista de pics",
+BulletedList		: "Aplica o elimina la llista de pics",
+ShowTableBorders	: "Mostra les vores de les taules",
+ShowDetails			: "Mostra detalls",
 Style				: "Estil",
 FontFormat			: "Format",
-Font				: "Font",
-FontSize			: "Tamany",
+Font				: "Tipus de lletra",
+FontSize			: "Mida",
 TextColor			: "Color de Text",
 BGColor				: "Color de Fons",
-Source				: "Font",
-Find				: "Cercar",
-Replace				: "Remplaçar",
-SpellCheck			: "Verificar sintaxi",
+Source				: "Codi font",
+Find				: "Cerca",
+Replace				: "Reemplaça",
+SpellCheck			: "Revisa l'ortografia",
 UniversalKeyboard	: "Teclat universal",
+PageBreakLbl		: "Salt de pàgina",
+PageBreak			: "Insereix salt de pàgina",
 
 Form			: "Formulari",
 Checkbox		: "Casella de verificació",
-RadioButton		: "Botó ràdio",
+RadioButton		: "Botó d'opció",
 TextField		: "Camp de text",
 Textarea		: "Àrea de text",
 HiddenField		: "Camp ocult",
-Button			: "botó",
+Button			: "Botó",
 SelectionField	: "Camp de selecció",
-ImageButton		: "Botó imatge",
+ImageButton		: "Botó d'imatge",
 
+FitWindow		: "Maximiza la mida de l'editor",
+
 // Context Menu
-EditLink			: "Editar Enllaç",
-InsertRow			: "Afegir Fila",
-DeleteRows			: "Eliminar Files",
-InsertColumn		: "Afegir Columna",
-DeleteColumns		: "Eliminar Columnes",
-InsertCell			: "Afegir Cel·la",
-DeleteCells			: "Eliminar Cel·les",
-MergeCells			: "Fusionar Cel·les",
-SplitCell			: "Separar Cel·les",
-CellProperties		: "Proprietats de Cel·la",
-TableProperties		: "Proprietats de Taula",
-ImageProperties		: "Proprietats d'Image",
-FlashProperties		: "Proprietats Flash",
+EditLink			: "Edita l'enllaç",
+CellCM				: "Cel·la",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
+InsertRow			: "Insereix una fila",
+DeleteRows			: "Suprimeix una fila",
+InsertColumn		: "Afegeix una columna",
+DeleteColumns		: "Suprimeix una columna",
+InsertCell			: "Insereix una cel·la",
+DeleteCells			: "Suprimeix les cel·les",
+MergeCells			: "Fusiona les cel·les",
+SplitCell			: "Separa les cel·les",
+TableDelete			: "Suprimeix la taula",
+CellProperties		: "Propietats de la cel·la",
+TableProperties		: "Propietats de la taula",
+ImageProperties		: "Propietats de la imatge",
+FlashProperties		: "Propietats del Flash",
 
-AnchorProp			: "Proprietats d'àncora",
-ButtonProp			: "Proprietats de botó",
-CheckboxProp		: "Proprietats de casella de verificació",
-HiddenFieldProp		: "Proprietats de camp ocult",
-RadioButtonProp		: "Proprietats de botó ràdio",
-ImageButtonProp		: "Proprietats de botó imatge",
-TextFieldProp		: "Proprietats de camp de text",
-SelectionFieldProp	: "Proprietats de camp de selecció",
-TextareaProp		: "Proprietats de camp de text",
-FormProp			: "Proprietats de formulari",
+AnchorProp			: "Propietats de l'àncora",
+ButtonProp			: "Propietats del botó",
+CheckboxProp		: "Propietats de la casella de verificació",
+HiddenFieldProp		: "Propietats del camp ocult",
+RadioButtonProp		: "Propietats del botó d'opció",
+ImageButtonProp		: "Propietats del botó d'imatge",
+TextFieldProp		: "Propietats del camp de text",
+SelectionFieldProp	: "Propietats del camp de selecció",
+TextareaProp		: "Propietats de l'àrea de text",
+FormProp			: "Propietats del formulari",
 
-FontFormats			: "Normal;Formatejat;Adreça;Capçalera 1;Capçalera 2;Capçalera 3;Capçalera 4;Capçalera 5;Capçalera 6",
+FontFormats			: "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Processant XHTML. Si us plau esperi...",
 Done				: "Fet",
 PasteWordConfirm	: "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?",
 NotCompatiblePaste	: "Aquesta funció és disponible per a Internet Explorer versió 5.5 o superior. Voleu enganxar sense netejar?",
-UnknownToolbarItem	: "Element de la Barra d'eines desconegut \"%1\"",
+UnknownToolbarItem	: "Element de la barra d'eines desconegut \"%1\"",
 UnknownCommand		: "Nom de comanda desconegut \"%1\"",
 NotImplemented		: "Mètode no implementat",
 UnknownToolbarSet	: "Conjunt de barra d'eines \"%1\" inexistent",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
-DlgBtnOK			: "OK",
-DlgBtnCancel		: "Cancelar",
-DlgBtnClose			: "Tancar",
+DlgBtnOK			: "D'acord",
+DlgBtnCancel		: "Cancel·la",
+DlgBtnClose			: "Tanca",
 DlgBtnBrowseServer	: "Veure servidor",
 DlgAdvancedTag		: "Avançat",
 DlgOpOther			: "Altres",
@@ -146,126 +160,127 @@
 DlgAlertUrl			: "Si us plau, afegiu la URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;no definit&gt;",
+DlgGenNotSet		: "<no definit>",
 DlgGenId			: "Id",
-DlgGenLangDir		: "Direcció Idioma",
-DlgGenLangDirLtr	: "Esquerra a Dreta (LTR)",
-DlgGenLangDirRtl	: "Dreta a Esquerra (RTL)",
-DlgGenLangCode		: "Codi de Llengua",
+DlgGenLangDir		: "Direcció de l'idioma",
+DlgGenLangDirLtr	: "D'esquerra a dreta (LTR)",
+DlgGenLangDirRtl	: "De dreta a esquerra (RTL)",
+DlgGenLangCode		: "Codi d'idioma",
 DlgGenAccessKey		: "Clau d'accés",
 DlgGenName			: "Nom",
 DlgGenTabIndex		: "Index de Tab",
-DlgGenLongDescr		: "Descripció Llarga URL",
-DlgGenClass			: "Classes del Full d'Estils",
-DlgGenTitle			: "Títol Consultiu",
-DlgGenContType		: "Tipus de Contingut Consultiu",
-DlgGenLinkCharset	: "Conjunt de Caràcters Font Enllaçat",
+DlgGenLongDescr		: "Descripció llarga de la URL",
+DlgGenClass			: "Classes del full d'estil",
+DlgGenTitle			: "Títol consultiu",
+DlgGenContType		: "Tipus de contingut consultiu",
+DlgGenLinkCharset	: "Conjunt de caràcters font enllaçat",
 DlgGenStyle			: "Estil",
 
 // Image Dialog
-DlgImgTitle			: "Proprietats d'Imatge",
-DlgImgInfoTab		: "Informació d'Imatge",
-DlgImgBtnUpload		: "Enviar-la al servidor",
+DlgImgTitle			: "Propietats de la imatge",
+DlgImgInfoTab		: "Informació de la imatge",
+DlgImgBtnUpload		: "Envia-la al servidor",
 DlgImgURL			: "URL",
-DlgImgUpload		: "Pujar",
-DlgImgAlt			: "Text Alternatiu",
+DlgImgUpload		: "Puja",
+DlgImgAlt			: "Text alternatiu",
 DlgImgWidth			: "Amplada",
 DlgImgHeight		: "Alçada",
-DlgImgLockRatio		: "Bloquejar Proporcions",
-DlgBtnResetSize		: "Restaurar Tamany",
-DlgImgBorder		: "Costat",
-DlgImgHSpace		: "HSpace",
-DlgImgVSpace		: "VSpace",
+DlgImgLockRatio		: "Bloqueja les proporcions",
+DlgBtnResetSize		: "Restaura la mida",
+DlgImgBorder		: "Vora",
+DlgImgHSpace		: "Espaiat horit.",
+DlgImgVSpace		: "Espaiat vert.",
 DlgImgAlign			: "Alineació",
-DlgImgAlignLeft		: "Left",
+DlgImgAlignLeft		: "Ajusta a l'esquerra",
 DlgImgAlignAbsBottom: "Abs Bottom",
 DlgImgAlignAbsMiddle: "Abs Middle",
 DlgImgAlignBaseline	: "Baseline",
 DlgImgAlignBottom	: "Bottom",
 DlgImgAlignMiddle	: "Middle",
-DlgImgAlignRight	: "Right",
+DlgImgAlignRight	: "Ajusta a la dreta",
 DlgImgAlignTextTop	: "Text Top",
 DlgImgAlignTop		: "Top",
-DlgImgPreview		: "Vista Prèvia",
+DlgImgPreview		: "Vista prèvia",
 DlgImgAlertUrl		: "Si us plau, escriviu la URL de la imatge",
 DlgImgLinkTab		: "Enllaç",
 
 // Flash Dialog
-DlgFlashTitle		: "Propietats Flash",
-DlgFlashChkPlay		: "Reprodució Automàtica",
+DlgFlashTitle		: "Propietats del Flash",
+DlgFlashChkPlay		: "Reprodució automàtica",
 DlgFlashChkLoop		: "Bucle",
-DlgFlashChkMenu		: "Habilitar Menu Flash",
+DlgFlashChkMenu		: "Habilita menú Flash",
 DlgFlashScale		: "Escala",
-DlgFlashScaleAll	: "Mostrar tot",
-DlgFlashScaleNoBorder	: "Sense Costats",
+DlgFlashScaleAll	: "Mostra-ho tot",
+DlgFlashScaleNoBorder	: "Sense vores",
 DlgFlashScaleFit	: "Mida exacta",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Enllaç",
-DlgLnkInfoTab		: "Informació d'Enllaç",
+DlgLnkInfoTab		: "Informació de l'enllaç",
 DlgLnkTargetTab		: "Destí",
 
-DlgLnkType			: "Tipus de Link",
+DlgLnkType			: "Tipus d'enllaç",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Àncora en aquesta pàgina",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;altra&gt;",
+DlgLnkProtoOther	: "<altra>",
 DlgLnkURL			: "URL",
-DlgLnkAnchorSel		: "Seleccionar una àncora",
+DlgLnkAnchorSel		: "Selecciona una àncora",
 DlgLnkAnchorByName	: "Per nom d'àncora",
 DlgLnkAnchorById	: "Per Id d'element",
-DlgLnkNoAnchors		: "&lt;No hi ha àncores disponibles en aquest document&gt;",
+DlgLnkNoAnchors		: "<No hi ha àncores disponibles en aquest document>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Adreça d'E-Mail",
-DlgLnkEMailSubject	: "Subjecte del Missatge",
-DlgLnkEMailBody		: "Cos del Missatge",
-DlgLnkUpload		: "Pujar",
-DlgLnkBtnUpload		: "Enviar al Servidor",
+DlgLnkEMailSubject	: "Assumpte del missatge",
+DlgLnkEMailBody		: "Cos del missatge",
+DlgLnkUpload		: "Puja",
+DlgLnkBtnUpload		: "Envia al servidor",
 
 DlgLnkTarget		: "Destí",
-DlgLnkTargetFrame	: "&lt;marc&gt;",
-DlgLnkTargetPopup	: "&lt;finestra popup&gt;",
-DlgLnkTargetBlank	: "Nova Finestra (_blank)",
-DlgLnkTargetParent	: "Finestra Pare (_parent)",
-DlgLnkTargetSelf	: "Mateixa Finestra (_self)",
+DlgLnkTargetFrame	: "<marc>",
+DlgLnkTargetPopup	: "<finestra emergent>",
+DlgLnkTargetBlank	: "Nova finestra (_blank)",
+DlgLnkTargetParent	: "Finestra pare (_parent)",
+DlgLnkTargetSelf	: "Mateixa finestra (_self)",
 DlgLnkTargetTop		: "Finestra Major (_top)",
 DlgLnkTargetFrameName	: "Nom del marc de destí",
-DlgLnkPopWinName	: "Nom Finestra Popup",
-DlgLnkPopWinFeat	: "Característiques Finestra Popup",
+DlgLnkPopWinName	: "Nom finestra popup",
+DlgLnkPopWinFeat	: "Característiques finestra popup",
 DlgLnkPopResize		: "Redimensionable",
-DlgLnkPopLocation	: "Barra d'Adreça",
-DlgLnkPopMenu		: "Barra de Menú",
-DlgLnkPopScroll		: "Barres d'Scroll",
-DlgLnkPopStatus		: "Barra d'Estat",
-DlgLnkPopToolbar	: "Barra d'Eines",
+DlgLnkPopLocation	: "Barra d'adreça",
+DlgLnkPopMenu		: "Barra de menú",
+DlgLnkPopScroll		: "Barres d'scroll",
+DlgLnkPopStatus		: "Barra d'estat",
+DlgLnkPopToolbar	: "Barra d'eines",
 DlgLnkPopFullScrn	: "Pantalla completa (IE)",
 DlgLnkPopDependent	: "Depenent (Netscape)",
 DlgLnkPopWidth		: "Amplada",
 DlgLnkPopHeight		: "Alçada",
-DlgLnkPopLeft		: "Posició Esquerra",
-DlgLnkPopTop		: "Posició Dalt",
+DlgLnkPopLeft		: "Posició esquerra",
+DlgLnkPopTop		: "Posició dalt",
 
 DlnLnkMsgNoUrl		: "Si us plau, escrigui l'enllaç URL",
 DlnLnkMsgNoEMail	: "Si us plau, escrigui l'adreça e-mail",
 DlnLnkMsgNoAnchor	: "Si us plau, escrigui l'àncora",
+DlnLnkMsgInvPopName	: "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais",
 
 // Color Dialog
-DlgColorTitle		: "Seleccioni Color",
-DlgColorBtnClear	: "Netejar",
-DlgColorHighlight	: "Realçar",
-DlgColorSelected	: "Seleccionat",
+DlgColorTitle		: "Selecciona el color",
+DlgColorBtnClear	: "Neteja",
+DlgColorHighlight	: "Realça",
+DlgColorSelected	: "Selecciona",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Afegir una Icona",
+DlgSmileyTitle		: "Insereix una icona",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Seleccioneu Caràcter Especial",
+DlgSpecialCharTitle	: "Selecciona el caràcter especial",
 
 // Table Dialog
-DlgTableTitle		: "Proprietats de Taula",
+DlgTableTitle		: "Propietats de la taula",
 DlgTableRows		: "Files",
 DlgTableColumns		: "Columnes",
-DlgTableBorder		: "Tamany de Costat",
+DlgTableBorder		: "Tamany vora",
 DlgTableAlign		: "Alineació",
 DlgTableAlignNotSet	: "<No Definit>",
 DlgTableAlignLeft	: "Esquerra",
@@ -275,26 +290,27 @@
 DlgTableWidthPx		: "píxels",
 DlgTableWidthPc		: "percentatge",
 DlgTableHeight		: "Alçada",
-DlgTableCellSpace	: "Cell spacing",
-DlgTableCellPad		: "Cell padding",
-DlgTableCaption		: "Capçalera",
+DlgTableCellSpace	: "Espaiat de cel·les",
+DlgTableCellPad		: "Encoixinament de cel·les",
+DlgTableCaption		: "Títol",
+DlgTableSummary		: "Resum",
 
 // Table Cell Dialog
-DlgCellTitle		: "Proprietats de Cel·la",
+DlgCellTitle		: "Propietats de la cel·la",
 DlgCellWidth		: "Amplada",
 DlgCellWidthPx		: "píxels",
 DlgCellWidthPc		: "percentatge",
 DlgCellHeight		: "Alçada",
-DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrap		: "Ajust de paraula",
 DlgCellWordWrapNotSet	: "<No Definit>",
 DlgCellWordWrapYes	: "Si",
 DlgCellWordWrapNo	: "No",
-DlgCellHorAlign		: "Alineació Horitzontal",
+DlgCellHorAlign		: "Alineació horitzontal",
 DlgCellHorAlignNotSet	: "<No Definit>",
 DlgCellHorAlignLeft	: "Esquerra",
 DlgCellHorAlignCenter	: "Centre",
 DlgCellHorAlignRight: "Dreta",
-DlgCellVerAlign		: "Alineació Vertical",
+DlgCellVerAlign		: "Alineació vertical",
 DlgCellVerAlignNotSet	: "<No definit>",
 DlgCellVerAlignTop	: "Top",
 DlgCellVerAlignMiddle	: "Middle",
@@ -302,70 +318,72 @@
 DlgCellVerAlignBaseline	: "Baseline",
 DlgCellRowSpan		: "Rows Span",
 DlgCellCollSpan		: "Columns Span",
-DlgCellBackColor	: "Color de Fons",
-DlgCellBorderColor	: "Colr de Costat",
-DlgCellBtnSelect	: "Seleccioni...",
+DlgCellBackColor	: "Color de fons",
+DlgCellBorderColor	: "Color de la vora",
+DlgCellBtnSelect	: "Seleccioneu...",
 
 // Find Dialog
-DlgFindTitle		: "Cercar",
-DlgFindFindBtn		: "Cercar",
-DlgFindNotFoundMsg	: "El text especificat no ha estat trobat.",
+DlgFindTitle		: "Cerca",
+DlgFindFindBtn		: "Cerca",
+DlgFindNotFoundMsg	: "El text especificat no s'ha trobat.",
 
 // Replace Dialog
-DlgReplaceTitle			: "Remplaçar",
-DlgReplaceFindLbl		: "Cercar:",
-DlgReplaceReplaceLbl	: "Remplaçar per:",
-DlgReplaceCaseChk		: "Sensible a Majúscules",
-DlgReplaceReplaceBtn	: "Remplaçar",
-DlgReplaceReplAllBtn	: "Remplaçar Tot",
-DlgReplaceWordChk		: "Cercar Paraula Completa",
+DlgReplaceTitle			: "Reemplaça",
+DlgReplaceFindLbl		: "Cerca:",
+DlgReplaceReplaceLbl	: "Remplaça amb:",
+DlgReplaceCaseChk		: "Sensible a majúscules",
+DlgReplaceReplaceBtn	: "Reemplaça",
+DlgReplaceReplAllBtn	: "Reemplaça'ls tots",
+DlgReplaceWordChk		: "Cerca paraula completa",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "La seguretat del vostre navigador no permet executar automàticament les operacions d'enganxat. Si us plau, utilitzeu el teclat (Ctrl+V).",
-PasteErrorCut	: "La seguretat del vostre navigador no permet executar automàticament les operacions de tallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
-PasteErrorCopy	: "La seguretat del vostre navigador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
+PasteErrorCut	: "La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).",
+PasteErrorCopy	: "La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).",
 
-PasteAsText		: "Enganxar com Text Planer",
-PasteFromWord	: "Enganxar com Word",
+PasteAsText		: "Enganxa com a text sense format",
+PasteFromWord	: "Enganxa com a Word",
 
 DlgPasteMsg2	: "Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.",
-DlgPasteIgnoreFont		: "Ignorar definicions de font",
-DlgPasteRemoveStyles	: "Eliminar definicions d'estil",
-DlgPasteCleanBox		: "Netejar camp",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignora definicions de font",
+DlgPasteRemoveStyles	: "Elimina definicions d'estil",
+DlgPasteCleanBox		: "Neteja camp",
 
-
 // Color Picker
 ColorAutomatic	: "Automàtic",
-ColorMoreColors	: "Més Colors...",
+ColorMoreColors	: "Més colors...",
 
 // Document Properties
-DocProps		: "Proprietats de document",
+DocProps		: "Propietats del document",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Proprietats d'àncora",
-DlgAnchorName		: "Nom d'àncora",
-DlgAnchorErrorName	: "Si us plau, escrigui el nom de l'ancora",
+DlgAnchorTitle		: "Propietats de l'àncora",
+DlgAnchorName		: "Nom de l'àncora",
+DlgAnchorErrorName	: "Si us plau, escriviu el nom de l'ancora",
 
 // Speller Pages Dialog
 DlgSpellNotInDic		: "No és al diccionari",
-DlgSpellChangeTo		: "Canviar a",
-DlgSpellBtnIgnore		: "Ignorar",
-DlgSpellBtnIgnoreAll	: "Ignorar tot",
-DlgSpellBtnReplace		: "Remplaçar",
-DlgSpellBtnReplaceAll	: "Replaçar tot",
-DlgSpellBtnUndo			: "Desfer",
-DlgSpellNoSuggestions	: "Cap suggestió",
-DlgSpellProgress		: "Comprovació de sintaxi en progrés",
-DlgSpellNoMispell		: "Comprovació de sintaxi completada",
-DlgSpellNoChanges		: "Comprovació de sintaxi: cap paraulada canviada",
-DlgSpellOneChange		: "Comprovació de sintaxi: una paraula canviada",
-DlgSpellManyChanges		: "Comprovació de sintaxi %1 paraules canviades",
+DlgSpellChangeTo		: "Canvia a",
+DlgSpellBtnIgnore		: "Ignora",
+DlgSpellBtnIgnoreAll	: "Ignora-les totes",
+DlgSpellBtnReplace		: "Canvia",
+DlgSpellBtnReplaceAll	: "Canvia-les totes",
+DlgSpellBtnUndo			: "Desfés",
+DlgSpellNoSuggestions	: "Cap sugerència",
+DlgSpellProgress		: "Comprovació ortogràfica en progrés",
+DlgSpellNoMispell		: "Comprovació ortogràfica completada",
+DlgSpellNoChanges		: "Comprovació ortogràfica: cap paraulada canviada",
+DlgSpellOneChange		: "Comprovació ortogràfica: una paraula canviada",
+DlgSpellManyChanges		: "Comprovació ortogràfica %1 paraules canviades",
 
-IeSpellDownload			: "Comprovació de sintaxi no instal·lat. Voleu descarregar-ho ara?",
+IeSpellDownload			: "Comprovació ortogràfica no instal·lada. Voleu descarregar-ho ara?",
 
 // Button Dialog
-DlgButtonText	: "Text (Valor)",
-DlgButtonType	: "Tipus",
+DlgButtonText		: "Text (Valor)",
+DlgButtonType		: "Tipus",
+DlgButtonTypeBtn	: "Botó",
+DlgButtonTypeSbm	: "Transmet formulari",
+DlgButtonTypeRst	: "Reinicia formulari",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nom",
@@ -382,16 +400,16 @@
 DlgSelectValue		: "Valor",
 DlgSelectSize		: "Tamany",
 DlgSelectLines		: "Línies",
-DlgSelectChkMulti	: "Permetre múltiples seleccions",
+DlgSelectChkMulti	: "Permet múltiples seleccions",
 DlgSelectOpAvail	: "Opcions disponibles",
 DlgSelectOpText		: "Text",
 DlgSelectOpValue	: "Valor",
-DlgSelectBtnAdd		: "Afegir",
-DlgSelectBtnModify	: "Modificar",
+DlgSelectBtnAdd		: "Afegeix",
+DlgSelectBtnModify	: "Modifica",
 DlgSelectBtnUp		: "Amunt",
 DlgSelectBtnDown	: "Avall",
-DlgSelectBtnSetValue : "Seleccionar per defecte",
-DlgSelectBtnDelete	: "Esborrar",
+DlgSelectBtnSetValue : "Selecciona per defecte",
+DlgSelectBtnDelete	: "Elimina",
 
 // Textarea Dialog
 DlgTextareaName	: "Nom",
@@ -405,18 +423,19 @@
 DlgTextMaxChars		: "Màxim de caràcters",
 DlgTextType			: "Tipus",
 DlgTextTypeText		: "Text",
-DlgTextTypePass		: "Contrassenya",
+DlgTextTypePass		: "Contrasenya",
 
 // Hidden Field Dialog
 DlgHiddenName	: "Nom",
 DlgHiddenValue	: "Valor",
 
 // Bulleted List Dialog
-BulletedListProp	: "Proprietats de llista marcada",
-NumberedListProp	: "Proprietats de llista numerada",
+BulletedListProp	: "Propietats de la llista de pics",
+NumberedListProp	: "Propietats de llista numerada",
+DlgLstStart			: "Inici",
 DlgLstType			: "Tipus",
 DlgLstTypeCircle	: "Cercle",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disc",
 DlgLstTypeSquare	: "Quadrat",
 DlgLstTypeNumbers	: "Números (1, 2, 3)",
 DlgLstTypeLCase		: "Lletres minúscules (a, b, c)",
@@ -436,7 +455,16 @@
 DlgDocLangDirRTL	: "Dreta a esquerra (RTL)",
 DlgDocLangCode		: "Codi de llenguatge",
 DlgDocCharSet		: "Codificació de conjunt de caràcters",
-DlgDocCharSetOther	: "Altra codificació de conjunt de caràcters",
+DlgDocCharSetCE		: "Centreeuropeu",
+DlgDocCharSetCT		: "Xinès tradicional (Big5)",
+DlgDocCharSetCR		: "Ciríl·lic",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "Japonès",
+DlgDocCharSetKR		: "Coreà",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europeu occidental",
+DlgDocCharSetOther	: "Una altra codificació de caràcters",
 
 DlgDocDocType		: "Capçalera de tipus de document",
 DlgDocDocTypeOther	: "Altra Capçalera de tipus de document",
@@ -461,15 +489,16 @@
 
 // Templates Dialog
 Templates			: "Plantilles",
-DlgTemplatesTitle	: "Contingut Plantilles",
+DlgTemplatesTitle	: "Contingut plantilles",
 DlgTemplatesSelMsg	: "Si us plau, seleccioneu la plantilla per obrir en l'editor<br>(el contingut actual no serà enregistrat):",
-DlgTemplatesLoading	: "Carregant la llista de plantilles. Si us plau, esperi...",
+DlgTemplatesLoading	: "Carregant la llista de plantilles. Si us plau, espereu...",
 DlgTemplatesNoTpl	: "(No hi ha plantilles definides)",
+DlgTemplatesReplace	: "Reemplaça el contingut actual",
 
 // About Dialog
-DlgAboutAboutTab	: "Sobre",
-DlgAboutBrowserInfoTab	: "Informació del navigador",
+DlgAboutAboutTab	: "Quant a",
+DlgAboutBrowserInfoTab	: "Informació del navegador",
+DlgAboutLicenseTab	: "Llicència",
 DlgAboutVersion		: "versió",
-DlgAboutLicense		: "Sota els termes de la Llicència GNU Lesser General Public License",
 DlgAboutInfo		: "Per a més informació aneu a"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/cs.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/cs.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/cs.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: cs.js
- * 	Czech language file.
- * 
- * File Authors:
- * 		David Horák (david.horak at email.cz)
- * 		Petr Plavjaník (plavjanik at gmail.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Czech language file.
  */
 
 var FCKLang =
@@ -44,8 +47,8 @@
 Anchor				: "Vložít/změnit záložku",
 InsertImageLbl		: "Obrázek",
 InsertImage			: "Vložit/změnit obrázek",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Vložit/Upravit Flash",
 InsertTableLbl		: "Tabulka",
 InsertTable			: "Vložit/změnit tabulku",
 InsertLineLbl		: "Linka",
@@ -73,7 +76,7 @@
 NumberedList		: "Vložit/odstranit číslovaný seznam",
 BulletedListLbl		: "Odrážky",
 BulletedList		: "Vložit/odstranit odrážky",
-ShowTableBorders	: "Zobrzit okraje tabulek",
+ShowTableBorders	: "Zobrazit okraje tabulek",
 ShowDetails			: "Zobrazit podrobnosti",
 Style				: "Styl",
 FontFormat			: "Formát",
@@ -86,6 +89,8 @@
 Replace				: "Nahradit",
 SpellCheck			: "Zkontrolovat pravopis",
 UniversalKeyboard	: "Univerzální klávesnice",
+PageBreakLbl		: "Konec stránky",
+PageBreak			: "Vložit konec stránky",
 
 Form			: "Formulář",
 Checkbox		: "Zaškrtávací políčko",
@@ -97,8 +102,13 @@
 SelectionField	: "Seznam",
 ImageButton		: "Obrázkové tlačítko",
 
+FitWindow		: "Maximalizovat velikost editoru",
+
 // Context Menu
 EditLink			: "Změnit odkaz",
+CellCM				: "Buňka",
+RowCM				: "Řádek",
+ColumnCM			: "Sloupec",
 InsertRow			: "Vložit řádek",
 DeleteRows			: "Smazat řádek",
 InsertColumn		: "Vložit sloupec",
@@ -107,10 +117,11 @@
 DeleteCells			: "Smazat buňky",
 MergeCells			: "Sloučit buňky",
 SplitCell			: "Rozdělit buňku",
+TableDelete			: "Smazat tabulku",
 CellProperties		: "Vlastnosti buňky",
 TableProperties		: "Vlastnosti tabulky",
 ImageProperties		: "Vlastnosti obrázku",
-FlashProperties		: "Flash Properties",	//MISSING
+FlashProperties		: "Vlastnosti Flashe",
 
 AnchorProp			: "Vlastnosti záložky",
 ButtonProp			: "Vlastnosti tlačítka",
@@ -123,18 +134,20 @@
 TextareaProp		: "Vlastnosti textové oblasti",
 FormProp			: "Vlastnosti formuláře",
 
-FontFormats			: "Normální;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6",
+FontFormats			: "Normální;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Probíhá zpracování XHTML. Prosím čekejte...",
 Done				: "Hotovo",
-PasteWordConfirm	: "Jak je vidět, vkládaný text je kopírován z Wordu. Chceet jej před vložením vyčistit?",
+PasteWordConfirm	: "Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?",
 NotCompatiblePaste	: "Tento příkaz je dostupný pouze v Internet Exploreru verze 5.5 nebo vyšší. Chcete vložit text bez vyčištění?",
 UnknownToolbarItem	: "Neznámá položka panelu nástrojů \"%1\"",
 UnknownCommand		: "Neznámý příkaz \"%1\"",
 NotImplemented		: "Příkaz není implementován",
 UnknownToolbarSet	: "Panel nástrojů \"%1\" neexistuje",
-NoActiveX			: "You 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
+NoActiveX			: "Nastavení bezpečnosti Vašeho prohlížeče omezuje funkčnost některých jeho možností. Je třeba zapnout volbu \"Spouštět ovládáací prvky ActiveX a moduly plug-in\", jinak nebude možné využívat všechny dosputné schopnosti editoru.",
+BrowseServerBlocked : "Průzkumník zdrojů nelze otevřít. Prověřte, zda nemáte aktivováno blokování popup oken.",
+DialogBlocked		: "Nelze otevřít dialogové okno. Prověřte, zda nemáte aktivováno blokování popup oken.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Zavřít",
 DlgBtnBrowseServer	: "Vybrat na serveru",
 DlgAdvancedTag		: "Rozšířené",
-DlgOpOther			: "&lt;Ostatní&gt;",
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgOpOther			: "<Ostatní>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Prosím vložte URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nenastaveno&gt;",
+DlgGenNotSet		: "<nenastaveno>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Orientace jazyka",
 DlgGenLangDirLtr	: "Zleva do prava (LTR)",
@@ -164,7 +177,7 @@
 DlgGenStyle			: "Styl",
 
 // Image Dialog
-DlgImgTitle			: "Vlastosti obrázku",
+DlgImgTitle			: "Vlastnosti obrázku",
 DlgImgInfoTab		: "Informace o obrázku",
 DlgImgBtnUpload		: "Odeslat na server",
 DlgImgURL			: "URL",
@@ -189,17 +202,17 @@
 DlgImgAlignTop		: "Nahoru",
 DlgImgPreview		: "Náhled",
 DlgImgAlertUrl		: "Zadejte prosím URL obrázku",
-DlgImgLinkTab		: "Link",	//MISSING
+DlgImgLinkTab		: "Odkaz",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "Vlastnosti Flashe",
+DlgFlashChkPlay		: "Automatické spuštění",
+DlgFlashChkLoop		: "Opakování",
+DlgFlashChkMenu		: "Nabídka Flash",
+DlgFlashScale		: "Zobrazit",
+DlgFlashScaleAll	: "Zobrazit vše",
+DlgFlashScaleNoBorder	: "Bez okraje",
+DlgFlashScaleFit	: "Přizpůsobit",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Odkaz",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "Kotva v této stránce",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;jiný&gt;",
+DlgLnkProtoOther	: "<jiný>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Vybrat kotvu",
 DlgLnkAnchorByName	: "Podle jména kotvy",
 DlgLnkAnchorById	: "Podle Id objektu",
-DlgLnkNoAnchors		: "&lt;Ve stránce žádná kotva není definována&gt;",
+DlgLnkNoAnchors		: "<Ve stránce žádná kotva není definována>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mailová adresa",
 DlgLnkEMailSubject	: "Předmět zprávy",
 DlgLnkEMailBody		: "Tělo zprávy",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "Odeslat na Server",
 
 DlgLnkTarget		: "Cíl",
-DlgLnkTargetFrame	: "&lt;rámec&gt;",
-DlgLnkTargetPopup	: "&lt;vyskakovací okno&gt;",
+DlgLnkTargetFrame	: "<rámec>",
+DlgLnkTargetPopup	: "<vyskakovací okno>",
 DlgLnkTargetBlank	: "Nové okno (_blank)",
 DlgLnkTargetParent	: "Rodičovské okno (_parent)",
 DlgLnkTargetSelf	: "Stejné okno (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Zadejte prosím URL odkazu",
 DlnLnkMsgNoEMail	: "Zadejte prosím e-mailovou adresu",
 DlnLnkMsgNoAnchor	: "Vyberte prosím kotvu",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Výběr barvy",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Vzdálenost buněk",
 DlgTableCellPad		: "Odsazení obsahu",
 DlgTableCaption		: "Popis",
+DlgTableSummary		: "Souhrn",
 
 // Table Cell Dialog
 DlgCellTitle		: "Vlastnosti buňky",
@@ -304,7 +319,7 @@
 DlgCellRowSpan		: "Sloučené řádky",
 DlgCellCollSpan		: "Sloučené sloupce",
 DlgCellBackColor	: "Barva pozadí",
-DlgCellBorderColor	: "Rarva ohraničení",
+DlgCellBorderColor	: "Barva ohraničení",
 DlgCellBtnSelect	: "Výběr...",
 
 // Find Dialog
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "Pouze celá slova",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vložení textu ze schránky. Prosím vložte text ze schránky pomocí klávesnice (Ctrl+V).",
 PasteErrorCut	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl+X).",
 PasteErrorCopy	: "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).",
 
 PasteAsText		: "Vložit jako čistý text",
 PasteFromWord	: "Vložit text z Wordu",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignorovat písmo",
+DlgPasteRemoveStyles	: "Odstranit styly",
+DlgPasteCleanBox		: "Vyčistit",
 
-
 // Color Picker
 ColorAutomatic	: "Automaticky",
 ColorMoreColors	: "Více barev...",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?",
 
 // Button Dialog
-DlgButtonText	: "Popisek",
-DlgButtonType	: "Typ",
+DlgButtonText		: "Popisek",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Název",
@@ -382,7 +399,7 @@
 DlgSelectName		: "Název",
 DlgSelectValue		: "Hodnota",
 DlgSelectSize		: "Velikost",
-DlgSelectLines		: "řádků",
+DlgSelectLines		: "Řádků",
 DlgSelectChkMulti	: "Povolit mnohonásobné výběry",
 DlgSelectOpAvail	: "Dostupná nastavení",
 DlgSelectOpText		: "Text",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Vlastnosti odrážek",
 NumberedListProp	: "Vlastnosti číslovaného seznamu",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Typ",
 DlgLstTypeCircle	: "Kružnice",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Kruh",
 DlgLstTypeSquare	: "ÄŒtverec",
 DlgLstTypeNumbers	: "Čísla (1, 2, 3)",
 DlgLstTypeLCase		: "Malá písmena (a, b, c)",
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "Zprava doleva",
 DlgDocLangCode		: "Kód jazyku",
 DlgDocCharSet		: "Znaková sada",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Další znaková sada",
 
 DlgDocDocType		: "Typ dokumentu",
@@ -461,16 +488,17 @@
 DlgDocPreview		: "Náhled",
 
 // Templates Dialog
-Templates			: "Templates",	//MISSING
-DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
-DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
-DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+Templates			: "Å ablony",
+DlgTemplatesTitle	: "Å ablony obsahu",
+DlgTemplatesSelMsg	: "Prosím zvolte šablonu pro otevření v editoru<br>(aktuální obsah editoru bude ztracen):",
+DlgTemplatesLoading	: "Nahrávám přeheld šablon. Prosím čekejte...",
+DlgTemplatesNoTpl	: "(Není definována žádná šablona)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "O aplikaci",
 DlgAboutBrowserInfoTab	: "Informace o prohlížeči",
+DlgAboutLicenseTab	: "Licence",
 DlgAboutVersion		: "verze",
-DlgAboutLicense		: "Licencováno pomocí GNU Lesser General Public License",
 DlgAboutInfo		: "Více informací získáte na"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/da.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/da.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/da.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: da.js
- * 	Danish language file.
- * 
- * File Authors:
- * 		Jørgen Nordstrøm (jn at FirstWeb.dk)
- * 		Jesper Michelsen (jm at i-deVision.dk)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Danish language file.
  */
 
 var FCKLang =
@@ -23,8 +26,8 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Sammenfold Værktøjskasse",
-ToolbarExpand		: "Udvid Værktøjskasse",
+ToolbarCollapse		: "Skjul værktøjslinier",
+ToolbarExpand		: "Vis værktøjslinier",
 
 // Toolbar Items and Context Menu
 Save				: "Gem",
@@ -33,27 +36,27 @@
 Cut					: "Klip",
 Copy				: "Kopier",
 Paste				: "Indsæt",
-PasteText			: "Indsæt som ren tekst",
+PasteText			: "Indsæt som ikke-formateret tekst",
 PasteWord			: "Indsæt fra Word",
 Print				: "Udskriv",
 SelectAll			: "Vælg alt",
-RemoveFormat		: "Slet formatering",
-InsertLinkLbl		: "Link",
-InsertLink			: "Indsæt/Rediger Link",
-RemoveLink			: "Slet Link",
-Anchor				: "Insert/Rediger Anker",
-InsertImageLbl		: "Indsæt Billed",
-InsertImage			: "Indsæt/Rediger Billed",
+RemoveFormat		: "Fjern formatering",
+InsertLinkLbl		: "Hyperlink",
+InsertLink			: "Indsæt/rediger hyperlink",
+RemoveLink			: "Fjern hyperlink",
+Anchor				: "Indsæt/rediger bogmærke",
+InsertImageLbl		: "Indsæt billede",
+InsertImage			: "Indsæt/rediger billede",
 InsertFlashLbl		: "Flash",
 InsertFlash			: "Indsæt/rediger Flash",
 InsertTableLbl		: "Table",
-InsertTable			: "Indsæt/Rediger Tabel",
+InsertTable			: "Indsæt/rediger tabel",
 InsertLineLbl		: "Linie",
-InsertLine			: "Indsæt horisontal Linie",
-InsertSpecialCharLbl: "Special Karakter",
-InsertSpecialChar	: "Indsæt Special Karakter",
+InsertLine			: "Indsæt vandret linie",
+InsertSpecialCharLbl: "Symbol",
+InsertSpecialChar	: "Indsæt symbol",
 InsertSmileyLbl		: "Smiley",
-InsertSmiley		: "Indsæt Smiley",
+InsertSmiley		: "Indsæt smiley",
 About				: "Om FCKeditor",
 Bold				: "Fed",
 Italic				: "Kursiv",
@@ -65,15 +68,15 @@
 CenterJustify		: "Centreret",
 RightJustify		: "Højrestillet",
 BlockJustify		: "Lige margener",
-DecreaseIndent		: "Forøg indrykning",
-IncreaseIndent		: "Formindsk indrykning",
+DecreaseIndent		: "Formindsk indrykning",
+IncreaseIndent		: "Forøg indrykning",
 Undo				: "Fortryd",
-Redo				: "Anuller fortryd",
-NumberedListLbl		: "Tal opstilling",
-NumberedList		: "Indsæt/Slet Tal opstilling",
-BulletedListLbl		: "Punkttegn opstilling",
-BulletedList		: "Indsæt/Slet Punkttegn opstilling",
-ShowTableBorders	: "Vis tabel kanter",
+Redo				: "Annuller fortryd",
+NumberedListLbl		: "Talopstilling",
+NumberedList		: "Indsæt/fjern talopstilling",
+BulletedListLbl		: "Punktopstilling",
+BulletedList		: "Indsæt/fjern punktopstilling",
+ShowTableBorders	: "Vis tabelkanter",
 ShowDetails			: "Vis detaljer",
 Style				: "Typografi",
 FontFormat			: "Formatering",
@@ -85,77 +88,87 @@
 Find				: "Søg",
 Replace				: "Erstat",
 SpellCheck			: "Stavekontrol",
-UniversalKeyboard	: "Universalt Tastatur",
+UniversalKeyboard	: "Universaltastatur",
+PageBreakLbl		: "Sidskift",
+PageBreak			: "Indsæt sideskift",
 
-Form			: "Indsæt Form",
-Checkbox		: "Indsæt Afkrydsningsboks",
-RadioButton		: "Indsæt Radioknap",
-TextField		: "Indsæt Tekstfelt",
-Textarea		: "Indsæt Tekstboks",
-HiddenField		: "Indsæt Skjultfelt",
-Button			: "Indsæt Knap",
-SelectionField	: "Indsæt Valgfelt",
-ImageButton		: "Indsæt Billedknap",
+Form			: "Indsæt formular",
+Checkbox		: "Indsæt afkrydsningsfelt",
+RadioButton		: "Indsæt alternativknap",
+TextField		: "Indsæt tekstfelt",
+Textarea		: "Indsæt tekstboks",
+HiddenField		: "Indsæt skjult felt",
+Button			: "Indsæt knap",
+SelectionField	: "Indsæt liste",
+ImageButton		: "Indsæt billedknap",
 
+FitWindow		: "Maksimer editor vinduet",
+
 // Context Menu
-EditLink			: "Rediger link",
+EditLink			: "Rediger hyperlink",
+CellCM				: "Celle",
+RowCM				: "Række",
+ColumnCM			: "Kolonne",
 InsertRow			: "Indsæt række",
-DeleteRows			: "Slet rækker",
+DeleteRows			: "Slet række",
 InsertColumn		: "Indsæt kolonne",
-DeleteColumns		: "Slet kolonner",
+DeleteColumns		: "Slet kolonne",
 InsertCell			: "Indsæt celle",
 DeleteCells			: "Slet celle",
 MergeCells			: "Flet celler",
-SplitCell			: "Opdel celler",
-CellProperties		: "Celle egenskaber",
-TableProperties		: "Tabel egenskaber",
-ImageProperties		: "Billed egenskaber",
-FlashProperties		: "Flash egenskaber",
+SplitCell			: "Opdel celle",
+TableDelete			: "Slet tabel",
+CellProperties		: "Egenskaber for celle",
+TableProperties		: "Egenskaber for tabel",
+ImageProperties		: "Egenskaber for billede",
+FlashProperties		: "Egenskaber for Flash",
 
-AnchorProp			: "Anker egenskaber",
-ButtonProp			: "Knap egenskaber",
-CheckboxProp		: "Afkrydsningsboks egenskaber",
-HiddenFieldProp		: "Skjultfelt egenskaber",
-RadioButtonProp		: "Radioknap egenskaber",
-ImageButtonProp		: "Billedknap egenskaber",
-TextFieldProp		: "Tekstfelt egenskaber",
-SelectionFieldProp	: "Valgfelt egenskaber",
-TextareaProp		: "Tekstboks egenskaber",
-FormProp			: "Form egenskaber",
+AnchorProp			: "Egenskaber for bogmærke",
+ButtonProp			: "Egenskaber for knap",
+CheckboxProp		: "Egenskaber for afkrydsningsfelt",
+HiddenFieldProp		: "Egenskaber for skjult felt",
+RadioButtonProp		: "Egenskaber for alternativknap",
+ImageButtonProp		: "Egenskaber for billedknap",
+TextFieldProp		: "Egenskaber for tekstfelt",
+SelectionFieldProp	: "Egenskaber for liste",
+TextareaProp		: "Egenskaber for tekstboks",
+FormProp			: "Egenskaber for formular",
 
-FontFormats			: "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6",
+FontFormats			: "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "Behandler XHTML. Vent venligst...",
+ProcessingXHTML		: "Behandler XHTML...",
 Done				: "Færdig",
-PasteWordConfirm	: "Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes ?",
-NotCompatiblePaste	: "Denne kommando er tilgændelig i Internet Explorer 5.5 og senere. Vil du indsætte teksten uden at rense den ?",
-UnknownToolbarItem	: "Ukendt værktøjslinje objekt \"%1\"",
-UnknownCommand		: "Ukendt kommando navn \"%1\"",
-NotImplemented		: "Kommandoen er ikke implementeret",
-UnknownToolbarSet	: "Værktøjslinjen \"%1\" eksisterer ikke",
-NoActiveX			: "You 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
+PasteWordConfirm	: "Den tekst du forsøger at indsætte ser ud til at komme fra Word.<br>Vil du rense teksten før den indsættes?",
+NotCompatiblePaste	: "Denne kommando er tilgændelig i Internet Explorer 5.5 eller senere.<br>Vil du indsætte teksten uden at rense den ?",
+UnknownToolbarItem	: "Ukendt værktøjslinjeobjekt \"%1\"!",
+UnknownCommand		: "Ukendt kommandonavn \"%1\"!",
+NotImplemented		: "Kommandoen er ikke implementeret!",
+UnknownToolbarSet	: "Værktøjslinjen \"%1\" eksisterer ikke!",
+NoActiveX			: "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.<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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
-DlgBtnCancel		: "Anuller",
+DlgBtnCancel		: "Annuller",
 DlgBtnClose			: "Luk",
-DlgBtnBrowseServer	: "Gennemse Server",
+DlgBtnBrowseServer	: "Gennemse...",
 DlgAdvancedTag		: "Avanceret",
-DlgOpOther			: "&lt;Andet&gt;",
-DlgInfoTab			: "Info",
+DlgOpOther			: "<Andet>",
+DlgInfoTab			: "Generelt",
 DlgAlertUrl			: "Indtast URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ikke sat&gt;",
+DlgGenNotSet		: "<intet valgt>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Tekstretning",
-DlgGenLangDirLtr	: "Venstre mod højre (LTR)",
-DlgGenLangDirRtl	: "Højre mod venstre (RTL)",
-DlgGenLangCode		: "Sprog kode",
-DlgGenAccessKey		: "Adgangsnøgle",
+DlgGenLangDirLtr	: "Fra venstre mod højre (LTR)",
+DlgGenLangDirRtl	: "Fra højre mod venstre (RTL)",
+DlgGenLangCode		: "Sprogkode",
+DlgGenAccessKey		: "Genvejstast",
 DlgGenName			: "Navn",
-DlgGenTabIndex		: "Tabulator Indeks",
+DlgGenTabIndex		: "Tabulator indeks",
 DlgGenLongDescr		: "Udvidet beskrivelse",
 DlgGenClass			: "Typografiark",
 DlgGenTitle			: "Titel",
@@ -164,9 +177,9 @@
 DlgGenStyle			: "Typografi",
 
 // Image Dialog
-DlgImgTitle			: "Billed egenskaber",
-DlgImgInfoTab		: "Billed info",
-DlgImgBtnUpload		: "Send til serveren",
+DlgImgTitle			: "Egenskaber for billede",
+DlgImgInfoTab		: "Generelt",
+DlgImgBtnUpload		: "Upload",
 DlgImgURL			: "URL",
 DlgImgUpload		: "Upload",
 DlgImgAlt			: "Alternativ tekst",
@@ -175,24 +188,24 @@
 DlgImgLockRatio		: "Lås størrelsesforhold",
 DlgBtnResetSize		: "Nulstil størrelse",
 DlgImgBorder		: "Ramme",
-DlgImgHSpace		: "HMargin",
-DlgImgVSpace		: "VMargin",
+DlgImgHSpace		: "HMargen",
+DlgImgVSpace		: "VMargen",
 DlgImgAlign			: "Justering",
 DlgImgAlignLeft		: "Venstre",
-DlgImgAlignAbsBottom: "Abs bund",
-DlgImgAlignAbsMiddle: "Abs Midte",
-DlgImgAlignBaseline	: "Bundlinje",
-DlgImgAlignBottom	: "Bund",
-DlgImgAlignMiddle	: "Midte",
+DlgImgAlignAbsBottom: "Absolut nederst",
+DlgImgAlignAbsMiddle: "Absolut centreret",
+DlgImgAlignBaseline	: "Grundlinje",
+DlgImgAlignBottom	: "Nederst",
+DlgImgAlignMiddle	: "Centreret",
 DlgImgAlignRight	: "Højre",
-DlgImgAlignTextTop	: "Tekst top",
-DlgImgAlignTop		: "Top",
+DlgImgAlignTextTop	: "Toppen af teksten",
+DlgImgAlignTop		: "Øverst",
 DlgImgPreview		: "Vis eksempel",
 DlgImgAlertUrl		: "Indtast stien til billedet",
-DlgImgLinkTab		: "Link",
+DlgImgLinkTab		: "Hyperlink",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash egenskaber",
+DlgFlashTitle		: "Egenskaber for Flash",
 DlgFlashChkPlay		: "Automatisk afspilning",
 DlgFlashChkLoop		: "Gentagelse",
 DlgFlashChkMenu		: "Vis Flash menu",
@@ -202,73 +215,74 @@
 DlgFlashScaleFit	: "Tilpas størrelse",
 
 // Link Dialog
-DlgLnkWindowTitle	: "Link",
-DlgLnkInfoTab		: "Link info",
+DlgLnkWindowTitle	: "Egenskaber for hyperlink",
+DlgLnkInfoTab		: "Generelt",
 DlgLnkTargetTab		: "MÃ¥l",
 
-DlgLnkType			: "Link type",
+DlgLnkType			: "Hyperlink type",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Anker på denne side",
-DlgLnkTypeEMail		: "Email",
+DlgLnkTypeAnchor	: "Bogmærke på denne side",
+DlgLnkTypeEMail		: "E-mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;anden&gt;",
+DlgLnkProtoOther	: "<anden>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Vælg et anker",
 DlgLnkAnchorByName	: "Efter anker navn",
 DlgLnkAnchorById	: "Efter element Id",
-DlgLnkNoAnchors		: "&lt;Der er ingen ankre tilgængelige i dette dokument&gt;",
-DlgLnkEMail			: "Email Adresse",
+DlgLnkNoAnchors		: "<Ingen bogmærker dokumentet>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-mailadresse",
 DlgLnkEMailSubject	: "Emne",
-DlgLnkEMailBody		: "Besked",
+DlgLnkEMailBody		: "Brødtekst",
 DlgLnkUpload		: "Upload",
-DlgLnkBtnUpload		: "Send til serveren",
+DlgLnkBtnUpload		: "Upload",
 
 DlgLnkTarget		: "MÃ¥l",
-DlgLnkTargetFrame	: "&lt;ramme&gt;",
-DlgLnkTargetPopup	: "&lt;popup vindue&gt;",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindue>",
 DlgLnkTargetBlank	: "Nyt vindue (_blank)",
-DlgLnkTargetParent	: "Overliggende vindue (_parent)",
+DlgLnkTargetParent	: "Overordnet ramme (_parent)",
 DlgLnkTargetSelf	: "Samme vindue (_self)",
-DlgLnkTargetTop		: "Øverste vindue (_top)",
-DlgLnkTargetFrameName	: "Visnings vinduets navn",
-DlgLnkPopWinName	: "Popup vinduets navn",
-DlgLnkPopWinFeat	: "Popup vinduets egenskaber",
+DlgLnkTargetTop		: "Hele vinduet (_top)",
+DlgLnkTargetFrameName	: "Destinationsvinduets navn",
+DlgLnkPopWinName	: "Pop-up vinduets navn",
+DlgLnkPopWinFeat	: "Egenskaber for pop-up",
 DlgLnkPopResize		: "Skalering",
-DlgLnkPopLocation	: "Lokationslinje",
+DlgLnkPopLocation	: "Adresselinje",
 DlgLnkPopMenu		: "Menulinje",
 DlgLnkPopScroll		: "Scrollbars",
 DlgLnkPopStatus		: "Statuslinje",
 DlgLnkPopToolbar	: "Værktøjslinje",
 DlgLnkPopFullScrn	: "Fuld skærm (IE)",
-DlgLnkPopDependent	: "Afhængig (Netscape)",
+DlgLnkPopDependent	: "Koblet/dependent (Netscape)",
 DlgLnkPopWidth		: "Bredde",
 DlgLnkPopHeight		: "Højde",
 DlgLnkPopLeft		: "Position fra venstre",
 DlgLnkPopTop		: "Position fra toppen",
 
-DlnLnkMsgNoUrl		: "Indtast link URL",
-DlnLnkMsgNoEMail	: "Indtast e-mail addressen",
-DlnLnkMsgNoAnchor	: "Vælg Anker",
+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
 
 // Color Dialog
 DlgColorTitle		: "Vælg farve",
-DlgColorBtnClear	: "Slet alt",
-DlgColorHighlight	: "Marker",
-DlgColorSelected	: "valgt",
+DlgColorBtnClear	: "Nulstil",
+DlgColorHighlight	: "Markeret",
+DlgColorSelected	: "Valgt",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Insæt en smiley",
+DlgSmileyTitle		: "Vælg smiley",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Vælg specialkarakter",
+DlgSpecialCharTitle	: "Vælg symbol",
 
 // Table Dialog
-DlgTableTitle		: "Tabel egenskaber",
+DlgTableTitle		: "Egenskaber for tabel",
 DlgTableRows		: "Rækker",
 DlgTableColumns		: "Kolonner",
-DlgTableBorder		: "Ramme størrelse",
+DlgTableBorder		: "Rammebredde",
 DlgTableAlign		: "Justering",
-DlgTableAlignNotSet	: "<Ikke sat>",
+DlgTableAlignNotSet	: "<intet valgt>",
 DlgTableAlignLeft	: "Venstrestillet",
 DlgTableAlignCenter	: "Centreret",
 DlgTableAlignRight	: "Højrestillet",
@@ -276,45 +290,46 @@
 DlgTableWidthPx		: "pixels",
 DlgTableWidthPc		: "procent",
 DlgTableHeight		: "Højde",
-DlgTableCellSpace	: "Afstand mellem celler",
-DlgTableCellPad		: "Celle margin",
+DlgTableCellSpace	: "Celleafstand",
+DlgTableCellPad		: "Cellemargen",
 DlgTableCaption		: "Titel",
+DlgTableSummary		: "Resume",
 
 // Table Cell Dialog
-DlgCellTitle		: "Celle egenskaber",
+DlgCellTitle		: "Egenskaber for celle",
 DlgCellWidth		: "Bredde",
 DlgCellWidthPx		: "pixels",
 DlgCellWidthPc		: "procent",
 DlgCellHeight		: "Højde",
 DlgCellWordWrap		: "Orddeling",
-DlgCellWordWrapNotSet	: "<Ikke sat>",
+DlgCellWordWrapNotSet	: "<intet valgt>",
 DlgCellWordWrapYes	: "Ja",
 DlgCellWordWrapNo	: "Nej",
-DlgCellHorAlign		: "Horisontal justering",
-DlgCellHorAlignNotSet	: "<Ikke sat>",
+DlgCellHorAlign		: "Vandret justering",
+DlgCellHorAlignNotSet	: "<intet valgt>",
 DlgCellHorAlignLeft	: "Venstrestillet",
 DlgCellHorAlignCenter	: "Centreret",
 DlgCellHorAlignRight: "Højrestillet",
-DlgCellVerAlign		: "Vertikal Justering",
-DlgCellVerAlignNotSet	: "<Ikke sat>",
-DlgCellVerAlignTop	: "Top",
-DlgCellVerAlignMiddle	: "Midte",
-DlgCellVerAlignBottom	: "Bund",
-DlgCellVerAlignBaseline	: "Bundlinje",
-DlgCellRowSpan		: "Antal rækker cellen spænder over",
-DlgCellCollSpan		: "Antal kolonner cellen spænder over",
+DlgCellVerAlign		: "Lodret justering",
+DlgCellVerAlignNotSet	: "<intet valgt>",
+DlgCellVerAlignTop	: "Øverst",
+DlgCellVerAlignMiddle	: "Centreret",
+DlgCellVerAlignBottom	: "Nederst",
+DlgCellVerAlignBaseline	: "Grundlinje",
+DlgCellRowSpan		: "Højde i antal rækker",
+DlgCellCollSpan		: "Bredde i antal kolonner",
 DlgCellBackColor	: "Baggrundsfarve",
-DlgCellBorderColor	: "rammefarve",
+DlgCellBorderColor	: "Rammefarve",
 DlgCellBtnSelect	: "Vælg...",
 
 // Find Dialog
 DlgFindTitle		: "Find",
 DlgFindFindBtn		: "Find",
-DlgFindNotFoundMsg	: "Den angivne tekst blev ikke fundet",
+DlgFindNotFoundMsg	: "Søgeteksten blev ikke fundet!",
 
 // Replace Dialog
 DlgReplaceTitle			: "Erstat",
-DlgReplaceFindLbl		: "Find:",
+DlgReplaceFindLbl		: "Søg efter:",
 DlgReplaceReplaceLbl	: "Erstat med:",
 DlgReplaceCaseChk		: "Forskel på store og små bogstaver",
 DlgReplaceReplaceBtn	: "Erstat",
@@ -322,51 +337,53 @@
 DlgReplaceWordChk		: "Kun hele ord",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at indsætte tekst automatisk. Brug i stedet tastaturet til at indsætte teksten (Ctrl+V).",
-PasteErrorCut	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk. Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
-PasteErrorCopy	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk. Brug i stedet tastaturet til at kopiere teksten (Ctrl+V).",
+PasteErrorCut	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).",
+PasteErrorCopy	: "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).",
 
-PasteAsText		: "Indsæt som ren tekst",
+PasteAsText		: "Indsæt som ikke-formateret tekst",
 PasteFromWord	: "Indsæt fra Word",
 
-DlgPasteMsg2	: "Indsæt i boksen herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",
+DlgPasteMsg2	: "Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorer font definitioner",
-DlgPasteRemoveStyles	: "Fjern typografi definitioner",
+DlgPasteRemoveStyles	: "Ignorer typografi",
 DlgPasteCleanBox		: "Slet indhold",
 
-
 // Color Picker
 ColorAutomatic	: "Automatisk",
 ColorMoreColors	: "Flere farver...",
 
 // Document Properties
-DocProps		: "Dokument egenskaber",
+DocProps		: "Egenskaber for dokument",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Anker egenskaber",
-DlgAnchorName		: "Anker navn",
-DlgAnchorErrorName	: "Indtast Anker navn",
+DlgAnchorTitle		: "Egenskaber for bogmærke",
+DlgAnchorName		: "Bogmærke navn",
+DlgAnchorErrorName	: "Indtast bogmærke navn!",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Findes ikke i ordbogen",
-DlgSpellChangeTo		: "Ændre til",
-DlgSpellBtnIgnore		: "Ignorere",
-DlgSpellBtnIgnoreAll	: "Ignorere alle",
-DlgSpellBtnReplace		: "Udskift",
-DlgSpellBtnReplaceAll	: "Udskift alle",
+DlgSpellNotInDic		: "Ikke i ordbogen",
+DlgSpellChangeTo		: "Forslag",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstat",
+DlgSpellBtnReplaceAll	: "Erstat alle",
 DlgSpellBtnUndo			: "Tilbage",
-DlgSpellNoSuggestions	: "- Intet forslag -",
+DlgSpellNoSuggestions	: "- ingen forslag -",
 DlgSpellProgress		: "Stavekontrolen arbejder...",
 DlgSpellNoMispell		: "Stavekontrol færdig: Ingen fejl fundet",
 DlgSpellNoChanges		: "Stavekontrol færdig: Ingen ord ændret",
 DlgSpellOneChange		: "Stavekontrol færdig: Et ord ændret",
 DlgSpellManyChanges		: "Stavekontrol færdig: %1 ord ændret",
 
-IeSpellDownload			: "Stavekontrol ikke installeret. Vil du hente den nu?",
+IeSpellDownload			: "Stavekontrol ikke installeret.<br>Vil du hente den nu?",
 
 // Button Dialog
-DlgButtonText	: "Tekst (Værdi)",
-DlgButtonType	: "Type",
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Navn",
@@ -384,77 +401,87 @@
 DlgSelectSize		: "Størrelse",
 DlgSelectLines		: "linier",
 DlgSelectChkMulti	: "Tillad flere valg",
-DlgSelectOpAvail	: "Valgmulighedder",
+DlgSelectOpAvail	: "Valgmuligheder",
 DlgSelectOpText		: "Tekst",
 DlgSelectOpValue	: "Værdi",
 DlgSelectBtnAdd		: "Tilføj",
-DlgSelectBtnModify	: "Ændre",
+DlgSelectBtnModify	: "Rediger",
 DlgSelectBtnUp		: "Op",
 DlgSelectBtnDown	: "Ned",
-DlgSelectBtnSetValue : "Sæt som udvalgt",
+DlgSelectBtnSetValue : "Sæt som valgt",
 DlgSelectBtnDelete	: "Slet",
 
 // Textarea Dialog
 DlgTextareaName	: "Navn",
-DlgTextareaCols	: "Kolonne",
-DlgTextareaRows	: "Række",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rækker",
 
 // Text Field Dialog
 DlgTextName			: "Navn",
 DlgTextValue		: "Værdi",
-DlgTextCharWidth	: "Synligt antal bogstaver",
-DlgTextMaxChars		: "Maximum antal bogstaver",
+DlgTextCharWidth	: "Bredde (tegn)",
+DlgTextMaxChars		: "Max antal tegn",
 DlgTextType			: "Type",
 DlgTextTypeText		: "Tekst",
-DlgTextTypePass		: "Kodeord",
+DlgTextTypePass		: "Adgangskode",
 
 // Hidden Field Dialog
 DlgHiddenName	: "Navn",
 DlgHiddenValue	: "Værdi",
 
 // Bulleted List Dialog
-BulletedListProp	: "Punkttegnopstilling egenskaber",
-NumberedListProp	: "Talopstilling egenskaber",
+BulletedListProp	: "Egenskaber for punktopstilling",
+NumberedListProp	: "Egenskaber for talopstilling",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Cirkel",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Udfyldt cirkel",
 DlgLstTypeSquare	: "Firkant",
 DlgLstTypeNumbers	: "Nummereret (1, 2, 3)",
 DlgLstTypeLCase		: "Små bogstaver (a, b, c)",
 DlgLstTypeUCase		: "Store bogstaver (A, B, C)",
-DlgLstTypeSRoman	: "Små Romertal (i, ii, iii)",
-DlgLstTypeLRoman	: "Store Romertal (I, II, III)",
+DlgLstTypeSRoman	: "Små romertal (i, ii, iii)",
+DlgLstTypeLRoman	: "Store romertal (I, II, III)",
 
 // Document Properties Dialog
 DlgDocGeneralTab	: "Generelt",
 DlgDocBackTab		: "Baggrund",
-DlgDocColorsTab		: "Farver og Margin",
-DlgDocMetaTab		: "Meta Information",
+DlgDocColorsTab		: "Farver og margen",
+DlgDocMetaTab		: "Metadata",
 
-DlgDocPageTitle		: "Side Titel",
+DlgDocPageTitle		: "Sidetitel",
 DlgDocLangDir		: "Sprog",
-DlgDocLangDirLTR	: "Venstre Til Højre (LTR)",
-DlgDocLangDirRTL	: "Højre Til Venstre (RTL)",
+DlgDocLangDirLTR	: "Fra venstre mod højre (LTR)",
+DlgDocLangDirRTL	: "Fra højre mod venstre (RTL)",
 DlgDocLangCode		: "Landekode",
-DlgDocCharSet		: "Karakter sæt kode",
-DlgDocCharSetOther	: "Anden karakter sæt kode",
+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
+DlgDocCharSetOther	: "Anden tegnsæt kode",
 
-DlgDocDocType		: "Dokument type kategori",
-DlgDocDocTypeOther	: "Anden dokument type kategori",
+DlgDocDocType		: "Dokumenttype kategori",
+DlgDocDocTypeOther	: "Anden dokumenttype kategori",
 DlgDocIncXHTML		: "Inkludere XHTML deklartion",
 DlgDocBgColor		: "Baggrundsfarve",
-DlgDocBgImage		: "Baggrundsbilled URL",
-DlgDocBgNoScroll	: "Ikke scrollbar baggrund",
+DlgDocBgImage		: "Baggrundsbillede URL",
+DlgDocBgNoScroll	: "Fastlåst baggrund",
 DlgDocCText			: "Tekst",
-DlgDocCLink			: "Link",
-DlgDocCVisited		: "Besøgt link",
-DlgDocCActive		: "Aktivt link",
-DlgDocMargins		: "Side margin",
-DlgDocMaTop			: "Top",
+DlgDocCLink			: "Hyperlink",
+DlgDocCVisited		: "Besøgt hyperlink",
+DlgDocCActive		: "Aktivt hyperlink",
+DlgDocMargins		: "Sidemargen",
+DlgDocMaTop			: "Øverst",
 DlgDocMaLeft		: "Venstre",
 DlgDocMaRight		: "Højre",
-DlgDocMaBottom		: "Bund",
-DlgDocMeIndex		: "Dokument index nøgleord (komma sepereret)",
+DlgDocMaBottom		: "Nederst",
+DlgDocMeIndex		: "Dokument index nøgleord (kommasepareret)",
 DlgDocMeDescr		: "Dokument beskrivelse",
 DlgDocMeAuthor		: "Forfatter",
 DlgDocMeCopy		: "Copyright",
@@ -463,14 +490,15 @@
 // Templates Dialog
 Templates			: "Skabeloner",
 DlgTemplatesTitle	: "Indholdsskabeloner",
-DlgTemplatesSelMsg	: "Vælg den skabelon, som skal åbnes i editoren<br>(Nuværende indhold vil blive overskrevet):",
-DlgTemplatesLoading	: "Henter liste over skabeloner. Vent venligst...",
-DlgTemplatesNoTpl	: "(Der er ikke defineret nogen skabelon)",
+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
 
 // About Dialog
-DlgAboutAboutTab	: "About",
-DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Generelt",
+DlgAboutLicenseTab	: "Licens",
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "Licens under vilkår for GNU Lesser General Public License",
 DlgAboutInfo		: "For yderlig information gå til"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/de.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/de.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/de.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: de.js
- * 	German language file.
- * 
- * File Authors:
- * 		Maik Unruh (m.unruh at mm-concept.de)
- * 		Hendrik Kramer (HK at lwd.de)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * German language file.
  */
 
 var FCKLang =
@@ -23,8 +26,8 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Toolbar einklappen",
-ToolbarExpand		: "Toolbar ausklappen",
+ToolbarCollapse		: "Symbolleiste einklappen",
+ToolbarExpand		: "Symbolleiste ausklappen",
 
 // Toolbar Items and Context Menu
 Save				: "Speichern",
@@ -34,7 +37,7 @@
 Copy				: "Kopieren",
 Paste				: "Einfügen",
 PasteText			: "aus Textdatei einfügen",
-PasteWord			: "aus Word einfügen",
+PasteWord			: "aus MS-Word einfügen",
 Print				: "Drucken",
 SelectAll			: "Alles auswählen",
 RemoveFormat		: "Formatierungen entfernen",
@@ -75,17 +78,19 @@
 BulletedList		: "Liste einfügen/entfernen",
 ShowTableBorders	: "Zeige Tabellenrahmen",
 ShowDetails			: "Zeige Details",
-Style				: "Style",
+Style				: "Stil",
 FontFormat			: "Format",
-Font				: "Font",
-FontSize			: "Size",
+Font				: "Schriftart",
+FontSize			: "Größe",
 TextColor			: "Textfarbe",
 BGColor				: "Hintergrundfarbe",
 Source				: "Quellcode",
 Find				: "Finden",
 Replace				: "Ersetzen",
-SpellCheck			: "Rechtschreibprü:fung",
+SpellCheck			: "Rechtschreibprüfung",
 UniversalKeyboard	: "Universal-Tastatur",
+PageBreakLbl		: "Seitenumbruch",
+PageBreak			: "Seitenumbruch einfügen",
 
 Form			: "Formular",
 Checkbox		: "Checkbox",
@@ -97,8 +102,13 @@
 SelectionField	: "Auswahlfeld",
 ImageButton		: "Bildbutton",
 
+FitWindow		: "Editor maximieren",
+
 // Context Menu
 EditLink			: "Link editieren",
+CellCM				: "Zelle",
+RowCM				: "Zeile",
+ColumnCM			: "Spalte",
 InsertRow			: "Zeile einfügen",
 DeleteRows			: "Zeile entfernen",
 InsertColumn		: "Spalte einfügen",
@@ -107,6 +117,7 @@
 DeleteCells			: "Zelle löschen",
 MergeCells			: "Zellen vereinen",
 SplitCell			: "Zelle teilen",
+TableDelete			: "Tabelle löschen",
 CellProperties		: "Zellen Eigenschaften",
 TableProperties		: "Tabellen Eigenschaften",
 ImageProperties		: "Bild Eigenschaften",
@@ -116,25 +127,27 @@
 ButtonProp			: "Button Eigenschaften",
 CheckboxProp		: "Checkbox Eigenschaften",
 HiddenFieldProp		: "Verstecktes Feld Eigenschaften",
-RadioButtonProp		: "Radiobutton Eigenschaften",
+RadioButtonProp		: "Optionsfeld Eigenschaften",
 ImageButtonProp		: "Bildbutton Eigenschaften",
-TextFieldProp		: "Textfeld einzeilig Eigenschaften",
+TextFieldProp		: "Textfeld (einzeilig) Eigenschaften",
 SelectionFieldProp	: "Auswahlfeld Eigenschaften",
-TextareaProp		: "Textfeld mehrzeilig Eigenschaften",
+TextareaProp		: "Textfeld (mehrzeilig) Eigenschaften",
 FormProp			: "Formular Eigenschaften",
 
-FontFormats			: "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6",
+FontFormats			: "Normal;Formatiert;Addresse;Ãœberschrift 1;Ãœberschrift 2;Ãœberschrift 3;Ãœberschrift 4;Ãœberschrift 5;Ãœberschrift 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Bearbeite XHTML. Bitte warten...",
 Done				: "Fertig",
-PasteWordConfirm	: "Der Text, den Sie einfügen Möchten, scheint aus Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?",
+PasteWordConfirm	: "Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?",
 NotCompatiblePaste	: "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur Verfügung. Möchten Sie den Text unbereinigt einfügen?",
 UnknownToolbarItem	: "Unbekanntes Menüleisten-Objekt \"%1\"",
 UnknownCommand		: "Unbekannter Befehl \"%1\"",
 NotImplemented		: "Befehl nicht implementiert",
 UnknownToolbarSet	: "Menüleiste \"%1\" existiert nicht",
-NoActiveX			: "You 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
+NoActiveX			: "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können",
+BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
+DialogBlocked		: "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Schließen",
 DlgBtnBrowseServer	: "Server durchsuchen",
 DlgAdvancedTag		: "Erweitert",
-DlgOpOther			: "&lt;andere&gt;",
+DlgOpOther			: "<andere>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Bitte tragen Sie die URL ein",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt; nichts &gt;",
+DlgGenNotSet		: "< nichts >",
 DlgGenId			: "ID",
 DlgGenLangDir		: "Schreibrichtung",
 DlgGenLangDirLtr	: "Links nach Rechts (LTR)",
@@ -172,11 +185,11 @@
 DlgImgAlt			: "Alternativer Text",
 DlgImgWidth			: "Breite",
 DlgImgHeight		: "Höhe",
-DlgImgLockRatio		: "Größenverhaeltniss beibehalten",
-DlgBtnResetSize		: "Größe zuruecksetzen",
+DlgImgLockRatio		: "Größenverhältniss beibehalten",
+DlgBtnResetSize		: "Größe zurücksetzen",
 DlgImgBorder		: "Rahmen",
-DlgImgHSpace		: "H-Freiraum",
-DlgImgVSpace		: "V-Freiraum",
+DlgImgHSpace		: "H-Abstand",
+DlgImgVSpace		: "V-Abstand",
 DlgImgAlign			: "Ausrichtung",
 DlgImgAlignLeft		: "Links",
 DlgImgAlignAbsBottom: "Abs Unten",
@@ -195,7 +208,7 @@
 DlgFlashTitle		: "Flash Eigenschaften",
 DlgFlashChkPlay		: "autom. Abspielen",
 DlgFlashChkLoop		: "Endlosschleife",
-DlgFlashChkMenu		: "Aktiviere Flash Menü",
+DlgFlashChkMenu		: "Flash-Menü aktivieren",
 DlgFlashScale		: "Skalierung",
 DlgFlashScaleAll	: "Alles anzeigen",
 DlgFlashScaleNoBorder	: "ohne Rand",
@@ -211,33 +224,33 @@
 DlgLnkTypeAnchor	: "Anker in dieser Seite",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;anderes&gt;",
+DlgLnkProtoOther	: "<anderes>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Anker auswählen",
 DlgLnkAnchorByName	: "nach Anker Name",
 DlgLnkAnchorById	: "nach Element Id",
-DlgLnkNoAnchors		: "&lt;keine Anker im Dokument vorhanden&gt;",
+DlgLnkNoAnchors		: "<keine Anker im Dokument vorhanden>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Addresse",
 DlgLnkEMailSubject	: "Betreffzeile",
 DlgLnkEMailBody		: "Nachrichtentext",
 DlgLnkUpload		: "Upload",
-DlgLnkBtnUpload		: "Uum Server senden",
+DlgLnkBtnUpload		: "Zum Server senden",
 
 DlgLnkTarget		: "Zielseite",
-DlgLnkTargetFrame	: "&lt;Frame&gt;",
-DlgLnkTargetPopup	: "&lt;Pop-up Fenster&gt;",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Pop-up Fenster>",
 DlgLnkTargetBlank	: "Neues Fenster (_blank)",
 DlgLnkTargetParent	: "Oberes Fenster (_parent)",
 DlgLnkTargetSelf	: "Gleiches Fenster (_self)",
 DlgLnkTargetTop		: "Oberstes Fenster (_top)",
-DlgLnkTargetFrameName	: "Ziel-Frame Name",
+DlgLnkTargetFrameName	: "Ziel-Fenster Name",
 DlgLnkPopWinName	: "Pop-up Fenster Name",
 DlgLnkPopWinFeat	: "Pop-up Fenster Eigenschaften",
 DlgLnkPopResize		: "Vergrößerbar",
 DlgLnkPopLocation	: "Adress-Leiste",
 DlgLnkPopMenu		: "Menü-Leiste",
-DlgLnkPopScroll		: "Scroll-Leisten",
-DlgLnkPopStatus		: "Status-Leiste",
+DlgLnkPopScroll		: "Rollbalken",
+DlgLnkPopStatus		: "Statusleiste",
 DlgLnkPopToolbar	: "Werkzeugleiste",
 DlgLnkPopFullScrn	: "Vollbild (IE)",
 DlgLnkPopDependent	: "Abhängig (Netscape)",
@@ -248,7 +261,8 @@
 
 DlnLnkMsgNoUrl		: "Bitte geben Sie die Link-URL an",
 DlnLnkMsgNoEMail	: "Bitte geben Sie e-Mail Adresse an",
-DlnLnkMsgNoAnchor	: "Bitte waehlen Sie einen Anker aus",
+DlnLnkMsgNoAnchor	: "Bitte wählen Sie einen Anker aus",
+DlnLnkMsgInvPopName	: "Der Name des Popups muss mit einem Buchstaben beginnen und darf keine Leerzeichen enthalten",
 
 // Color Dialog
 DlgColorTitle		: "Farbauswahl",
@@ -278,7 +292,8 @@
 DlgTableHeight		: "Höhe",
 DlgTableCellSpace	: "Zellenabstand außen",
 DlgTableCellPad		: "Zellenabstand innen",
-DlgTableCaption		: "Ãœeberschrift",
+DlgTableCaption		: "Ãœberschrift",
+DlgTableSummary		: "Inhaltsübersicht",
 
 // Table Cell Dialog
 DlgCellTitle		: "Zellen-Eigenschaften",
@@ -287,20 +302,20 @@
 DlgCellWidthPc		: "%",
 DlgCellHeight		: "Höhe",
 DlgCellWordWrap		: "Umbruch",
-DlgCellWordWrapNotSet	: "&lt;nichts&gt;",
+DlgCellWordWrapNotSet	: "<nichts>",
 DlgCellWordWrapYes	: "Ja",
 DlgCellWordWrapNo	: "Nein",
 DlgCellHorAlign		: "Horizontale Ausrichtung",
-DlgCellHorAlignNotSet	: "&lt;nichts&gt;",
+DlgCellHorAlignNotSet	: "<nichts>",
 DlgCellHorAlignLeft	: "Links",
 DlgCellHorAlignCenter	: "Zentriert",
 DlgCellHorAlignRight: "Rechts",
 DlgCellVerAlign		: "Vertikale Ausrichtung",
-DlgCellVerAlignNotSet	: "&lt;nichts&gt;",
+DlgCellVerAlignNotSet	: "<nichts>",
 DlgCellVerAlignTop	: "Oben",
 DlgCellVerAlignMiddle	: "Mitte",
 DlgCellVerAlignBottom	: "Unten",
-DlgCellVerAlignBaseline	: "Baseline",
+DlgCellVerAlignBaseline	: "Grundlinie",
 DlgCellRowSpan		: "Zeilen zusammenfassen",
 DlgCellCollSpan		: "Spalten zusammenfassen",
 DlgCellBackColor	: "Hintergrundfarbe",
@@ -310,7 +325,7 @@
 // Find Dialog
 DlgFindTitle		: "Finden",
 DlgFindFindBtn		: "Finden",
-DlgFindNotFoundMsg	: "Der Suchtext wurde nicht gefunden.",
+DlgFindNotFoundMsg	: "Der gesuchte Text wurde nicht gefunden.",
 
 // Replace Dialog
 DlgReplaceTitle			: "Ersetzen",
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "Nur ganze Worte suchen",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch einzufügen. Bitte benutzen Sie die System-Zwischenablage ueber STRG-C (kopieren) und STRG-V (einfügen).",
-PasteErrorCut	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage ueber STRG-X (ausschneiden) und STRG-V (einfügen).",
-PasteErrorCopy	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage ueber STRG-C (kopieren).",
+PasteErrorCut	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).",
+PasteErrorCopy	: "Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).",
 
 PasteAsText		: "Als Text einfügen",
 PasteFromWord	: "Aus Word einfügen",
 
 DlgPasteMsg2	: "Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Ctrl+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignoriere Schriftart-Definitionen",
 DlgPasteRemoveStyles	: "Entferne Style-Definitionen",
 DlgPasteCleanBox		: "Inhalt aufräumen",
 
-
 // Color Picker
 ColorAutomatic	: "Automatisch",
 ColorMoreColors	: "Weitere Farben...",
@@ -349,7 +363,7 @@
 
 // Speller Pages Dialog
 DlgSpellNotInDic		: "Nicht im Wörterbuch",
-DlgSpellChangeTo		: "Äendern in",
+DlgSpellChangeTo		: "Ändern in",
 DlgSpellBtnIgnore		: "Ignorieren",
 DlgSpellBtnIgnoreAll	: "Alle Ignorieren",
 DlgSpellBtnReplace		: "Ersetzen",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?",
 
 // Button Dialog
-DlgButtonText	: "Text (Wert)",
-DlgButtonType	: "Typ",
+DlgButtonText		: "Text (Wert)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Absenden",
+DlgButtonTypeRst	: "Zurücksetzen",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",
@@ -388,7 +405,7 @@
 DlgSelectOpText		: "Text",
 DlgSelectOpValue	: "Wert",
 DlgSelectBtnAdd		: "Hinzufügen",
-DlgSelectBtnModify	: "Äendern",
+DlgSelectBtnModify	: "Ändern",
 DlgSelectBtnUp		: "Hoch",
 DlgSelectBtnDown	: "Runter",
 DlgSelectBtnSetValue : "Setze als Standardwert",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Listen-Eigenschaften",
 NumberedListProp	: "Nummerierte Listen-Eigenschaften",
+DlgLstStart			: "Start",
 DlgLstType			: "Typ",
-DlgLstTypeCircle	: "Kreis",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Kreis",
 DlgLstTypeSquare	: "Quadrat",
 DlgLstTypeNumbers	: "Nummern (1, 2, 3)",
 DlgLstTypeLCase		: "Kleinbuchstaben (a, b, c)",
@@ -434,9 +452,18 @@
 DlgDocPageTitle		: "Seitentitel",
 DlgDocLangDir		: "Schriftrichtung",
 DlgDocLangDirLTR	: "Links nach Rechts",
-DlgDocLangDirRTL	: "rechts nach Links",
+DlgDocLangDirRTL	: "Rechts nach Links",
 DlgDocLangCode		: "Sprachkürzel",
 DlgDocCharSet		: "Zeichenkodierung",
+DlgDocCharSetCE		: "Zentraleuropäisch",
+DlgDocCharSetCT		: "traditionell Chinesisch (Big5)",
+DlgDocCharSetCR		: "Kyrillisch",
+DlgDocCharSetGR		: "Griechisch",
+DlgDocCharSetJP		: "Japanisch",
+DlgDocCharSetKR		: "Koreanisch",
+DlgDocCharSetTR		: "Türkisch",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Westeuropäisch",
 DlgDocCharSetOther	: "Andere Zeichenkodierung",
 
 DlgDocDocType		: "Dokumententyp",
@@ -444,7 +471,7 @@
 DlgDocIncXHTML		: "Beziehe XHTML Deklarationen ein",
 DlgDocBgColor		: "Hintergrundfarbe",
 DlgDocBgImage		: "Hintergrundbild URL",
-DlgDocBgNoScroll	: "Nicht-Scrollender Hintergrund",
+DlgDocBgNoScroll	: "feststehender Hintergrund",
 DlgDocCText			: "Text",
 DlgDocCLink			: "Link",
 DlgDocCVisited		: "Besuchter Link",
@@ -454,7 +481,7 @@
 DlgDocMaLeft		: "Links",
 DlgDocMaRight		: "Rechts",
 DlgDocMaBottom		: "Unten",
-DlgDocMeIndex		: "Schlüsselwörter (Komma-getrennt)",
+DlgDocMeIndex		: "Schlüsselwörter (durch Komma getrennt)",
 DlgDocMeDescr		: "Dokument-Beschreibung",
 DlgDocMeAuthor		: "Autor",
 DlgDocMeCopy		: "Copyright",
@@ -463,14 +490,15 @@
 // Templates Dialog
 Templates			: "Vorlagen",
 DlgTemplatesTitle	: "Vorlagen",
-DlgTemplatesSelMsg	: "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen(der aktuelle Inhalt wird dabei gelöscht!):",
+DlgTemplatesSelMsg	: "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):",
 DlgTemplatesLoading	: "Liste der Vorlagen wird geladen. Bitte warten...",
 DlgTemplatesNoTpl	: "(keine Vorlagen definiert)",
+DlgTemplatesReplace	: "Aktuellen Inhalt ersetzen",
 
 // About Dialog
 DlgAboutAboutTab	: "Ãœber",
 DlgAboutBrowserInfoTab	: "Browser-Info",
+DlgAboutLicenseTab	: "Lizenz",
 DlgAboutVersion		: "Version",
-DlgAboutLicense		: "Lizensiert unter den Richtlinien der GNU Lesser General Public License",
 DlgAboutInfo		: "Für weitere Informationen siehe"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/el.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/el.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/el.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: el.js
- * 	Greek language file.
- * 
- * File Authors:
- * 		Spyros Barbatos (sbarbatos{at}users.sourceforge.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Greek language file.
  */
 
 var FCKLang =
@@ -40,11 +44,11 @@
 InsertLinkLbl		: "Σύνδεσμος (Link)",
 InsertLink			: "Εισαγωγή/Μεταβολή Συνδέσμου (Link)",
 RemoveLink			: "Αφαίρεση Συνδέσμου (Link)",
-Anchor				: "Insert/Edit Anchor",	//MISSING
+Anchor				: "Εισαγωγή/επεξεργασία Anchor",
 InsertImageLbl		: "Εικόνα",
 InsertImage			: "Εισαγωγή/Μεταβολή Εικόνας",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertFlashLbl		: "Εισαγωγή Flash",
+InsertFlash			: "Εισαγωγή/επεξεργασία Flash",
 InsertTableLbl		: "Πίνακας",
 InsertTable			: "Εισαγωγή/Μεταβολή Πίνακα",
 InsertLineLbl		: "Γραμμή",
@@ -66,15 +70,15 @@
 BlockJustify		: "Πλήρης Στοίχιση (Block)",
 DecreaseIndent		: "Μείωση Εσοχής",
 IncreaseIndent		: "Αύξηση Εσοχής",
-Undo				: "Undo",
-Redo				: "Redo",
+Undo				: "Αναίρεση",
+Redo				: "Επαναφορά",
 NumberedListLbl		: "Λίστα με Αριθμούς",
 NumberedList		: "Εισαγωγή/Διαγραφή Λίστας με Αριθμούς",
 BulletedListLbl		: "Λίστα με Bullets",
 BulletedList		: "Εισαγωγή/Διαγραφή Λίστας με Bullets",
 ShowTableBorders	: "Προβολή Ορίων Πίνακα",
 ShowDetails			: "Προβολή Λεπτομερειών",
-Style				: "Style",
+Style				: "Στυλ",
 FontFormat			: "Μορφή Γραμματοσειράς",
 Font				: "Γραμματοσειρά",
 FontSize			: "Μέγεθος",
@@ -83,21 +87,28 @@
 Source				: "HTML κώδικας",
 Find				: "Αναζήτηση",
 Replace				: "Αντικατάσταση",
-SpellCheck			: "Check Spell",	//MISSING
-UniversalKeyboard	: "Universal Keyboard",	//MISSING
+SpellCheck			: "Ορθογραφικός έλεγχος",
+UniversalKeyboard	: "Διεθνής πληκτρολόγιο",
+PageBreakLbl		: "Τέλος σελίδας",
+PageBreak			: "Εισαγωγή τέλους σελίδας",
 
-Form			: "Form",	//MISSING
-Checkbox		: "Checkbox",	//MISSING
-RadioButton		: "Radio Button",	//MISSING
-TextField		: "Text Field",	//MISSING
-Textarea		: "Textarea",	//MISSING
-HiddenField		: "Hidden Field",	//MISSING
-Button			: "Button",	//MISSING
-SelectionField	: "Selection Field",	//MISSING
-ImageButton		: "Image Button",	//MISSING
+Form			: "Φόρμα",
+Checkbox		: "Κουτί επιλογής",
+RadioButton		: "Κουμπί Radio",
+TextField		: "Πεδίο κειμένου",
+Textarea		: "Περιοχή κειμένου",
+HiddenField		: "Κρυφό πεδίο",
+Button			: "Κουμπί",
+SelectionField	: "Πεδίο επιλογής",
+ImageButton		: "Κουμπί εικόνας",
 
+FitWindow		: "Μεγιστοποίηση προγράμματος",
+
 // Context Menu
 EditLink			: "Μεταβολή Συνδέσμου (Link)",
+CellCM				: "Κελί",
+RowCM				: "Σειρά",
+ColumnCM			: "Στήλη",
 InsertRow			: "Εισαγωγή Γραμμής",
 DeleteRows			: "Διαγραφή Γραμμών",
 InsertColumn		: "Εισαγωγή Κολώνας",
@@ -106,23 +117,24 @@
 DeleteCells			: "Διαγραφή Κελιών",
 MergeCells			: "Ενοποίηση Κελιών",
 SplitCell			: "Διαχωρισμός Κελιού",
+TableDelete			: "Διαγραφή πίνακα",
 CellProperties		: "Ιδιότητες Κελιού",
 TableProperties		: "Ιδιότητες Πίνακα",
 ImageProperties		: "Ιδιότητες Εικόνας",
-FlashProperties		: "Flash Properties",	//MISSING
+FlashProperties		: "Ιδιότητες Flash",
 
-AnchorProp			: "Anchor Properties",	//MISSING
-ButtonProp			: "Button Properties",	//MISSING
-CheckboxProp		: "Checkbox Properties",	//MISSING
-HiddenFieldProp		: "Hidden Field Properties",	//MISSING
-RadioButtonProp		: "Radio Button Properties",	//MISSING
-ImageButtonProp		: "Image Button Properties",	//MISSING
-TextFieldProp		: "Text Field Properties",	//MISSING
-SelectionFieldProp	: "Selection Field Properties",	//MISSING
-TextareaProp		: "Textarea Properties",	//MISSING
-FormProp			: "Form Properties",	//MISSING
+AnchorProp			: "Ιδιότητες άγκυρας",
+ButtonProp			: "Ιδιότητες κουμπιού",
+CheckboxProp		: "Ιδιότητες κουμπιού επιλογής",
+HiddenFieldProp		: "Ιδιότητες κρυφού πεδίου",
+RadioButtonProp		: "Ιδιότητες κουμπιού radio",
+ImageButtonProp		: "Ιδιότητες κουμπιού εικόνας",
+TextFieldProp		: "Ιδιότητες πεδίου κειμένου",
+SelectionFieldProp	: "Ιδιότητες πεδίου επιλογής",
+TextareaProp		: "Ιδιότητες περιοχής κειμένου",
+FormProp			: "Ιδιότητες φόρμας",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Κανονικό;Μορφοποιημένο;Διεύθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Επεξεργασία XHTML. Παρακαλώ περιμένετε...",
@@ -133,34 +145,36 @@
 UnknownCommand		: "Άγνωστή εντολή \"%1\"",
 NotImplemented		: "Η εντολή δεν έχει ενεργοποιηθεί",
 UnknownToolbarSet	: "Η μπάρα εργαλείων \"%1\" δεν υπάρχει",
-NoActiveX			: "You 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
+NoActiveX			: "Οι ρυθμίσεις ασφαλείας του browser σας μπορεί να περιορίσουν κάποιες ρυθμίσεις του προγράμματος. Χρειάζεται να ενεργοποιήσετε την επιλογή \"Run ActiveX controls and plug-ins\". Ίσως παρουσιαστούν λάθη και παρατηρήσετε ελειπείς λειτουργίες.",
+BrowseServerBlocked : "Οι πόροι του browser σας δεν είναι προσπελάσιμοι. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",
+DialogBlocked		: "Δεν ήταν δυνατό να ανοίξει το παράθυρο διαλόγου. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.",
 
 // Dialogs
 DlgBtnOK			: "OK",
 DlgBtnCancel		: "Ακύρωση",
 DlgBtnClose			: "Κλείσιμο",
-DlgBtnBrowseServer	: "Browse Server",	//MISSING
+DlgBtnBrowseServer	: "Εξερεύνηση διακομιστή",
 DlgAdvancedTag		: "Για προχωρημένους",
-DlgOpOther			: "&lt;Other&gt;",	//MISSING
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgOpOther			: "<Άλλα>",
+DlgInfoTab			: "Πληροφορίες",
+DlgAlertUrl			: "Παρακαλώ εισάγετε URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;χωρίς&gt;",
+DlgGenNotSet		: "<χωρίς>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Κατεύθυνση κειμένου",
 DlgGenLangDirLtr	: "Αριστερά προς Δεξιά (LTR)",
 DlgGenLangDirRtl	: "Δεξιά προς Αριστερά (RTL)",
 DlgGenLangCode		: "Κωδικός Γλώσσας",
 DlgGenAccessKey		: "Συντόμευση (Access Key)",
-DlgGenName			: "Name",
+DlgGenName			: "Όνομα",
 DlgGenTabIndex		: "Tab Index",
-DlgGenLongDescr		: "Long Description URL",
+DlgGenLongDescr		: "Αναλυτική περιγραφή URL",
 DlgGenClass			: "Stylesheet Classes",
-DlgGenTitle			: "Advisory Title",
-DlgGenContType		: "Advisory Content Type",
+DlgGenTitle			: "Συμβουλευτικός τίτλος",
+DlgGenContType		: "Συμβουλευτικός τίτλος περιεχομένου",
 DlgGenLinkCharset	: "Linked Resource Charset",
-DlgGenStyle			: "Style",
+DlgGenStyle			: "Στύλ",
 
 // Image Dialog
 DlgImgTitle			: "Ιδιότητες Εικόνας",
@@ -188,34 +202,34 @@
 DlgImgAlignTop		: "Πάνω (Top)",
 DlgImgPreview		: "Προεπισκόπιση",
 DlgImgAlertUrl		: "Εισάγετε την τοποθεσία (URL) της εικόνας",
-DlgImgLinkTab		: "Link",	//MISSING
+DlgImgLinkTab		: "Σύνδεσμος",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "Ιδιότητες flash",
+DlgFlashChkPlay		: "Αυτόματη έναρξη",
+DlgFlashChkLoop		: "Επανάληψη",
+DlgFlashChkMenu		: "Ενεργοποίηση Flash Menu",
+DlgFlashScale		: "Κλίμακα",
+DlgFlashScaleAll	: "Εμφάνιση όλων",
+DlgFlashScaleNoBorder	: "Χωρίς όρια",
+DlgFlashScaleFit	: "Ακριβής εφαρμογή",
 
 // Link Dialog
-DlgLnkWindowTitle	: "Υπερσύνδεσμος (Link)",
+DlgLnkWindowTitle	: "Σύνδεσμος (Link)",
 DlgLnkInfoTab		: "Link",
 DlgLnkTargetTab		: "Παράθυρο Στόχος (Target)",
 
-DlgLnkType			: "Τύπος Υπερσυνδέσμου (Link)",
+DlgLnkType			: "Τύπος συνδέσμου (Link)",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Anchor in this page",
+DlgLnkTypeAnchor	: "Άγκυρα σε αυτή τη σελίδα",
 DlgLnkTypeEMail		: "E-Mail",
-DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;άλλο&gt;",
+DlgLnkProto			: "Προτόκολο",
+DlgLnkProtoOther	: "<άλλο>",
 DlgLnkURL			: "URL",
-DlgLnkAnchorSel		: "Επιλέξτε ένα Anchor",
-DlgLnkAnchorByName	: "Βάσει του Ονόματος (Name)του Anchor",
+DlgLnkAnchorSel		: "Επιλέξτε μια άγκυρα",
+DlgLnkAnchorByName	: "Βάσει του Ονόματος (Name) της άγκυρας",
 DlgLnkAnchorById	: "Βάσει του Element Id",
-DlgLnkNoAnchors		: "&lt;Δεν υπάρχουν Anchors στο κείμενο&gt;",
+DlgLnkNoAnchors		: "<Δεν υπάρχουν άγκυρες στο κείμενο>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Διεύθυνση Ηλεκτρονικού Ταχυδρομείου",
 DlgLnkEMailSubject	: "Θέμα Μηνύματος",
 DlgLnkEMailBody		: "Κείμενο Μηνύματος",
@@ -223,13 +237,13 @@
 DlgLnkBtnUpload		: "Αποστολή στον Διακομιστή",
 
 DlgLnkTarget		: "Παράθυρο Στόχος (Target)",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;popup window&gt;",
+DlgLnkTargetFrame	: "<πλαίσιο>",
+DlgLnkTargetPopup	: "<παράθυρο popup>",
 DlgLnkTargetBlank	: "Νέο Παράθυρο (_blank)",
 DlgLnkTargetParent	: "Γονικό Παράθυρο (_parent)",
 DlgLnkTargetSelf	: "Ίδιο Παράθυρο (_self)",
 DlgLnkTargetTop		: "Ανώτατο Παράθυρο (_top)",
-DlgLnkTargetFrameName	: "Target Frame Name",	//MISSING
+DlgLnkTargetFrameName	: "Όνομα πλαισίου στόχου",
 DlgLnkPopWinName	: "Όνομα Popup Window",
 DlgLnkPopWinFeat	: "Επιλογές Popup Window",
 DlgLnkPopResize		: "Με αλλαγή Μεγέθους",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)",
 DlnLnkMsgNoEMail	: "Εισάγετε την διεύθυνση ηλεκτρονικού ταχυδρομείου",
 DlnLnkMsgNoAnchor	: "Επιλέξτε ένα Anchor",
+DlnLnkMsgInvPopName	: "Το όνομα του popup πρέπει να αρχίζει με χαρακτήρα της αλφαβήτου και να μην περιέχει κενά",
 
 // Color Dialog
 DlgColorTitle		: "Επιλογή χρώματος",
@@ -275,9 +290,10 @@
 DlgTableWidthPx		: "pixels",
 DlgTableWidthPc		: "\%",
 DlgTableHeight		: "Ύψος",
-DlgTableCellSpace	: "Cell spacing",
-DlgTableCellPad		: "Cell padding",
+DlgTableCellSpace	: "Απόσταση κελιών",
+DlgTableCellPad		: "Γέμισμα κελιών",
 DlgTableCaption		: "Υπέρτιτλος",
+DlgTableSummary		: "Περίληψη",
 
 // Table Cell Dialog
 DlgCellTitle		: "Ιδιότητες Κελιού",
@@ -321,155 +337,168 @@
 DlgReplaceWordChk		: "Εύρεση πλήρους λέξης",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία επικόλλησης. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+V).",
 PasteErrorCut	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+X).",
 PasteErrorCopy	: "Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+C).",
 
 PasteAsText		: "Επικόλληση ως Απλό Κείμενο",
 PasteFromWord	: "Επικόλληση από το Word",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Αγνόηση προδιαγραφών γραμματοσειράς",
+DlgPasteRemoveStyles	: "Αφαίρεση προδιαγραφών στύλ",
+DlgPasteCleanBox		: "Κουτί εκαθάρισης",
 
-
 // Color Picker
 ColorAutomatic	: "Αυτόματο",
 ColorMoreColors	: "Περισσότερα χρώματα...",
 
 // Document Properties
-DocProps		: "Document Properties",	//MISSING
+DocProps		: "Ιδιότητες εγγράφου",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Anchor Properties",	//MISSING
-DlgAnchorName		: "Anchor Name",	//MISSING
-DlgAnchorErrorName	: "Please type the anchor name",	//MISSING
+DlgAnchorTitle		: "Ιδιότητες άγκυρας",
+DlgAnchorName		: "Όνομα άγκυρας",
+DlgAnchorErrorName	: "Παρακαλούμε εισάγετε όνομα άγκυρας",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Not in dictionary",	//MISSING
-DlgSpellChangeTo		: "Change to",	//MISSING
-DlgSpellBtnIgnore		: "Ignore",	//MISSING
-DlgSpellBtnIgnoreAll	: "Ignore All",	//MISSING
-DlgSpellBtnReplace		: "Replace",	//MISSING
-DlgSpellBtnReplaceAll	: "Replace All",	//MISSING
-DlgSpellBtnUndo			: "Undo",	//MISSING
-DlgSpellNoSuggestions	: "- No suggestions -",	//MISSING
-DlgSpellProgress		: "Spell check in progress...",	//MISSING
-DlgSpellNoMispell		: "Spell check complete: No misspellings found",	//MISSING
-DlgSpellNoChanges		: "Spell check complete: No words changed",	//MISSING
-DlgSpellOneChange		: "Spell check complete: One word changed",	//MISSING
-DlgSpellManyChanges		: "Spell check complete: %1 words changed",	//MISSING
+DlgSpellNotInDic		: "Δεν υπάρχει στο λεξικό",
+DlgSpellChangeTo		: "Αλλαγή σε",
+DlgSpellBtnIgnore		: "Αγνόηση",
+DlgSpellBtnIgnoreAll	: "Αγνόηση όλων",
+DlgSpellBtnReplace		: "Αντικατάσταση",
+DlgSpellBtnReplaceAll	: "Αντικατάσταση όλων",
+DlgSpellBtnUndo			: "Αναίρεση",
+DlgSpellNoSuggestions	: "- Δεν υπάρχουν προτάσεις -",
+DlgSpellProgress		: "Ορθογραφικός έλεγχος σε εξέλιξη...",
+DlgSpellNoMispell		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν βρέθηκαν λάθη",
+DlgSpellNoChanges		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Δεν άλλαξαν λέξεις",
+DlgSpellOneChange		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: Μια λέξη άλλαξε",
+DlgSpellManyChanges		: "Ο ορθογραφικός έλεγχος ολοκληρώθηκε: %1 λέξεις άλλαξαν",
 
-IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
+IeSpellDownload			: "Δεν υπάρχει εγκατεστημένος ορθογράφος. Θέλετε να τον κατεβάσετε τώρα;",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",	//MISSING
-DlgButtonType	: "Type",	//MISSING
+DlgButtonText		: "Κείμενο (Τιμή)",
+DlgButtonType		: "Τύπος",
+DlgButtonTypeBtn	: "Κουμπί",
+DlgButtonTypeSbm	: "Καταχώρηση",
+DlgButtonTypeRst	: "Επαναφορά",
 
 // Checkbox and Radio Button Dialogs
-DlgCheckboxName		: "Name",	//MISSING
-DlgCheckboxValue	: "Value",	//MISSING
-DlgCheckboxSelected	: "Selected",	//MISSING
+DlgCheckboxName		: "Όνομα",
+DlgCheckboxValue	: "Τιμή",
+DlgCheckboxSelected	: "Επιλεγμένο",
 
 // Form Dialog
-DlgFormName		: "Name",	//MISSING
-DlgFormAction	: "Action",	//MISSING
-DlgFormMethod	: "Method",	//MISSING
+DlgFormName		: "Όνομα",
+DlgFormAction	: "Δράση",
+DlgFormMethod	: "Μάθοδος",
 
 // Select Field Dialog
-DlgSelectName		: "Name",	//MISSING
-DlgSelectValue		: "Value",	//MISSING
-DlgSelectSize		: "Size",	//MISSING
-DlgSelectLines		: "lines",	//MISSING
-DlgSelectChkMulti	: "Allow multiple selections",	//MISSING
-DlgSelectOpAvail	: "Available Options",	//MISSING
-DlgSelectOpText		: "Text",	//MISSING
-DlgSelectOpValue	: "Value",	//MISSING
-DlgSelectBtnAdd		: "Add",	//MISSING
-DlgSelectBtnModify	: "Modify",	//MISSING
-DlgSelectBtnUp		: "Up",	//MISSING
-DlgSelectBtnDown	: "Down",	//MISSING
-DlgSelectBtnSetValue : "Set as selected value",	//MISSING
-DlgSelectBtnDelete	: "Delete",	//MISSING
+DlgSelectName		: "Όνομα",
+DlgSelectValue		: "Τιμή",
+DlgSelectSize		: "Μέγεθος",
+DlgSelectLines		: "γραμμές",
+DlgSelectChkMulti	: "Πολλαπλές επιλογές",
+DlgSelectOpAvail	: "Διαθέσιμες επιλογές",
+DlgSelectOpText		: "Κείμενο",
+DlgSelectOpValue	: "Τιμή",
+DlgSelectBtnAdd		: "Προσθήκη",
+DlgSelectBtnModify	: "Αλλαγή",
+DlgSelectBtnUp		: "Πάνω",
+DlgSelectBtnDown	: "Κάτω",
+DlgSelectBtnSetValue : "Προεπιλεγμένη επιλογή",
+DlgSelectBtnDelete	: "Διαγραφή",
 
 // Textarea Dialog
-DlgTextareaName	: "Name",	//MISSING
-DlgTextareaCols	: "Columns",	//MISSING
-DlgTextareaRows	: "Rows",	//MISSING
+DlgTextareaName	: "Όνομα",
+DlgTextareaCols	: "Στήλες",
+DlgTextareaRows	: "Σειρές",
 
 // Text Field Dialog
-DlgTextName			: "Name",	//MISSING
-DlgTextValue		: "Value",	//MISSING
-DlgTextCharWidth	: "Character Width",	//MISSING
-DlgTextMaxChars		: "Maximum Characters",	//MISSING
-DlgTextType			: "Type",	//MISSING
-DlgTextTypeText		: "Text",	//MISSING
-DlgTextTypePass		: "Password",	//MISSING
+DlgTextName			: "Όνομα",
+DlgTextValue		: "Τιμή",
+DlgTextCharWidth	: "Μήκος χαρακτήρων",
+DlgTextMaxChars		: "Μέγιστοι χαρακτήρες",
+DlgTextType			: "Τύπος",
+DlgTextTypeText		: "Κείμενο",
+DlgTextTypePass		: "Κωδικός",
 
 // Hidden Field Dialog
-DlgHiddenName	: "Name",	//MISSING
-DlgHiddenValue	: "Value",	//MISSING
+DlgHiddenName	: "Όνομα",
+DlgHiddenValue	: "Τιμή",
 
 // Bulleted List Dialog
-BulletedListProp	: "Bulleted List Properties",	//MISSING
-NumberedListProp	: "Numbered List Properties",	//MISSING
-DlgLstType			: "Type",	//MISSING
-DlgLstTypeCircle	: "Circle",	//MISSING
-DlgLstTypeDisc		: "Disc",	//MISSING
-DlgLstTypeSquare	: "Square",	//MISSING
-DlgLstTypeNumbers	: "Numbers (1, 2, 3)",	//MISSING
-DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",	//MISSING
-DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",	//MISSING
-DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",	//MISSING
-DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",	//MISSING
+BulletedListProp	: "Ιδιότητες λίστας Bulleted",
+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	: "General",	//MISSING
-DlgDocBackTab		: "Background",	//MISSING
-DlgDocColorsTab		: "Colors and Margins",	//MISSING
-DlgDocMetaTab		: "Meta Data",	//MISSING
+DlgDocGeneralTab	: "Γενικά",
+DlgDocBackTab		: "Φόντο",
+DlgDocColorsTab		: "Χρώματα και περιθώρια",
+DlgDocMetaTab		: "Δεδομένα Meta",
 
-DlgDocPageTitle		: "Page Title",	//MISSING
-DlgDocLangDir		: "Language Direction",	//MISSING
-DlgDocLangDirLTR	: "Left to Right (LTR)",	//MISSING
-DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
-DlgDocLangCode		: "Language Code",	//MISSING
-DlgDocCharSet		: "Character Set Encoding",	//MISSING
-DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
+DlgDocPageTitle		: "Τίτλος σελίδας",
+DlgDocLangDir		: "Κατεύθυνση γραφής",
+DlgDocLangDirLTR	: "αριστερά προς δεξιά (LTR)",
+DlgDocLangDirRTL	: "δεξιά προς αριστερά (RTL)",
+DlgDocLangCode		: "Κωδικός γλώσσας",
+DlgDocCharSet		: "Κωδικοποίηση χαρακτήρων",
+DlgDocCharSetCE		: "Κεντρικής Ευρώπης",
+DlgDocCharSetCT		: "Παραδοσιακά κινέζικα (Big5)",
+DlgDocCharSetCR		: "Κυριλλική",
+DlgDocCharSetGR		: "Ελληνική",
+DlgDocCharSetJP		: "Ιαπωνική",
+DlgDocCharSetKR		: "Κορεάτικη",
+DlgDocCharSetTR		: "Τουρκική",
+DlgDocCharSetUN		: "Διεθνής (UTF-8)",
+DlgDocCharSetWE		: "Δυτικής Ευρώπης",
+DlgDocCharSetOther	: "Άλλη κωδικοποίηση χαρακτήρων",
 
-DlgDocDocType		: "Document Type Heading",	//MISSING
-DlgDocDocTypeOther	: "Other Document Type Heading",	//MISSING
-DlgDocIncXHTML		: "Include XHTML Declarations",	//MISSING
-DlgDocBgColor		: "Background Color",	//MISSING
-DlgDocBgImage		: "Background Image URL",	//MISSING
-DlgDocBgNoScroll	: "Nonscrolling Background",	//MISSING
-DlgDocCText			: "Text",	//MISSING
-DlgDocCLink			: "Link",	//MISSING
-DlgDocCVisited		: "Visited Link",	//MISSING
-DlgDocCActive		: "Active Link",	//MISSING
-DlgDocMargins		: "Page Margins",	//MISSING
-DlgDocMaTop			: "Top",	//MISSING
-DlgDocMaLeft		: "Left",	//MISSING
-DlgDocMaRight		: "Right",	//MISSING
-DlgDocMaBottom		: "Bottom",	//MISSING
-DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",	//MISSING
-DlgDocMeDescr		: "Document Description",	//MISSING
-DlgDocMeAuthor		: "Author",	//MISSING
-DlgDocMeCopy		: "Copyright",	//MISSING
-DlgDocPreview		: "Preview",	//MISSING
+DlgDocDocType		: "Επικεφαλίδα τύπου εγγράφου",
+DlgDocDocTypeOther	: "Άλλη επικεφαλίδα τύπου εγγράφου",
+DlgDocIncXHTML		: "Να συμπεριληφθούν οι δηλώσεις XHTML",
+DlgDocBgColor		: "Χρώμα φόντου",
+DlgDocBgImage		: "Διεύθυνση εικόνας φόντου",
+DlgDocBgNoScroll	: "Φόντο χωρίς κύλιση",
+DlgDocCText			: "Κείμενο",
+DlgDocCLink			: "Σύνδεσμος",
+DlgDocCVisited		: "Σύνδεσμος που έχει επισκευθεί",
+DlgDocCActive		: "Ενεργός σύνδεσμος",
+DlgDocMargins		: "Περιθώρια σελίδας",
+DlgDocMaTop			: "Κορυφή",
+DlgDocMaLeft		: "Αριστερά",
+DlgDocMaRight		: "Δεξιά",
+DlgDocMaBottom		: "Κάτω",
+DlgDocMeIndex		: "Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)",
+DlgDocMeDescr		: "Περιγραφή εγγράφου",
+DlgDocMeAuthor		: "Συγγραφέας",
+DlgDocMeCopy		: "Πνευματικά δικαιώματα",
+DlgDocPreview		: "Προεπισκόπηση",
 
 // Templates Dialog
-Templates			: "Templates",	//MISSING
-DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
-DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
-DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+Templates			: "Πρότυπα",
+DlgTemplatesTitle	: "Πρότυπα περιεχομένου",
+DlgTemplatesSelMsg	: "Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα<br>(τα υπάρχοντα περιεχόμενα θα χαθούν):",
+DlgTemplatesLoading	: "Φόρτωση καταλόγου προτύπων. Παρακαλώ περιμένετε...",
+DlgTemplatesNoTpl	: "(Δεν έχουν καθοριστεί πρότυπα)",
+DlgTemplatesReplace	: "Αντικατάσταση υπάρχοντων περιεχομένων",
 
 // About Dialog
-DlgAboutAboutTab	: "About",	//MISSING
-DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutAboutTab	: "Σχετικά",
+DlgAboutBrowserInfoTab	: "Πληροφορίες Browser",
+DlgAboutLicenseTab	: "Άδεια",
 DlgAboutVersion		: "έκδοση",
-DlgAboutLicense		: "Άδεια χρήσης υπό τους όρους της GNU Lesser General Public License",
 DlgAboutInfo		: "Για περισσότερες πληροφορίες"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-au.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-au.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-au.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: en-au.js
- * 	English (Australia) language file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Christopher Dawes (fckeditor at dawes.id.au)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (Australia) language file.
  */
 
 var FCKLang =
@@ -50,7 +53,7 @@
 InsertTable			: "Insert/Edit Table",
 InsertLineLbl		: "Line",
 InsertLine			: "Insert Horizontal Line",
-InsertSpecialCharLbl: "Special Char",
+InsertSpecialCharLbl: "Special Character",
 InsertSpecialChar	: "Insert Special Character",
 InsertSmileyLbl		: "Smiley",
 InsertSmiley		: "Insert Smiley",
@@ -62,7 +65,7 @@
 Subscript			: "Subscript",
 Superscript			: "Superscript",
 LeftJustify			: "Left Justify",
-CenterJustify		: "Center Justify",
+CenterJustify		: "Centre Justify",
 RightJustify		: "Right Justify",
 BlockJustify		: "Block Justify",
 DecreaseIndent		: "Decrease Indent",
@@ -79,13 +82,15 @@
 FontFormat			: "Format",
 Font				: "Font",
 FontSize			: "Size",
-TextColor			: "Text Color",
-BGColor				: "Background Color",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
 Source				: "Source",
 Find				: "Find",
 Replace				: "Replace",
-SpellCheck			: "Check Spell",
+SpellCheck			: "Check Spelling",
 UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
 
 Form			: "Form",
 Checkbox		: "Checkbox",
@@ -97,8 +102,13 @@
 SelectionField	: "Selection Field",
 ImageButton		: "Image Button",
 
+FitWindow		: "Maximize the editor size",
+
 // Context Menu
 EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
 InsertRow			: "Insert Row",
 DeleteRows			: "Delete Rows",
 InsertColumn		: "Insert Column",
@@ -107,6 +117,7 @@
 DeleteCells			: "Delete Cells",
 MergeCells			: "Merge Cells",
 SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
 CellProperties		: "Cell Properties",
 TableProperties		: "Table Properties",
 ImageProperties		: "Image Properties",
@@ -123,7 +134,7 @@
 TextareaProp		: "Textarea Properties",
 FormProp			: "Form Properties",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Processing XHTML. Please wait...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "Unknown command name \"%1\"",
 NotImplemented		: "Command not implemented",
 UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Close",
 DlgBtnBrowseServer	: "Browse Server",
 DlgAdvancedTag		: "Advanced",
-DlgOpOther			: "&lt;Other&gt;",
+DlgOpOther			: "<Other>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Please insert the URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;not set&gt;",
+DlgGenNotSet		: "<not set>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Language Direction",
 DlgGenLangDirLtr	: "Left to Right (LTR)",
@@ -208,15 +221,15 @@
 
 DlgLnkType			: "Link Type",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Anchor in this page",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;other&gt;",
+DlgLnkProtoOther	: "<other>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Select an Anchor",
 DlgLnkAnchorByName	: "By Anchor Name",
 DlgLnkAnchorById	: "By Element Id",
-DlgLnkNoAnchors		: "&lt;No anchors available in the document&gt;",
+DlgLnkNoAnchors		: "(No anchors available in the document)",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Address",
 DlgLnkEMailSubject	: "Message Subject",
 DlgLnkEMailBody		: "Message Body",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "Send it to the Server",
 
 DlgLnkTarget		: "Target",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;popup window&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
 DlgLnkTargetBlank	: "New Window (_blank)",
 DlgLnkTargetParent	: "Parent Window (_parent)",
 DlgLnkTargetSelf	: "Same Window (_self)",
@@ -249,9 +262,10 @@
 DlnLnkMsgNoUrl		: "Please type the link URL",
 DlnLnkMsgNoEMail	: "Please type the e-mail address",
 DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
 
 // Color Dialog
-DlgColorTitle		: "Select Color",
+DlgColorTitle		: "Select Colour",
 DlgColorBtnClear	: "Clear",
 DlgColorHighlight	: "Highlight",
 DlgColorSelected	: "Selected",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Cell spacing",
 DlgTableCellPad		: "Cell padding",
 DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
 
 // Table Cell Dialog
 DlgCellTitle		: "Cell Properties",
@@ -287,24 +302,24 @@
 DlgCellWidthPc		: "percent",
 DlgCellHeight		: "Height",
 DlgCellWordWrap		: "Word Wrap",
-DlgCellWordWrapNotSet	: "&lt;Not set&gt;",
+DlgCellWordWrapNotSet	: "<Not set>",
 DlgCellWordWrapYes	: "Yes",
 DlgCellWordWrapNo	: "No",
 DlgCellHorAlign		: "Horizontal Alignment",
-DlgCellHorAlignNotSet	: "&lt;Not set&gt;",
+DlgCellHorAlignNotSet	: "<Not set>",
 DlgCellHorAlignLeft	: "Left",
 DlgCellHorAlignCenter	: "Centre",
 DlgCellHorAlignRight: "Right",
 DlgCellVerAlign		: "Vertical Alignment",
-DlgCellVerAlignNotSet	: "&lt;Not set&gt;",
+DlgCellVerAlignNotSet	: "<Not set>",
 DlgCellVerAlignTop	: "Top",
 DlgCellVerAlignMiddle	: "Middle",
 DlgCellVerAlignBottom	: "Bottom",
 DlgCellVerAlignBaseline	: "Baseline",
 DlgCellRowSpan		: "Rows Span",
 DlgCellCollSpan		: "Columns Span",
-DlgCellBackColor	: "Background Color",
-DlgCellBorderColor	: "Border Color",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
 DlgCellBtnSelect	: "Select...",
 
 // Find Dialog
@@ -322,22 +337,21 @@
 DlgReplaceWordChk		: "Match whole word",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Your browser security settings don't permit the editor to automaticaly execute pasting operations. Please use the keyboard for that (Ctrl+V).",
-PasteErrorCut	: "Your browser security settings don't permit the editor to automaticaly execute cutting operations. Please use the keyboard for that (Ctrl+X).",
-PasteErrorCopy	: "Your browser security settings don't permit the editor to automaticaly execute copying operations. Please use the keyboard for that (Ctrl+C).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
 
 PasteAsText		: "Paste as Plain Text",
 PasteFromWord	: "Paste from Word",
 
 DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",
 DlgPasteRemoveStyles	: "Remove Styles definitions",
 DlgPasteCleanBox		: "Clean Up Box",
 
-
 // Color Picker
 ColorAutomatic	: "Automatic",
-ColorMoreColors	: "More Colors...",
+ColorMoreColors	: "More Colours...",
 
 // Document Properties
 DocProps		: "Document Properties",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",
-DlgButtonType	: "Type",
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Bulleted List Properties",
 NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Circle",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disc",
 DlgLstTypeSquare	: "Square",
 DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
 DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
@@ -428,7 +446,7 @@
 // Document Properties Dialog
 DlgDocGeneralTab	: "General",
 DlgDocBackTab		: "Background",
-DlgDocColorsTab		: "Colors and Margins",
+DlgDocColorsTab		: "Colours and Margins",
 DlgDocMetaTab		: "Meta Data",
 
 DlgDocPageTitle		: "Page Title",
@@ -437,12 +455,21 @@
 DlgDocLangDirRTL	: "Right to Left (RTL)",
 DlgDocLangCode		: "Language Code",
 DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
 DlgDocCharSetOther	: "Other Character Set Encoding",
 
 DlgDocDocType		: "Document Type Heading",
 DlgDocDocTypeOther	: "Other Document Type Heading",
 DlgDocIncXHTML		: "Include XHTML Declarations",
-DlgDocBgColor		: "Background Color",
+DlgDocBgColor		: "Background Colour",
 DlgDocBgImage		: "Background Image URL",
 DlgDocBgNoScroll	: "Nonscrolling Background",
 DlgDocCText			: "Text",
@@ -466,11 +493,12 @@
 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",
 
 // About Dialog
 DlgAboutAboutTab	: "About",
 DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
 DlgAboutInfo		: "For further information go to"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-ca.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-ca.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-ca.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (Canadian) language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Collapse Toolbar",
+ToolbarExpand		: "Expand Toolbar",
+
+// Toolbar Items and Context Menu
+Save				: "Save",
+NewPage				: "New Page",
+Preview				: "Preview",
+Cut					: "Cut",
+Copy				: "Copy",
+Paste				: "Paste",
+PasteText			: "Paste as plain text",
+PasteWord			: "Paste from Word",
+Print				: "Print",
+SelectAll			: "Select All",
+RemoveFormat		: "Remove Format",
+InsertLinkLbl		: "Link",
+InsertLink			: "Insert/Edit Link",
+RemoveLink			: "Remove Link",
+Anchor				: "Insert/Edit Anchor",
+InsertImageLbl		: "Image",
+InsertImage			: "Insert/Edit Image",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Insert/Edit Flash",
+InsertTableLbl		: "Table",
+InsertTable			: "Insert/Edit Table",
+InsertLineLbl		: "Line",
+InsertLine			: "Insert Horizontal Line",
+InsertSpecialCharLbl: "Special Character",
+InsertSpecialChar	: "Insert Special Character",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Insert Smiley",
+About				: "About FCKeditor",
+Bold				: "Bold",
+Italic				: "Italic",
+Underline			: "Underline",
+StrikeThrough		: "Strike Through",
+Subscript			: "Subscript",
+Superscript			: "Superscript",
+LeftJustify			: "Left Justify",
+CenterJustify		: "Centre Justify",
+RightJustify		: "Right Justify",
+BlockJustify		: "Block Justify",
+DecreaseIndent		: "Decrease Indent",
+IncreaseIndent		: "Increase Indent",
+Undo				: "Undo",
+Redo				: "Redo",
+NumberedListLbl		: "Numbered List",
+NumberedList		: "Insert/Remove Numbered List",
+BulletedListLbl		: "Bulleted List",
+BulletedList		: "Insert/Remove Bulleted List",
+ShowTableBorders	: "Show Table Borders",
+ShowDetails			: "Show Details",
+Style				: "Style",
+FontFormat			: "Format",
+Font				: "Font",
+FontSize			: "Size",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
+Source				: "Source",
+Find				: "Find",
+Replace				: "Replace",
+SpellCheck			: "Check Spelling",
+UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
+
+Form			: "Form",
+Checkbox		: "Checkbox",
+RadioButton		: "Radio Button",
+TextField		: "Text Field",
+Textarea		: "Textarea",
+HiddenField		: "Hidden Field",
+Button			: "Button",
+SelectionField	: "Selection Field",
+ImageButton		: "Image Button",
+
+FitWindow		: "Maximize the editor size",
+
+// Context Menu
+EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
+InsertRow			: "Insert Row",
+DeleteRows			: "Delete Rows",
+InsertColumn		: "Insert Column",
+DeleteColumns		: "Delete Columns",
+InsertCell			: "Insert Cell",
+DeleteCells			: "Delete Cells",
+MergeCells			: "Merge Cells",
+SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
+CellProperties		: "Cell Properties",
+TableProperties		: "Table Properties",
+ImageProperties		: "Image Properties",
+FlashProperties		: "Flash Properties",
+
+AnchorProp			: "Anchor Properties",
+ButtonProp			: "Button Properties",
+CheckboxProp		: "Checkbox Properties",
+HiddenFieldProp		: "Hidden Field Properties",
+RadioButtonProp		: "Radio Button Properties",
+ImageButtonProp		: "Image Button Properties",
+TextFieldProp		: "Text Field Properties",
+SelectionFieldProp	: "Selection Field Properties",
+TextareaProp		: "Textarea Properties",
+FormProp			: "Form Properties",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "Processing XHTML. Please wait...",
+Done				: "Done",
+PasteWordConfirm	: "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?",
+NotCompatiblePaste	: "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?",
+UnknownToolbarItem	: "Unknown toolbar item \"%1\"",
+UnknownCommand		: "Unknown command name \"%1\"",
+NotImplemented		: "Command not implemented",
+UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Cancel",
+DlgBtnClose			: "Close",
+DlgBtnBrowseServer	: "Browse Server",
+DlgAdvancedTag		: "Advanced",
+DlgOpOther			: "<Other>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Please insert the URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<not set>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Language Direction",
+DlgGenLangDirLtr	: "Left to Right (LTR)",
+DlgGenLangDirRtl	: "Right to Left (RTL)",
+DlgGenLangCode		: "Language Code",
+DlgGenAccessKey		: "Access Key",
+DlgGenName			: "Name",
+DlgGenTabIndex		: "Tab Index",
+DlgGenLongDescr		: "Long Description URL",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "Advisory Title",
+DlgGenContType		: "Advisory Content Type",
+DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenStyle			: "Style",
+
+// Image Dialog
+DlgImgTitle			: "Image Properties",
+DlgImgInfoTab		: "Image Info",
+DlgImgBtnUpload		: "Send it to the Server",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Upload",
+DlgImgAlt			: "Alternative Text",
+DlgImgWidth			: "Width",
+DlgImgHeight		: "Height",
+DlgImgLockRatio		: "Lock Ratio",
+DlgBtnResetSize		: "Reset Size",
+DlgImgBorder		: "Border",
+DlgImgHSpace		: "HSpace",
+DlgImgVSpace		: "VSpace",
+DlgImgAlign			: "Align",
+DlgImgAlignLeft		: "Left",
+DlgImgAlignAbsBottom: "Abs Bottom",
+DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBottom	: "Bottom",
+DlgImgAlignMiddle	: "Middle",
+DlgImgAlignRight	: "Right",
+DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTop		: "Top",
+DlgImgPreview		: "Preview",
+DlgImgAlertUrl		: "Please type the image URL",
+DlgImgLinkTab		: "Link",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Properties",
+DlgFlashChkPlay		: "Auto Play",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Enable Flash Menu",
+DlgFlashScale		: "Scale",
+DlgFlashScaleAll	: "Show all",
+DlgFlashScaleNoBorder	: "No Border",
+DlgFlashScaleFit	: "Exact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Link",
+DlgLnkInfoTab		: "Link Info",
+DlgLnkTargetTab		: "Target",
+
+DlgLnkType			: "Link Type",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
+DlgLnkTypeEMail		: "E-Mail",
+DlgLnkProto			: "Protocol",
+DlgLnkProtoOther	: "<other>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Select an Anchor",
+DlgLnkAnchorByName	: "By Anchor Name",
+DlgLnkAnchorById	: "By Element Id",
+DlgLnkNoAnchors		: "(No anchors available in the document)",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-Mail Address",
+DlgLnkEMailSubject	: "Message Subject",
+DlgLnkEMailBody		: "Message Body",
+DlgLnkUpload		: "Upload",
+DlgLnkBtnUpload		: "Send it to the Server",
+
+DlgLnkTarget		: "Target",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
+DlgLnkTargetBlank	: "New Window (_blank)",
+DlgLnkTargetParent	: "Parent Window (_parent)",
+DlgLnkTargetSelf	: "Same Window (_self)",
+DlgLnkTargetTop		: "Topmost Window (_top)",
+DlgLnkTargetFrameName	: "Target Frame Name",
+DlgLnkPopWinName	: "Popup Window Name",
+DlgLnkPopWinFeat	: "Popup Window Features",
+DlgLnkPopResize		: "Resizable",
+DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopMenu		: "Menu Bar",
+DlgLnkPopScroll		: "Scroll Bars",
+DlgLnkPopStatus		: "Status Bar",
+DlgLnkPopToolbar	: "Toolbar",
+DlgLnkPopFullScrn	: "Full Screen (IE)",
+DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopWidth		: "Width",
+DlgLnkPopHeight		: "Height",
+DlgLnkPopLeft		: "Left Position",
+DlgLnkPopTop		: "Top Position",
+
+DlnLnkMsgNoUrl		: "Please type the link URL",
+DlnLnkMsgNoEMail	: "Please type the e-mail address",
+DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
+
+// Color Dialog
+DlgColorTitle		: "Select Colour",
+DlgColorBtnClear	: "Clear",
+DlgColorHighlight	: "Highlight",
+DlgColorSelected	: "Selected",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Insert a Smiley",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Select Special Character",
+
+// Table Dialog
+DlgTableTitle		: "Table Properties",
+DlgTableRows		: "Rows",
+DlgTableColumns		: "Columns",
+DlgTableBorder		: "Border size",
+DlgTableAlign		: "Alignment",
+DlgTableAlignNotSet	: "<Not set>",
+DlgTableAlignLeft	: "Left",
+DlgTableAlignCenter	: "Centre",
+DlgTableAlignRight	: "Right",
+DlgTableWidth		: "Width",
+DlgTableWidthPx		: "pixels",
+DlgTableWidthPc		: "percent",
+DlgTableHeight		: "Height",
+DlgTableCellSpace	: "Cell spacing",
+DlgTableCellPad		: "Cell padding",
+DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
+
+// Table Cell Dialog
+DlgCellTitle		: "Cell Properties",
+DlgCellWidth		: "Width",
+DlgCellWidthPx		: "pixels",
+DlgCellWidthPc		: "percent",
+DlgCellHeight		: "Height",
+DlgCellWordWrap		: "Word Wrap",
+DlgCellWordWrapNotSet	: "<Not set>",
+DlgCellWordWrapYes	: "Yes",
+DlgCellWordWrapNo	: "No",
+DlgCellHorAlign		: "Horizontal Alignment",
+DlgCellHorAlignNotSet	: "<Not set>",
+DlgCellHorAlignLeft	: "Left",
+DlgCellHorAlignCenter	: "Centre",
+DlgCellHorAlignRight: "Right",
+DlgCellVerAlign		: "Vertical Alignment",
+DlgCellVerAlignNotSet	: "<Not set>",
+DlgCellVerAlignTop	: "Top",
+DlgCellVerAlignMiddle	: "Middle",
+DlgCellVerAlignBottom	: "Bottom",
+DlgCellVerAlignBaseline	: "Baseline",
+DlgCellRowSpan		: "Rows Span",
+DlgCellCollSpan		: "Columns Span",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
+DlgCellBtnSelect	: "Select...",
+
+// Find Dialog
+DlgFindTitle		: "Find",
+DlgFindFindBtn		: "Find",
+DlgFindNotFoundMsg	: "The specified text was not found.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Replace",
+DlgReplaceFindLbl		: "Find what:",
+DlgReplaceReplaceLbl	: "Replace with:",
+DlgReplaceCaseChk		: "Match case",
+DlgReplaceReplaceBtn	: "Replace",
+DlgReplaceReplAllBtn	: "Replace All",
+DlgReplaceWordChk		: "Match whole word",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
+
+PasteAsText		: "Paste as Plain Text",
+PasteFromWord	: "Paste from Word",
+
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
+DlgPasteIgnoreFont		: "Ignore Font Face definitions",
+DlgPasteRemoveStyles	: "Remove Styles definitions",
+DlgPasteCleanBox		: "Clean Up Box",
+
+// Color Picker
+ColorAutomatic	: "Automatic",
+ColorMoreColors	: "More Colours...",
+
+// Document Properties
+DocProps		: "Document Properties",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Anchor Properties",
+DlgAnchorName		: "Anchor Name",
+DlgAnchorErrorName	: "Please type the anchor name",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Not in dictionary",
+DlgSpellChangeTo		: "Change to",
+DlgSpellBtnIgnore		: "Ignore",
+DlgSpellBtnIgnoreAll	: "Ignore All",
+DlgSpellBtnReplace		: "Replace",
+DlgSpellBtnReplaceAll	: "Replace All",
+DlgSpellBtnUndo			: "Undo",
+DlgSpellNoSuggestions	: "- No suggestions -",
+DlgSpellProgress		: "Spell check in progress...",
+DlgSpellNoMispell		: "Spell check complete: No misspellings found",
+DlgSpellNoChanges		: "Spell check complete: No words changed",
+DlgSpellOneChange		: "Spell check complete: One word changed",
+DlgSpellManyChanges		: "Spell check complete: %1 words changed",
+
+IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
+
+// Button Dialog
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Name",
+DlgCheckboxValue	: "Value",
+DlgCheckboxSelected	: "Selected",
+
+// Form Dialog
+DlgFormName		: "Name",
+DlgFormAction	: "Action",
+DlgFormMethod	: "Method",
+
+// Select Field Dialog
+DlgSelectName		: "Name",
+DlgSelectValue		: "Value",
+DlgSelectSize		: "Size",
+DlgSelectLines		: "lines",
+DlgSelectChkMulti	: "Allow multiple selections",
+DlgSelectOpAvail	: "Available Options",
+DlgSelectOpText		: "Text",
+DlgSelectOpValue	: "Value",
+DlgSelectBtnAdd		: "Add",
+DlgSelectBtnModify	: "Modify",
+DlgSelectBtnUp		: "Up",
+DlgSelectBtnDown	: "Down",
+DlgSelectBtnSetValue : "Set as selected value",
+DlgSelectBtnDelete	: "Delete",
+
+// Textarea Dialog
+DlgTextareaName	: "Name",
+DlgTextareaCols	: "Columns",
+DlgTextareaRows	: "Rows",
+
+// Text Field Dialog
+DlgTextName			: "Name",
+DlgTextValue		: "Value",
+DlgTextCharWidth	: "Character Width",
+DlgTextMaxChars		: "Maximum Characters",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Text",
+DlgTextTypePass		: "Password",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Name",
+DlgHiddenValue	: "Value",
+
+// Bulleted List Dialog
+BulletedListProp	: "Bulleted List Properties",
+NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Circle",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "Square",
+DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
+DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
+DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",
+DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",
+DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "General",
+DlgDocBackTab		: "Background",
+DlgDocColorsTab		: "Colours and Margins",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Page Title",
+DlgDocLangDir		: "Language Direction",
+DlgDocLangDirLTR	: "Left to Right (LTR)",
+DlgDocLangDirRTL	: "Right to Left (RTL)",
+DlgDocLangCode		: "Language Code",
+DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
+DlgDocCharSetOther	: "Other Character Set Encoding",
+
+DlgDocDocType		: "Document Type Heading",
+DlgDocDocTypeOther	: "Other Document Type Heading",
+DlgDocIncXHTML		: "Include XHTML Declarations",
+DlgDocBgColor		: "Background Colour",
+DlgDocBgImage		: "Background Image URL",
+DlgDocBgNoScroll	: "Nonscrolling Background",
+DlgDocCText			: "Text",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Visited Link",
+DlgDocCActive		: "Active Link",
+DlgDocMargins		: "Page Margins",
+DlgDocMaTop			: "Top",
+DlgDocMaLeft		: "Left",
+DlgDocMaRight		: "Right",
+DlgDocMaBottom		: "Bottom",
+DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeDescr		: "Document Description",
+DlgDocMeAuthor		: "Author",
+DlgDocMeCopy		: "Copyright",
+DlgDocPreview		: "Preview",
+
+// Templates Dialog
+Templates			: "Templates",
+DlgTemplatesTitle	: "Content Templates",
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
+DlgTemplatesLoading	: "Loading templates list. Please wait...",
+DlgTemplatesNoTpl	: "(No templates defined)",
+DlgTemplatesReplace	: "Replace actual contents",
+
+// About Dialog
+DlgAboutAboutTab	: "About",
+DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "For further information go to"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-uk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-uk.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/en-uk.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: en-uk.js
- * 	English (United Kingdom) language file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Christopher Dawes (fckeditor at dawes.id.au)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English (United Kingdom) language file.
  */
 
 var FCKLang =
@@ -50,7 +53,7 @@
 InsertTable			: "Insert/Edit Table",
 InsertLineLbl		: "Line",
 InsertLine			: "Insert Horizontal Line",
-InsertSpecialCharLbl: "Special Char",
+InsertSpecialCharLbl: "Special Character",
 InsertSpecialChar	: "Insert Special Character",
 InsertSmileyLbl		: "Smiley",
 InsertSmiley		: "Insert Smiley",
@@ -62,7 +65,7 @@
 Subscript			: "Subscript",
 Superscript			: "Superscript",
 LeftJustify			: "Left Justify",
-CenterJustify		: "Center Justify",
+CenterJustify		: "Centre Justify",
 RightJustify		: "Right Justify",
 BlockJustify		: "Block Justify",
 DecreaseIndent		: "Decrease Indent",
@@ -79,13 +82,15 @@
 FontFormat			: "Format",
 Font				: "Font",
 FontSize			: "Size",
-TextColor			: "Text Color",
-BGColor				: "Background Color",
+TextColor			: "Text Colour",
+BGColor				: "Background Colour",
 Source				: "Source",
 Find				: "Find",
 Replace				: "Replace",
-SpellCheck			: "Check Spell",
+SpellCheck			: "Check Spelling",
 UniversalKeyboard	: "Universal Keyboard",
+PageBreakLbl		: "Page Break",
+PageBreak			: "Insert Page Break",
 
 Form			: "Form",
 Checkbox		: "Checkbox",
@@ -97,8 +102,13 @@
 SelectionField	: "Selection Field",
 ImageButton		: "Image Button",
 
+FitWindow		: "Maximize the editor size",
+
 // Context Menu
 EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
 InsertRow			: "Insert Row",
 DeleteRows			: "Delete Rows",
 InsertColumn		: "Insert Column",
@@ -107,6 +117,7 @@
 DeleteCells			: "Delete Cells",
 MergeCells			: "Merge Cells",
 SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
 CellProperties		: "Cell Properties",
 TableProperties		: "Table Properties",
 ImageProperties		: "Image Properties",
@@ -123,7 +134,7 @@
 TextareaProp		: "Textarea Properties",
 FormProp			: "Form Properties",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Processing XHTML. Please wait...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "Unknown command name \"%1\"",
 NotImplemented		: "Command not implemented",
 UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Close",
 DlgBtnBrowseServer	: "Browse Server",
 DlgAdvancedTag		: "Advanced",
-DlgOpOther			: "&lt;Other&gt;",
+DlgOpOther			: "<Other>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Please insert the URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;not set&gt;",
+DlgGenNotSet		: "<not set>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Language Direction",
 DlgGenLangDirLtr	: "Left to Right (LTR)",
@@ -208,15 +221,15 @@
 
 DlgLnkType			: "Link Type",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Anchor in this page",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;other&gt;",
+DlgLnkProtoOther	: "<other>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Select an Anchor",
 DlgLnkAnchorByName	: "By Anchor Name",
 DlgLnkAnchorById	: "By Element Id",
-DlgLnkNoAnchors		: "&lt;No anchors available in the document&gt;",
+DlgLnkNoAnchors		: "(No anchors available in the document)",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Address",
 DlgLnkEMailSubject	: "Message Subject",
 DlgLnkEMailBody		: "Message Body",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "Send it to the Server",
 
 DlgLnkTarget		: "Target",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;popup window&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
 DlgLnkTargetBlank	: "New Window (_blank)",
 DlgLnkTargetParent	: "Parent Window (_parent)",
 DlgLnkTargetSelf	: "Same Window (_self)",
@@ -249,9 +262,10 @@
 DlnLnkMsgNoUrl		: "Please type the link URL",
 DlnLnkMsgNoEMail	: "Please type the e-mail address",
 DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
 
 // Color Dialog
-DlgColorTitle		: "Select Color",
+DlgColorTitle		: "Select Colour",
 DlgColorBtnClear	: "Clear",
 DlgColorHighlight	: "Highlight",
 DlgColorSelected	: "Selected",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Cell spacing",
 DlgTableCellPad		: "Cell padding",
 DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
 
 // Table Cell Dialog
 DlgCellTitle		: "Cell Properties",
@@ -287,24 +302,24 @@
 DlgCellWidthPc		: "percent",
 DlgCellHeight		: "Height",
 DlgCellWordWrap		: "Word Wrap",
-DlgCellWordWrapNotSet	: "&lt;Not set&gt;",
+DlgCellWordWrapNotSet	: "<Not set>",
 DlgCellWordWrapYes	: "Yes",
 DlgCellWordWrapNo	: "No",
 DlgCellHorAlign		: "Horizontal Alignment",
-DlgCellHorAlignNotSet	: "&lt;Not set&gt;",
+DlgCellHorAlignNotSet	: "<Not set>",
 DlgCellHorAlignLeft	: "Left",
 DlgCellHorAlignCenter	: "Centre",
 DlgCellHorAlignRight: "Right",
 DlgCellVerAlign		: "Vertical Alignment",
-DlgCellVerAlignNotSet	: "&lt;Not set&gt;",
+DlgCellVerAlignNotSet	: "<Not set>",
 DlgCellVerAlignTop	: "Top",
 DlgCellVerAlignMiddle	: "Middle",
 DlgCellVerAlignBottom	: "Bottom",
 DlgCellVerAlignBaseline	: "Baseline",
 DlgCellRowSpan		: "Rows Span",
 DlgCellCollSpan		: "Columns Span",
-DlgCellBackColor	: "Background Color",
-DlgCellBorderColor	: "Border Color",
+DlgCellBackColor	: "Background Colour",
+DlgCellBorderColor	: "Border Colour",
 DlgCellBtnSelect	: "Select...",
 
 // Find Dialog
@@ -322,22 +337,21 @@
 DlgReplaceWordChk		: "Match whole word",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Your browser security settings don't permit the editor to automaticaly execute pasting operations. Please use the keyboard for that (Ctrl+V).",
-PasteErrorCut	: "Your browser security settings don't permit the editor to automaticaly execute cutting operations. Please use the keyboard for that (Ctrl+X).",
-PasteErrorCopy	: "Your browser security settings don't permit the editor to automaticaly execute copying operations. Please use the keyboard for that (Ctrl+C).",
+PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
+PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
 
 PasteAsText		: "Paste as Plain Text",
 PasteFromWord	: "Paste from Word",
 
 DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",
 DlgPasteRemoveStyles	: "Remove Styles definitions",
 DlgPasteCleanBox		: "Clean Up Box",
 
-
 // Color Picker
 ColorAutomatic	: "Automatic",
-ColorMoreColors	: "More Colors...",
+ColorMoreColors	: "More Colours...",
 
 // Document Properties
 DocProps		: "Document Properties",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",
-DlgButtonType	: "Type",
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Bulleted List Properties",
 NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Circle",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disc",
 DlgLstTypeSquare	: "Square",
 DlgLstTypeNumbers	: "Numbers (1, 2, 3)",
 DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",
@@ -428,7 +446,7 @@
 // Document Properties Dialog
 DlgDocGeneralTab	: "General",
 DlgDocBackTab		: "Background",
-DlgDocColorsTab		: "Colors and Margins",
+DlgDocColorsTab		: "Colours and Margins",
 DlgDocMetaTab		: "Meta Data",
 
 DlgDocPageTitle		: "Page Title",
@@ -437,12 +455,21 @@
 DlgDocLangDirRTL	: "Right to Left (RTL)",
 DlgDocLangCode		: "Language Code",
 DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
 DlgDocCharSetOther	: "Other Character Set Encoding",
 
 DlgDocDocType		: "Document Type Heading",
 DlgDocDocTypeOther	: "Other Document Type Heading",
 DlgDocIncXHTML		: "Include XHTML Declarations",
-DlgDocBgColor		: "Background Color",
+DlgDocBgColor		: "Background Colour",
 DlgDocBgImage		: "Background Image URL",
 DlgDocBgNoScroll	: "Nonscrolling Background",
 DlgDocCText			: "Text",
@@ -466,11 +493,12 @@
 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",
 
 // About Dialog
 DlgAboutAboutTab	: "About",
 DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
 DlgAboutInfo		: "For further information go to"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/en.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/en.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: en.js
- * 	English language file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * English language file.
  */
 
 var FCKLang =
@@ -49,7 +53,7 @@
 InsertTable			: "Insert/Edit Table",
 InsertLineLbl		: "Line",
 InsertLine			: "Insert Horizontal Line",
-InsertSpecialCharLbl: "Special Char",
+InsertSpecialCharLbl: "Special Character",
 InsertSpecialChar	: "Insert Special Character",
 InsertSmileyLbl		: "Smiley",
 InsertSmiley		: "Insert Smiley",
@@ -83,7 +87,7 @@
 Source				: "Source",
 Find				: "Find",
 Replace				: "Replace",
-SpellCheck			: "Check Spell",
+SpellCheck			: "Check Spelling",
 UniversalKeyboard	: "Universal Keyboard",
 PageBreakLbl		: "Page Break",
 PageBreak			: "Insert Page Break",
@@ -98,8 +102,13 @@
 SelectionField	: "Selection Field",
 ImageButton		: "Image Button",
 
+FitWindow		: "Maximize the editor size",
+
 // Context Menu
 EditLink			: "Edit Link",
+CellCM				: "Cell",
+RowCM				: "Row",
+ColumnCM			: "Column",
 InsertRow			: "Insert Row",
 DeleteRows			: "Delete Rows",
 InsertColumn		: "Insert Column",
@@ -108,6 +117,7 @@
 DeleteCells			: "Delete Cells",
 MergeCells			: "Merge Cells",
 SplitCell			: "Split Cell",
+TableDelete			: "Delete Table",
 CellProperties		: "Cell Properties",
 TableProperties		: "Table Properties",
 ImageProperties		: "Image Properties",
@@ -124,7 +134,7 @@
 TextareaProp		: "Textarea Properties",
 FormProp			: "Form Properties",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Processing XHTML. Please wait...",
@@ -135,7 +145,9 @@
 UnknownCommand		: "Unknown command name \"%1\"",
 NotImplemented		: "Command not implemented",
 UnknownToolbarSet	: "Toolbar set \"%1\" doesn't exist",
-NoActiveX			: "You 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.",
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -143,12 +155,12 @@
 DlgBtnClose			: "Close",
 DlgBtnBrowseServer	: "Browse Server",
 DlgAdvancedTag		: "Advanced",
-DlgOpOther			: "&lt;Other&gt;",
+DlgOpOther			: "<Other>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Please insert the URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;not set&gt;",
+DlgGenNotSet		: "<not set>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Language Direction",
 DlgGenLangDirLtr	: "Left to Right (LTR)",
@@ -209,15 +221,15 @@
 
 DlgLnkType			: "Link Type",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Anchor in this page",
+DlgLnkTypeAnchor	: "Link to anchor in the text",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;other&gt;",
+DlgLnkProtoOther	: "<other>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Select an Anchor",
 DlgLnkAnchorByName	: "By Anchor Name",
 DlgLnkAnchorById	: "By Element Id",
-DlgLnkNoAnchors		: "&lt;No anchors available in the document&gt;",
+DlgLnkNoAnchors		: "(No anchors available in the document)",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Address",
 DlgLnkEMailSubject	: "Message Subject",
 DlgLnkEMailBody		: "Message Body",
@@ -225,8 +237,8 @@
 DlgLnkBtnUpload		: "Send it to the Server",
 
 DlgLnkTarget		: "Target",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;popup window&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
 DlgLnkTargetBlank	: "New Window (_blank)",
 DlgLnkTargetParent	: "Parent Window (_parent)",
 DlgLnkTargetSelf	: "Same Window (_self)",
@@ -250,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Please type the link URL",
 DlnLnkMsgNoEMail	: "Please type the e-mail address",
 DlnLnkMsgNoAnchor	: "Please select an anchor",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",
 
 // Color Dialog
 DlgColorTitle		: "Select Color",
@@ -280,6 +293,7 @@
 DlgTableCellSpace	: "Cell spacing",
 DlgTableCellPad		: "Cell padding",
 DlgTableCaption		: "Caption",
+DlgTableSummary		: "Summary",
 
 // Table Cell Dialog
 DlgCellTitle		: "Cell Properties",
@@ -288,16 +302,16 @@
 DlgCellWidthPc		: "percent",
 DlgCellHeight		: "Height",
 DlgCellWordWrap		: "Word Wrap",
-DlgCellWordWrapNotSet	: "&lt;Not set&gt;",
+DlgCellWordWrapNotSet	: "<Not set>",
 DlgCellWordWrapYes	: "Yes",
 DlgCellWordWrapNo	: "No",
 DlgCellHorAlign		: "Horizontal Alignment",
-DlgCellHorAlignNotSet	: "&lt;Not set&gt;",
+DlgCellHorAlignNotSet	: "<Not set>",
 DlgCellHorAlignLeft	: "Left",
 DlgCellHorAlignCenter	: "Center",
 DlgCellHorAlignRight: "Right",
 DlgCellVerAlign		: "Vertical Alignment",
-DlgCellVerAlignNotSet	: "&lt;Not set&gt;",
+DlgCellVerAlignNotSet	: "<Not set>",
 DlgCellVerAlignTop	: "Top",
 DlgCellVerAlignMiddle	: "Middle",
 DlgCellVerAlignBottom	: "Bottom",
@@ -323,19 +337,18 @@
 DlgReplaceWordChk		: "Match whole word",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Your browser security settings don't permit the editor to automatically execute pasting operations. Please use the keyboard for that (Ctrl+V).",
 PasteErrorCut	: "Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).",
 PasteErrorCopy	: "Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).",
 
 PasteAsText		: "Paste as Plain Text",
 PasteFromWord	: "Paste from Word",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<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",
 DlgPasteCleanBox		: "Clean Up Box",
 
-
 // Color Picker
 ColorAutomatic	: "Automatic",
 ColorMoreColors	: "More Colors...",
@@ -366,8 +379,11 @@
 IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",
-DlgButtonType	: "Type",
+DlgButtonText		: "Text (Value)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",
@@ -416,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Bulleted List Properties",
 NumberedListProp	: "Numbered List Properties",
+DlgLstStart			: "Start",
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Circle",
 DlgLstTypeDisc		: "Disc",
@@ -438,6 +455,15 @@
 DlgDocLangDirRTL	: "Right to Left (RTL)",
 DlgDocLangCode		: "Language Code",
 DlgDocCharSet		: "Character Set Encoding",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
 DlgDocCharSetOther	: "Other Character Set Encoding",
 
 DlgDocDocType		: "Document Type Heading",
@@ -464,14 +490,15 @@
 // 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",
 
 // About Dialog
 DlgAboutAboutTab	: "About",
 DlgAboutBrowserInfoTab	: "Browser Info",
+DlgAboutLicenseTab	: "License",
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
 DlgAboutInfo		: "For further information go to"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/eo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/eo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/eo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: eo.js
- * 	Esperanto language file.
- * 
- * File Authors:
- * 		Tim Morley (timsk at openoffice.org)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Esperanto language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "AnstataÅ­igi",
 SpellCheck			: "Literumada Kontrolilo",
 UniversalKeyboard	: "Universala Klavaro",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Formularo",
 Checkbox		: "Markobutono",
@@ -96,8 +102,13 @@
 SelectionField	: "Elekta Kampo",
 ImageButton		: "Bildbutono",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Modifier Ligilon",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Enmeti Linion",
 DeleteRows			: "Forigi Liniojn",
 InsertColumn		: "Enmeti Kolumnon",
@@ -106,6 +117,7 @@
 DeleteCells			: "Forigi Ĉelojn",
 MergeCells			: "Kunfandi Ĉelojn",
 SplitCell			: "Dividi Ĉelojn",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Atributoj de Ĉelo",
 TableProperties		: "Atributoj de Tabelo",
 ImageProperties		: "Atributoj de Bildo",
@@ -122,7 +134,7 @@
 TextareaProp		: "Atributoj de Teksta Areo",
 FormProp			: "Formularaj Atributoj",
 
-FontFormats			: "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+FontFormats			: "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Traktado de XHTML. Bonvolu pacienci...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Komandonomo nekonata \"%1\"",
 NotImplemented		: "Komando ne ankoraÅ­ realigita",
 UnknownToolbarSet	: "La ilobreto \"%1\" ne ekzistas",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "Akcepti",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Fermi",
 DlgBtnBrowseServer	: "Foliumi en la Servilo",
 DlgAdvancedTag		: "Speciala",
-DlgOpOther			: "&lt;Alia&gt;",
+DlgOpOther			: "<Alia>",
 DlgInfoTab			: "Info",	//MISSING
 DlgAlertUrl			: "Please insert the URL",	//MISSING
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;DefaÅ­lta&gt;",
+DlgGenNotSet		: "<DefaÅ­lta>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Skribdirekto",
 DlgGenLangDirLtr	: "De maldekstro dekstren (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Ankri en tiu ĉi paĝo",
 DlgLnkTypeEMail		: "Retpoŝto",
 DlgLnkProto			: "Protokolo",
-DlgLnkProtoOther	: "&lt;alia&gt;",
+DlgLnkProtoOther	: "<alia>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Elekti Ankron",
 DlgLnkAnchorByName	: "Per Ankronomo",
 DlgLnkAnchorById	: "Per Elementidentigilo",
-DlgLnkNoAnchors		: "&lt;Ne disponeblas ankroj en la dokumento&gt;",
+DlgLnkNoAnchors		: "<Ne disponeblas ankroj en la dokumento>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Retadreso",
 DlgLnkEMailSubject	: "Temlinio",
 DlgLnkEMailBody		: "Mesaĝa korpo",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Sendi al Servilo",
 
 DlgLnkTarget		: "Celo",
-DlgLnkTargetFrame	: "&lt;kadro&gt;",
-DlgLnkTargetPopup	: "&lt;ŝprucfenestro&gt;",
+DlgLnkTargetFrame	: "<kadro>",
+DlgLnkTargetPopup	: "<ŝprucfenestro>",
 DlgLnkTargetBlank	: "Nova Fenestro (_blank)",
 DlgLnkTargetParent	: "Gepatra Fenestro (_parent)",
 DlgLnkTargetSelf	: "Sama Fenestro (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Bonvolu entajpi la URL-on",
 DlnLnkMsgNoEMail	: "Bonvolu entajpi la retadreson",
 DlnLnkMsgNoAnchor	: "Bonvolu elekti ankron",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Elekti",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Interspacigo de Ĉeloj",
 DlgTableCellPad		: "Ĉirkaŭenhava Plenigado",
 DlgTableCaption		: "Titolo",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Atributoj de Celo",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Tuta Vorto",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras intergluajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-V).",
 PasteErrorCut	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).",
 PasteErrorCopy	: "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).",
 
 PasteAsText		: "Interglui kiel Tekston",
 PasteFromWord	: "Interglui el Word",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
 DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
 DlgPasteCleanBox		: "Clean Up Box",	//MISSING
 
-
 // Color Picker
 ColorAutomatic	: "AÅ­tomata",
 ColorMoreColors	: "Pli da Koloroj...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Literumada Kontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?",
 
 // Button Dialog
-DlgButtonText	: "Teksto (Valoro)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Teksto (Valoro)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nomo",
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Atributoj de Bula Listo",
 NumberedListProp	: "Atributoj de Numera Listo",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Cirklo",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "De dekstro maldekstren (LTR)",
 DlgDocLangCode		: "Lingvokodo",
 DlgDocCharSet		: "Signara Kodo",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Alia Signara Kodo",
 
 DlgDocDocType		: "Dokumenta Tipo",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Templates",	//MISSING
 DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",	//MISSING
 DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
 DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Pri",
 DlgAboutBrowserInfoTab	: "Informoj pri TTT-legilo",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "versio",
-DlgAboutLicense		: "Disdonata laÅ­ la GNU Lesser General Public License",
 DlgAboutInfo		: "Por pli da informoj, vizitu"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/es.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/es.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/es.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: es.js
- * 	Spanish language file.
- * 
- * File Authors:
- * 		Gabriel Schillaci (internetbug at users.sourceforge.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Spanish language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Reemplazar",
 SpellCheck			: "Ortografía",
 UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de Página",
+PageBreak			: "Insertar Salto de Página",
 
 Form			: "Formulario",
 Checkbox		: "Casilla de Verificación",
@@ -96,8 +102,13 @@
 SelectionField	: "Campo de Selección",
 ImageButton		: "Botón Imagen",
 
+FitWindow		: "Maximizar el tamaño del editor",
+
 // Context Menu
 EditLink			: "Editar Vínculo",
+CellCM				: "Celda",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
 InsertRow			: "Insertar Fila",
 DeleteRows			: "Eliminar Filas",
 InsertColumn		: "Insertar Columna",
@@ -106,6 +117,7 @@
 DeleteCells			: "Eliminar Celdas",
 MergeCells			: "Combinar Celdas",
 SplitCell			: "Dividir Celda",
+TableDelete			: "Eliminar Tabla",
 CellProperties		: "Propiedades de Celda",
 TableProperties		: "Propiedades de Tabla",
 ImageProperties		: "Propiedades de Imagen",
@@ -122,7 +134,7 @@
 TextareaProp		: "Propiedades de Area de Texto",
 FormProp			: "Propiedades de Formulario",
 
-FontFormats			: "Normal;Formateado;Direccion;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6",
+FontFormats			: "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Procesando XHTML. Por favor, espere...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nombre de comando desconocido \"%1\"",
 NotImplemented		: "Comando no implementado",
 UnknownToolbarSet	: "Nombre de barra \"%1\" no definido",
-NoActiveX			: "You 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
+NoActiveX			: "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas características del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.",
+BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
+DialogBlocked		: "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Cerrar",
 DlgBtnBrowseServer	: "Ver Servidor",
 DlgAdvancedTag		: "Avanzado",
-DlgOpOther			: "&lt;Otro&gt;",
+DlgOpOther			: "<Otro>",
 DlgInfoTab			: "Información",
 DlgAlertUrl			: "Inserte el URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;No definido&gt;",
+DlgGenNotSet		: "<No definido>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Orientación de idioma",
 DlgGenLangDirLtr	: "Izquierda a Derecha (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Referencia en esta página",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocolo",
-DlgLnkProtoOther	: "&lt;otro&gt;",
+DlgLnkProtoOther	: "<otro>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Seleccionar una referencia",
 DlgLnkAnchorByName	: "Por Nombre de Referencia",
 DlgLnkAnchorById	: "Por ID de elemento",
-DlgLnkNoAnchors		: "&lt;No hay referencias disponibles en el documento&gt;",
+DlgLnkNoAnchors		: "<No hay referencias disponibles en el documento>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Dirección de E-Mail",
 DlgLnkEMailSubject	: "Título del Mensaje",
 DlgLnkEMailBody		: "Cuerpo del Mensaje",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Enviar al Servidor",
 
 DlgLnkTarget		: "Destino",
-DlgLnkTargetFrame	: "&lt;marco&gt;",
-DlgLnkTargetPopup	: "&lt;ventana emergente&gt;",
+DlgLnkTargetFrame	: "<marco>",
+DlgLnkTargetPopup	: "<ventana emergente>",
 DlgLnkTargetBlank	: "Nueva Ventana(_blank)",
 DlgLnkTargetParent	: "Ventana Padre (_parent)",
 DlgLnkTargetSelf	: "Misma Ventana (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Por favor tipee el vínculo URL",
 DlnLnkMsgNoEMail	: "Por favor tipee la dirección de e-mail",
 DlnLnkMsgNoAnchor	: "Por favor seleccione una referencia",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Seleccionar Color",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Esp. e/celdas",
 DlgTableCellPad		: "Esp. interior",
 DlgTableCaption		: "Título",
+DlgTableSummary		: "Síntesis",
 
 // Table Cell Dialog
 DlgCellTitle		: "Propiedades de Celda",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Coincidir toda la palabra",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de pegado. Por favor use el teclado (Ctrl+V).",
 PasteErrorCut	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).",
 PasteErrorCopy	: "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Pegar desde Word",
 
 DlgPasteMsg2	: "Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorar definiciones de fuentes",
 DlgPasteRemoveStyles	: "Remover definiciones de estilo",
-DlgPasteCleanBox		: "Clean Up Box",
+DlgPasteCleanBox		: "Borrar el contenido del cuadro",
 
-
 // Color Picker
 ColorAutomatic	: "Automático",
 ColorMoreColors	: "Más Colores...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Módulo de Control de Ortografía no instalado. ¿Desea descargarlo ahora?",
 
 // Button Dialog
-DlgButtonText	: "Texto (Valor)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nombre",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Propiedades de Viñetas",
 NumberedListProp	: "Propiedades de Numeraciones",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Círculo",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disco",
 DlgLstTypeSquare	: "Cuadrado",
 DlgLstTypeNumbers	: "Números (1, 2, 3)",
 DlgLstTypeLCase		: "letras en minúsculas (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Der. a Izquierda (RTL)",
 DlgDocLangCode		: "Código de Idioma",
 DlgDocCharSet		: "Codif. de Conjunto de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Otra Codificación",
 
 DlgDocDocType		: "Encabezado de Tipo de Documento",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):",
 DlgTemplatesLoading	: "Cargando lista de Plantillas. Por favor, aguarde...",
 DlgTemplatesNoTpl	: "(No hay plantillas definidas)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Acerca de",
 DlgAboutBrowserInfoTab	: "Información de Navegador",
+DlgAboutLicenseTab	: "Licencia",
 DlgAboutVersion		: "versión",
-DlgAboutLicense		: "Licenciado bajo los términos de GNU Lesser General Public License",
 DlgAboutInfo		: "Para mayor información por favor dirigirse a"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/et.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/et.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/et.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: et.js
- * 	Estonian language file.
- * 
- * File Authors:
- * 		Kristjan Kivikangur (kristjan at ttrk.ee)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Estonian language file.
  */
 
 var FCKLang =
@@ -40,24 +44,24 @@
 InsertLinkLbl		: "Link",
 InsertLink			: "Sisesta/Muuda link",
 RemoveLink			: "Eemalda link",
-Anchor				: "Insert/Edit Anchor",	//MISSING
+Anchor				: "Sisesta/Muuda ankur",
 InsertImageLbl		: "Pilt",
 InsertImage			: "Sisesta/Muuda pilt",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sisesta/Muuda flash",
 InsertTableLbl		: "Tabel",
 InsertTable			: "Sisesta/Muuda tabel",
 InsertLineLbl		: "Joon",
 InsertLine			: "Sisesta horisontaaljoon",
 InsertSpecialCharLbl: "Erimärgid",
 InsertSpecialChar	: "Sisesta erimärk",
-InsertSmileyLbl		: "Smiley",
-InsertSmiley		: "Sisesta Smiley",
-About				: "FCKeditor kohta",
-Bold				: "Paks",
-Italic				: "Kursiiv",
-Underline			: "Allajoonitud",
-StrikeThrough		: "Läbijoonitud",
+InsertSmileyLbl		: "Emotikon",
+InsertSmiley		: "Sisesta emotikon",
+About				: "FCKeditor teave",
+Bold				: "Rasvane kiri",
+Italic				: "Kursiiv kiri",
+Underline			: "Allajoonitud kiri",
+StrikeThrough		: "Läbijoonitud kiri",
 Subscript			: "Allindeks",
 Superscript			: "Ãœlaindeks",
 LeftJustify			: "Vasakjoondus",
@@ -67,37 +71,44 @@
 DecreaseIndent		: "Vähenda taanet",
 IncreaseIndent		: "Suurenda taanet",
 Undo				: "Võta tagasi",
-Redo				: "Tee uuesti",
+Redo				: "Korda toimingut",
 NumberedListLbl		: "Nummerdatud loetelu",
 NumberedList		: "Sisesta/Eemalda nummerdatud loetelu",
-BulletedListLbl		: "Täpitud loetelu",
-BulletedList		: "Sisesta/Eemalda täpitud loetelu",
-ShowTableBorders	: "Nöita tabeli jooni",
+BulletedListLbl		: "Punktiseeritud loetelu",
+BulletedList		: "Sisesta/Eemalda punktiseeritud loetelu",
+ShowTableBorders	: "Näita tabeli jooni",
 ShowDetails			: "Näita üksikasju",
 Style				: "Laad",
 FontFormat			: "Vorming",
-Font				: "Font",
+Font				: "Kiri",
 FontSize			: "Suurus",
 TextColor			: "Teksti värv",
 BGColor				: "Tausta värv",
 Source				: "Lähtekood",
 Find				: "Otsi",
 Replace				: "Asenda",
-SpellCheck			: "Check Spell",	//MISSING
-UniversalKeyboard	: "Universal Keyboard",	//MISSING
+SpellCheck			: "Kontrolli õigekirja",
+UniversalKeyboard	: "Universaalne klaviatuur",
+PageBreakLbl		: "Lehepiir",
+PageBreak			: "Sisesta lehevahetus koht",
 
-Form			: "Form",	//MISSING
-Checkbox		: "Checkbox",	//MISSING
-RadioButton		: "Radio Button",	//MISSING
-TextField		: "Text Field",	//MISSING
-Textarea		: "Textarea",	//MISSING
-HiddenField		: "Hidden Field",	//MISSING
-Button			: "Button",	//MISSING
-SelectionField	: "Selection Field",	//MISSING
-ImageButton		: "Image Button",	//MISSING
+Form			: "Vorm",
+Checkbox		: "Märkeruut",
+RadioButton		: "Raadionupp",
+TextField		: "Tekstilahter",
+Textarea		: "Tekstiala",
+HiddenField		: "Varjatud lahter",
+Button			: "Nupp",
+SelectionField	: "Valiklahter",
+ImageButton		: "Piltnupp",
 
+FitWindow		: "Maksimeeri redaktori mõõtmed",
+
 // Context Menu
 EditLink			: "Muuda linki",
+CellCM				: "Lahter",
+RowCM				: "Rida",
+ColumnCM			: "Veerg",
 InsertRow			: "Lisa rida",
 DeleteRows			: "Eemalda ridu",
 InsertColumn		: "Lisa veerg",
@@ -106,47 +117,50 @@
 DeleteCells			: "Eemalda lahtrid",
 MergeCells			: "Ãœhenda lahtrid",
 SplitCell			: "Lahuta lahtrid",
+TableDelete			: "Kustuta tabel",
 CellProperties		: "Lahtri atribuudid",
 TableProperties		: "Tabeli atribuudid",
 ImageProperties		: "Pildi  atribuudid",
-FlashProperties		: "Flash Properties",	//MISSING
+FlashProperties		: "Flash omadused",
 
-AnchorProp			: "Anchor Properties",	//MISSING
-ButtonProp			: "Button Properties",	//MISSING
-CheckboxProp		: "Checkbox Properties",	//MISSING
-HiddenFieldProp		: "Hidden Field Properties",	//MISSING
-RadioButtonProp		: "Radio Button Properties",	//MISSING
-ImageButtonProp		: "Image Button Properties",	//MISSING
-TextFieldProp		: "Text Field Properties",	//MISSING
-SelectionFieldProp	: "Selection Field Properties",	//MISSING
-TextareaProp		: "Textarea Properties",	//MISSING
-FormProp			: "Form Properties",	//MISSING
+AnchorProp			: "Ankru omadused",
+ButtonProp			: "Nupu omadused",
+CheckboxProp		: "Märkeruudu omadused",
+HiddenFieldProp		: "Varjatud lahtri omadused",
+RadioButtonProp		: "Raadionupu omadused",
+ImageButtonProp		: "Piltnupu omadused",
+TextFieldProp		: "Tekstilahtri omadused",
+SelectionFieldProp	: "Valiklahtri omadused",
+TextareaProp		: "Tekstiala omadused",
+FormProp			: "Vormi omadused",
 
-FontFormats			: "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6",
+FontFormats			: "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Töötlen XHTML. Palun oota...",
 Done				: "Tehtud",
 PasteWordConfirm	: "Tekst, mida soovid lisada paistab pärinevat Wordist. Kas soovid seda enne kleepimist puhastada?",
-NotCompatiblePaste	: "See käsk on saadaval ainult Internet Explorer versioon 5.5 või rohkem puhul. Kas soovid kleepida ilma puhastamata?",
+NotCompatiblePaste	: "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?",
 UnknownToolbarItem	: "Tundmatu tööriistariba üksus \"%1\"",
 UnknownCommand		: "Tundmatu käsunimi \"%1\"",
 NotImplemented		: "Käsku ei täidetud",
 UnknownToolbarSet	: "Tööriistariba \"%1\" ei eksisteeri",
-NoActiveX			: "You 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
+NoActiveX			: "Sinu interneti sirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutus võimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma sirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.",
+BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.",
+DialogBlocked		: "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.",
 
 // Dialogs
 DlgBtnOK			: "OK",
 DlgBtnCancel		: "Loobu",
-DlgBtnClose			: "Sule",
-DlgBtnBrowseServer	: "Browse Server",	//MISSING
+DlgBtnClose			: "Sulge",
+DlgBtnBrowseServer	: "Sirvi serverit",
 DlgAdvancedTag		: "Täpsemalt",
-DlgOpOther			: "&lt;Other&gt;",	//MISSING
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgOpOther			: "<Teine>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Palun sisesta URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;määramata&gt;",
+DlgGenNotSet		: "<määramata>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Keele suund",
 DlgGenLangDirLtr	: "Vasakult paremale (LTR)",
@@ -154,18 +168,18 @@
 DlgGenLangCode		: "Keele kood",
 DlgGenAccessKey		: "Juurdepääsu võti",
 DlgGenName			: "Nimi",
-DlgGenTabIndex		: "Tab Index",
+DlgGenTabIndex		: "Tab indeks",
 DlgGenLongDescr		: "Pikk kirjeldus URL",
 DlgGenClass			: "Stiilistiku klassid",
-DlgGenTitle			: "Advisory Title",
-DlgGenContType		: "Advisory Content Type",
-DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenTitle			: "Juhendav tiitel",
+DlgGenContType		: "Juhendava sisu tüüp",
+DlgGenLinkCharset	: "Lingitud ressurssi märgistik",
 DlgGenStyle			: "Laad",
 
 // Image Dialog
 DlgImgTitle			: "Pildi atribuudid",
 DlgImgInfoTab		: "Pildi info",
-DlgImgBtnUpload		: "Saada serverile",
+DlgImgBtnUpload		: "Saada serverissee",
 DlgImgURL			: "URL",
 DlgImgUpload		: "Lae üles",
 DlgImgAlt			: "Alternatiivne tekst",
@@ -174,8 +188,8 @@
 DlgImgLockRatio		: "Lukusta kuvasuhe",
 DlgBtnResetSize		: "Lähtesta suurus",
 DlgImgBorder		: "Joon",
-DlgImgHSpace		: "HSpace",
-DlgImgVSpace		: "VSpace",
+DlgImgHSpace		: "H. vaheruum",
+DlgImgVSpace		: "V. vaheruum",
 DlgImgAlign			: "Joondus",
 DlgImgAlignLeft		: "Vasak",
 DlgImgAlignAbsBottom: "Abs alla",
@@ -184,21 +198,21 @@
 DlgImgAlignBottom	: "Alla",
 DlgImgAlignMiddle	: "Keskele",
 DlgImgAlignRight	: "Paremale",
-DlgImgAlignTextTop	: "Teksti üles",
+DlgImgAlignTextTop	: "Tekstit üles",
 DlgImgAlignTop		: "Ãœles",
 DlgImgPreview		: "Eelvaade",
 DlgImgAlertUrl		: "Palun kirjuta pildi URL",
-DlgImgLinkTab		: "Link",	//MISSING
+DlgImgLinkTab		: "Link",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "Flash omadused",
+DlgFlashChkPlay		: "Automaatne start ",
+DlgFlashChkLoop		: "Korduv",
+DlgFlashChkMenu		: "Võimalda flash menüü",
+DlgFlashScale		: "Mastaap",
+DlgFlashScaleAll	: "Näita kõike",
+DlgFlashScaleNoBorder	: "Äärist ei ole",
+DlgFlashScaleFit	: "Täpne sobivus",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Link",
@@ -208,28 +222,28 @@
 DlgLnkType			: "Lingi tüüp",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Ankur sellel lehel",
-DlgLnkTypeEMail		: "E-Post",
+DlgLnkTypeEMail		: "E-post",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;muu&gt;",
+DlgLnkProtoOther	: "<muu>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Vali ankur",
 DlgLnkAnchorByName	: "Ankru nime järgi",
-DlgLnkAnchorById	: "Elemendi Id järgi",
-DlgLnkNoAnchors		: "&lt;Selles dokumendis ei ole ankruid&gt;",
-DlgLnkEMail			: "E-Posti aadress",
+DlgLnkAnchorById	: "Elemendi id järgi",
+DlgLnkNoAnchors		: "<Selles dokumendis ei ole ankruid>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-posti aadress",
 DlgLnkEMailSubject	: "Sõnumi teema",
 DlgLnkEMailBody		: "Sõnumi tekst",
 DlgLnkUpload		: "Lae üles",
-DlgLnkBtnUpload		: "Saada serverile",
+DlgLnkBtnUpload		: "Saada serverisse",
 
 DlgLnkTarget		: "Sihtkoht",
-DlgLnkTargetFrame	: "&lt;raam&gt;",
-DlgLnkTargetPopup	: "&lt;hüpikaken&gt;",
+DlgLnkTargetFrame	: "<raam>",
+DlgLnkTargetPopup	: "<hüpikaken>",
 DlgLnkTargetBlank	: "Uus aken (_blank)",
 DlgLnkTargetParent	: "Vanem aken (_parent)",
 DlgLnkTargetSelf	: "Sama aken (_self)",
 DlgLnkTargetTop		: "Pealmine aken (_top)",
-DlgLnkTargetFrameName	: "Target Frame Name",	//MISSING
+DlgLnkTargetFrameName	: "Sihtmärk raami nimi",
 DlgLnkPopWinName	: "Hüpikakna nimi",
 DlgLnkPopWinFeat	: "Hüpikakna omadused",
 DlgLnkPopResize		: "Suurendatav",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Palun kirjuta lingi URL",
 DlnLnkMsgNoEMail	: "Palun kirjuta E-Posti aadress",
 DlnLnkMsgNoAnchor	: "Palun vali ankur",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Vali värv",
@@ -256,7 +271,7 @@
 DlgColorSelected	: "Valitud",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Sisesta Smiley",
+DlgSmileyTitle		: "Sisesta emotikon",
 
 // Special Character Dialog
 DlgSpecialCharTitle	: "Vali erimärk",
@@ -277,7 +292,8 @@
 DlgTableHeight		: "Kõrgus",
 DlgTableCellSpace	: "Lahtri vahe",
 DlgTableCellPad		: "Lahtri täidis",
-DlgTableCaption		: "Seletiitel",
+DlgTableCaption		: "Tabeli tiitel",
+DlgTableSummary		: "Kokkuvõte",
 
 // Table Cell Dialog
 DlgCellTitle		: "Lahtri atribuudid",
@@ -285,7 +301,7 @@
 DlgCellWidthPx		: "pikslit",
 DlgCellWidthPc		: "protsenti",
 DlgCellHeight		: "Kõrgus",
-DlgCellWordWrap		: "Murra ridu",
+DlgCellWordWrap		: "Sõna ülekanne",
 DlgCellWordWrapNotSet	: "<Määramata>",
 DlgCellWordWrapYes	: "Jah",
 DlgCellWordWrapNo	: "Ei",
@@ -315,161 +331,174 @@
 DlgReplaceTitle			: "Asenda",
 DlgReplaceFindLbl		: "Leia mida:",
 DlgReplaceReplaceLbl	: "Asenda millega:",
-DlgReplaceCaseChk		: "Erista suurtähti",
+DlgReplaceCaseChk		: "Erista suur- ja väiketähti",
 DlgReplaceReplaceBtn	: "Asenda",
 DlgReplaceReplAllBtn	: "Asenda kõik",
-DlgReplaceWordChk		: "Otsi terveid sõnu",
+DlgReplaceWordChk		: "Otsi terviklike sõnu",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Sinu brauseri turvaseaded ei luba redaktoril automaatselt kleepida. Palun kasutage selleks klaviatuuri (Ctrl+V).",
-PasteErrorCut	: "Sinu brauseri turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri (Ctrl+X).",
-PasteErrorCopy	: "Sinu brauseri turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri (Ctrl+C).",
+PasteErrorCut	: "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).",
+PasteErrorCopy	: "Sinu interneti sirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).",
 
 PasteAsText		: "Kleebi tavalise tekstina",
 PasteFromWord	: "Kleebi Wordist",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignoreeri kirja definitsioone",
+DlgPasteRemoveStyles	: "Eemalda stiilide definitsioonid",
+DlgPasteCleanBox		: "Puhasta ära kast",
 
-
 // Color Picker
 ColorAutomatic	: "Automaatne",
 ColorMoreColors	: "Rohkem värve...",
 
 // Document Properties
-DocProps		: "Document Properties",	//MISSING
+DocProps		: "Dokumendi omadused",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Anchor Properties",	//MISSING
-DlgAnchorName		: "Anchor Name",	//MISSING
-DlgAnchorErrorName	: "Please type the anchor name",	//MISSING
+DlgAnchorTitle		: "Ankru omadused",
+DlgAnchorName		: "Ankru nimi",
+DlgAnchorErrorName	: "Palun sisest ankru nimi",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Not in dictionary",	//MISSING
-DlgSpellChangeTo		: "Change to",	//MISSING
-DlgSpellBtnIgnore		: "Ignore",	//MISSING
-DlgSpellBtnIgnoreAll	: "Ignore All",	//MISSING
-DlgSpellBtnReplace		: "Replace",	//MISSING
-DlgSpellBtnReplaceAll	: "Replace All",	//MISSING
-DlgSpellBtnUndo			: "Undo",	//MISSING
-DlgSpellNoSuggestions	: "- No suggestions -",	//MISSING
-DlgSpellProgress		: "Spell check in progress...",	//MISSING
-DlgSpellNoMispell		: "Spell check complete: No misspellings found",	//MISSING
-DlgSpellNoChanges		: "Spell check complete: No words changed",	//MISSING
-DlgSpellOneChange		: "Spell check complete: One word changed",	//MISSING
-DlgSpellManyChanges		: "Spell check complete: %1 words changed",	//MISSING
+DlgSpellNotInDic		: "Puudub sõnastikust",
+DlgSpellChangeTo		: "Muuda",
+DlgSpellBtnIgnore		: "Ignoreeri",
+DlgSpellBtnIgnoreAll	: "Ignoreeri kõiki",
+DlgSpellBtnReplace		: "Asenda",
+DlgSpellBtnReplaceAll	: "Asenda kõik",
+DlgSpellBtnUndo			: "Võta tagasi",
+DlgSpellNoSuggestions	: "- Soovitused puuduvad -",
+DlgSpellProgress		: "Toimub õigekirja kontroll...",
+DlgSpellNoMispell		: "Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud",
+DlgSpellNoChanges		: "Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud",
+DlgSpellOneChange		: "Õigekirja kontroll sooritatud: üks sõna muudeti",
+DlgSpellManyChanges		: "Õigekirja kontroll sooritatud: %1 sõna muudetud",
 
-IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
+IeSpellDownload			: "Õigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",	//MISSING
-DlgButtonType	: "Type",	//MISSING
+DlgButtonText		: "Tekst (väärtus)",
+DlgButtonType		: "Tüüp",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
-DlgCheckboxName		: "Name",	//MISSING
-DlgCheckboxValue	: "Value",	//MISSING
-DlgCheckboxSelected	: "Selected",	//MISSING
+DlgCheckboxName		: "Nimi",
+DlgCheckboxValue	: "Väärtus",
+DlgCheckboxSelected	: "Valitud",
 
 // Form Dialog
-DlgFormName		: "Name",	//MISSING
-DlgFormAction	: "Action",	//MISSING
-DlgFormMethod	: "Method",	//MISSING
+DlgFormName		: "Nimi",
+DlgFormAction	: "Toiming",
+DlgFormMethod	: "Meetod",
 
 // Select Field Dialog
-DlgSelectName		: "Name",	//MISSING
-DlgSelectValue		: "Value",	//MISSING
-DlgSelectSize		: "Size",	//MISSING
-DlgSelectLines		: "lines",	//MISSING
-DlgSelectChkMulti	: "Allow multiple selections",	//MISSING
-DlgSelectOpAvail	: "Available Options",	//MISSING
-DlgSelectOpText		: "Text",	//MISSING
-DlgSelectOpValue	: "Value",	//MISSING
-DlgSelectBtnAdd		: "Add",	//MISSING
-DlgSelectBtnModify	: "Modify",	//MISSING
-DlgSelectBtnUp		: "Up",	//MISSING
-DlgSelectBtnDown	: "Down",	//MISSING
-DlgSelectBtnSetValue : "Set as selected value",	//MISSING
-DlgSelectBtnDelete	: "Delete",	//MISSING
+DlgSelectName		: "Nimi",
+DlgSelectValue		: "Väärtus",
+DlgSelectSize		: "Suurus",
+DlgSelectLines		: "ridu",
+DlgSelectChkMulti	: "Võimalda mitu valikut",
+DlgSelectOpAvail	: "Võimalikud valikud",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Väärtus",
+DlgSelectBtnAdd		: "Lisa",
+DlgSelectBtnModify	: "Muuda",
+DlgSelectBtnUp		: "Ãœles",
+DlgSelectBtnDown	: "Alla",
+DlgSelectBtnSetValue : "Sea valitud olekuna",
+DlgSelectBtnDelete	: "Kustuta",
 
 // Textarea Dialog
-DlgTextareaName	: "Name",	//MISSING
-DlgTextareaCols	: "Columns",	//MISSING
-DlgTextareaRows	: "Rows",	//MISSING
+DlgTextareaName	: "Nimi",
+DlgTextareaCols	: "Veerge",
+DlgTextareaRows	: "Ridu",
 
 // Text Field Dialog
-DlgTextName			: "Name",	//MISSING
-DlgTextValue		: "Value",	//MISSING
-DlgTextCharWidth	: "Character Width",	//MISSING
-DlgTextMaxChars		: "Maximum Characters",	//MISSING
-DlgTextType			: "Type",	//MISSING
-DlgTextTypeText		: "Text",	//MISSING
-DlgTextTypePass		: "Password",	//MISSING
+DlgTextName			: "Nimi",
+DlgTextValue		: "Väärtus",
+DlgTextCharWidth	: "Laius (tähemärkides)",
+DlgTextMaxChars		: "Maksimaalselt tähemärke",
+DlgTextType			: "Tüüp",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Parool",
 
 // Hidden Field Dialog
-DlgHiddenName	: "Name",	//MISSING
-DlgHiddenValue	: "Value",	//MISSING
+DlgHiddenName	: "Nimi",
+DlgHiddenValue	: "Väärtus",
 
 // Bulleted List Dialog
-BulletedListProp	: "Bulleted List Properties",	//MISSING
-NumberedListProp	: "Numbered List Properties",	//MISSING
-DlgLstType			: "Type",	//MISSING
-DlgLstTypeCircle	: "Circle",	//MISSING
-DlgLstTypeDisc		: "Disc",	//MISSING
-DlgLstTypeSquare	: "Square",	//MISSING
-DlgLstTypeNumbers	: "Numbers (1, 2, 3)",	//MISSING
-DlgLstTypeLCase		: "Lowercase Letters (a, b, c)",	//MISSING
-DlgLstTypeUCase		: "Uppercase Letters (A, B, C)",	//MISSING
-DlgLstTypeSRoman	: "Small Roman Numerals (i, ii, iii)",	//MISSING
-DlgLstTypeLRoman	: "Large Roman Numerals (I, II, III)",	//MISSING
+BulletedListProp	: "Täpitud loetelu omadused",
+NumberedListProp	: "Nummerdatud loetelu omadused",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tüüp",
+DlgLstTypeCircle	: "Ring",
+DlgLstTypeDisc		: "Ketas",
+DlgLstTypeSquare	: "Ruut",
+DlgLstTypeNumbers	: "Numbrid (1, 2, 3)",
+DlgLstTypeLCase		: "Väiketähed (a, b, c)",
+DlgLstTypeUCase		: "Suurtähed (A, B, C)",
+DlgLstTypeSRoman	: "Väiksed Rooma numbrid (i, ii, iii)",
+DlgLstTypeLRoman	: "Suured Rooma numbrid (I, II, III)",
 
 // Document Properties Dialog
-DlgDocGeneralTab	: "General",	//MISSING
-DlgDocBackTab		: "Background",	//MISSING
-DlgDocColorsTab		: "Colors and Margins",	//MISSING
-DlgDocMetaTab		: "Meta Data",	//MISSING
+DlgDocGeneralTab	: "Ãœldine",
+DlgDocBackTab		: "Taust",
+DlgDocColorsTab		: "Värvid ja veerised",
+DlgDocMetaTab		: "Meta andmed",
 
-DlgDocPageTitle		: "Page Title",	//MISSING
-DlgDocLangDir		: "Language Direction",	//MISSING
-DlgDocLangDirLTR	: "Left to Right (LTR)",	//MISSING
-DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
-DlgDocLangCode		: "Language Code",	//MISSING
-DlgDocCharSet		: "Character Set Encoding",	//MISSING
-DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
+DlgDocPageTitle		: "Lehekülje tiitel",
+DlgDocLangDir		: "Kirja suund",
+DlgDocLangDirLTR	: "Vasakult paremale (LTR)",
+DlgDocLangDirRTL	: "Paremalt vasakule (RTL)",
+DlgDocLangCode		: "Keele kood",
+DlgDocCharSet		: "Märgistiku kodeering",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Ülejäänud märgistike kodeeringud",
 
-DlgDocDocType		: "Document Type Heading",	//MISSING
-DlgDocDocTypeOther	: "Other Document Type Heading",	//MISSING
-DlgDocIncXHTML		: "Include XHTML Declarations",	//MISSING
-DlgDocBgColor		: "Background Color",	//MISSING
-DlgDocBgImage		: "Background Image URL",	//MISSING
-DlgDocBgNoScroll	: "Nonscrolling Background",	//MISSING
-DlgDocCText			: "Text",	//MISSING
-DlgDocCLink			: "Link",	//MISSING
-DlgDocCVisited		: "Visited Link",	//MISSING
-DlgDocCActive		: "Active Link",	//MISSING
-DlgDocMargins		: "Page Margins",	//MISSING
-DlgDocMaTop			: "Top",	//MISSING
-DlgDocMaLeft		: "Left",	//MISSING
-DlgDocMaRight		: "Right",	//MISSING
-DlgDocMaBottom		: "Bottom",	//MISSING
-DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",	//MISSING
-DlgDocMeDescr		: "Document Description",	//MISSING
-DlgDocMeAuthor		: "Author",	//MISSING
-DlgDocMeCopy		: "Copyright",	//MISSING
-DlgDocPreview		: "Preview",	//MISSING
+DlgDocDocType		: "Dokumendi tüüppäis",
+DlgDocDocTypeOther	: "Teised dokumendi tüüppäised",
+DlgDocIncXHTML		: "Arva kaasa XHTML deklaratsioonid",
+DlgDocBgColor		: "Taustavärv",
+DlgDocBgImage		: "Taustapildi URL",
+DlgDocBgNoScroll	: "Mittekeritav tagataust",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Külastatud link",
+DlgDocCActive		: "Aktiivne link",
+DlgDocMargins		: "Lehekülje äärised",
+DlgDocMaTop			: "Ãœlaserv",
+DlgDocMaLeft		: "Vasakserv",
+DlgDocMaRight		: "Paremserv",
+DlgDocMaBottom		: "Alaserv",
+DlgDocMeIndex		: "Dokumendi võtmesõnad (eraldatud komadega)",
+DlgDocMeDescr		: "Dokumendi kirjeldus",
+DlgDocMeAuthor		: "Autor",
+DlgDocMeCopy		: "Autoriõigus",
+DlgDocPreview		: "Eelvaade",
 
 // Templates Dialog
-Templates			: "Templates",	//MISSING
-DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
-DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
-DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+Templates			: "Å abloon",
+DlgTemplatesTitle	: "Sisu Å¡abloonid",
+DlgTemplatesSelMsg	: "Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):",
+DlgTemplatesLoading	: "Laen Å¡abloonide nimekirja. Palun oota...",
+DlgTemplatesNoTpl	: "(Ãœhtegi Å¡ablooni ei ole defineeritud)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
-DlgAboutAboutTab	: "About",	//MISSING
-DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutAboutTab	: "Teave",
+DlgAboutBrowserInfoTab	: "Interneti sirvija info",
+DlgAboutLicenseTab	: "Litsents",
 DlgAboutVersion		: "versioon",
-DlgAboutLicense		: "Litsenseeritud GNU Lesser General Public License litsentsiga",
 DlgAboutInfo		: "Täpsema info saamiseks mine"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/eu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/eu.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/eu.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: eu.js
- * 	Basque language file.
- * 	Euskara hizkuntza fitxategia.
- * 
- * File Authors:
- * 		Ibon Igartua (Librezale.org)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Basque language file.
+ * Euskara hizkuntza fitxategia.
  */
 
 var FCKLang =
@@ -86,6 +90,8 @@
 Replace				: "Ordezkatu",
 SpellCheck			: "Ortografia",
 UniversalKeyboard	: "Teklatu Unibertsala",
+PageBreakLbl		: "Orrialde-jauzia",
+PageBreak			: "Txertatu Orrialde-jauzia",
 
 Form			: "Formularioa",
 Checkbox		: "Kontrol-laukia",
@@ -97,8 +103,13 @@
 SelectionField	: "Hautespen Eremua",
 ImageButton		: "Irudi Botoia",
 
+FitWindow		: "Maximizatu editorearen tamaina",
+
 // Context Menu
 EditLink			: "Aldatu Esteka",
+CellCM				: "Gelaxka",
+RowCM				: "Errenkada",
+ColumnCM			: "Zutabea",
 InsertRow			: "Txertatu Errenkada",
 DeleteRows			: "Ezabatu Errenkadak",
 InsertColumn		: "Txertatu Zutabea",
@@ -107,6 +118,7 @@
 DeleteCells			: "Kendu Gelaxkak",
 MergeCells			: "Batu Gelaxkak",
 SplitCell			: "Zatitu Gelaxka",
+TableDelete			: "Ezabatu Taula",
 CellProperties		: "Gelaxkaren Ezaugarriak",
 TableProperties		: "Taularen Ezaugarriak",
 ImageProperties		: "Irudiaren Ezaugarriak",
@@ -123,7 +135,7 @@
 TextareaProp		: "Testu-arearen Ezaugarriak",
 FormProp			: "Formularioaren Ezaugarriak",
 
-FontFormats			: "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",
+FontFormats			: "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "XHTML Prozesatzen. Itxaron mesedez...",
@@ -134,7 +146,9 @@
 UnknownCommand		: "Komando izen ezezaguna \"%1\"",
 NotImplemented		: "Komando ez inplementatua",
 UnknownToolbarSet	: "Ataza barra \"%1\" taldea ez da existitzen",
-NoActiveX			: "You 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
+NoActiveX			: "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.",
+BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
+DialogBlocked		: "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.",
 
 // Dialogs
 DlgBtnOK			: "Ados",
@@ -142,12 +156,12 @@
 DlgBtnClose			: "Itxi",
 DlgBtnBrowseServer	: "Zerbitzaria arakatu",
 DlgAdvancedTag		: "Aurreratua",
-DlgOpOther			: "&lt;Bestelakoak&gt;",
+DlgOpOther			: "<Bestelakoak>",
 DlgInfoTab			: "Informazioa",
 DlgAlertUrl			: "Mesedez URLa idatzi ezazu",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;Ezarri gabe&gt;",
+DlgGenNotSet		: "<Ezarri gabe>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Hizkuntzaren Norabidea",
 DlgGenLangDirLtr	: "Ezkerretik Eskumara(LTR)",
@@ -211,12 +225,12 @@
 DlgLnkTypeAnchor	: "Aingura horrialde honentan",
 DlgLnkTypeEMail		: "ePosta",
 DlgLnkProto			: "Protokoloa",
-DlgLnkProtoOther	: "&lt;Beste batzuk&gt;",
+DlgLnkProtoOther	: "<Beste batzuk>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Aingura bat hautatu",
 DlgLnkAnchorByName	: "Aingura izenagatik",
 DlgLnkAnchorById	: "Elementuaren ID-gatik",
-DlgLnkNoAnchors		: "&lt;Ez daude aingurak eskuragarri dokumentuan&gt;",
+DlgLnkNoAnchors		: "<Ez daude aingurak eskuragarri dokumentuan>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "ePosta Helbidea",
 DlgLnkEMailSubject	: "Mezuaren Gaia",
 DlgLnkEMailBody		: "Mezuaren Gorputza",
@@ -224,8 +238,8 @@
 DlgLnkBtnUpload		: "Zerbitzarira bidali",
 
 DlgLnkTarget		: "Target (Helburua)",
-DlgLnkTargetFrame	: "&lt;marko&gt;",
-DlgLnkTargetPopup	: "&lt;popup lehioa&gt;",
+DlgLnkTargetFrame	: "<marko>",
+DlgLnkTargetPopup	: "<popup lehioa>",
 DlgLnkTargetBlank	: "Lehio Berria (_blank)",
 DlgLnkTargetParent	: "Lehio Gurasoa (_parent)",
 DlgLnkTargetSelf	: "Lehio Berdina (_self)",
@@ -249,6 +263,7 @@
 DlnLnkMsgNoUrl		: "Mesedez URL esteka idatzi",
 DlnLnkMsgNoEMail	: "Mesedez ePosta helbidea idatzi",
 DlnLnkMsgNoAnchor	: "Mesedez aingura bat aukeratu",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Kolore Aukeraketa",
@@ -279,6 +294,7 @@
 DlgTableCellSpace	: "Gelaxka arteko tartea",
 DlgTableCellPad		: "Gelaxken betegarria",
 DlgTableCaption		: "Epigrafea",
+DlgTableSummary		: "Laburpena",
 
 // Table Cell Dialog
 DlgCellTitle		: "Gelaxken Ezaugarriak",
@@ -287,16 +303,16 @@
 DlgCellWidthPc		: "ehuneko",
 DlgCellHeight		: "Altuera",
 DlgCellWordWrap		: "Itzulbira",
-DlgCellWordWrapNotSet	: "&lt;Ezarri gabe&gt;",
+DlgCellWordWrapNotSet	: "<Ezarri gabe>",
 DlgCellWordWrapYes	: "Bai",
 DlgCellWordWrapNo	: "Ez",
 DlgCellHorAlign		: "Horizontal Alignment",
-DlgCellHorAlignNotSet	: "&lt;Ezarri gabe&gt;",
+DlgCellHorAlignNotSet	: "<Ezarri gabe>",
 DlgCellHorAlignLeft	: "Ezkerrean",
 DlgCellHorAlignCenter	: "Erdian",
 DlgCellHorAlignRight: "Eskuman",
 DlgCellVerAlign		: "Lerrokatu Bertikalki",
-DlgCellVerAlignNotSet	: "&lt;Ezarri gabe&gt;",
+DlgCellVerAlignNotSet	: "<Ezarri gabe>",
 DlgCellVerAlignTop	: "Goian",
 DlgCellVerAlignMiddle	: "Erdian",
 DlgCellVerAlignBottom	: "Behean",
@@ -322,7 +338,6 @@
 DlgReplaceWordChk		: "Esaldi osoa bilatu",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki itsastea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+V).",
 PasteErrorCut	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).",
 PasteErrorCopy	: "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).",
 
@@ -330,11 +345,11 @@
 PasteFromWord	: "Word-etik itsatsi",
 
 DlgPasteMsg2	: "Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Letra Motaren definizioa ezikusi",
 DlgPasteRemoveStyles	: "Estilo definizioak kendu",
 DlgPasteCleanBox		: "Testu-eremua Garbitu",
 
-
 // Color Picker
 ColorAutomatic	: "Automatikoa",
 ColorMoreColors	: "Kolore gehiago...",
@@ -365,8 +380,11 @@
 IeSpellDownload			: "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?",
 
 // Button Dialog
-DlgButtonText	: "Testua (Balorea)",
-DlgButtonType	: "Mota",
+DlgButtonText		: "Testua (Balorea)",
+DlgButtonType		: "Mota",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Izena",
@@ -415,9 +433,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Buletdun Zerrendaren Ezarpenak",
 NumberedListProp	: "Zenbakidun Zerrendaren Ezarpenak",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Mota",
 DlgLstTypeCircle	: "Zirkulua",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Diskoa",
 DlgLstTypeSquare	: "Karratua",
 DlgLstTypeNumbers	: "Zenbakiak (1, 2, 3)",
 DlgLstTypeLCase		: "Letra xeheak (a, b, c)",
@@ -437,6 +456,15 @@
 DlgDocLangDirRTL	: "Eskumatik ezkerrera (RTL)",
 DlgDocLangCode		: "Hizkuntzaren Kodea",
 DlgDocCharSet		: "Karaktere Multzoaren Kodeketa",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Beste Karaktere Multzoaren Kodeketa",
 
 DlgDocDocType		: "Document Type Goiburua",
@@ -466,11 +494,12 @@
 DlgTemplatesSelMsg	: "Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):",
 DlgTemplatesLoading	: "Txantiloiak kargatzen. Itxaron mesedez...",
 DlgTemplatesNoTpl	: "(Ez dago definitutako txantiloirik)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Honi buruz",
 DlgAboutBrowserInfoTab	: "Nabigatzailearen Informazioa",
+DlgAboutLicenseTab	: "Lizentzia",
 DlgAboutVersion		: "bertsioa",
-DlgAboutLicense		: "GNU Lesser General Public License Lizentziapean",
 DlgAboutInfo		: "Informazio gehiago eskuratzeko hona joan"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/fa.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/fa.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/fa.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fa.js
- * 	Persian language file.
- * 
- * File Authors:
- * 		Hamed Taj-Abadi (hamed at ranginkaman.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Persian language file.
  */
 
 var FCKLang =
@@ -22,355 +26,369 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "rtl",
 
-ToolbarCollapse		: "بستن منوابزار",
-ToolbarExpand		: "بازکردن منوابزار",
+ToolbarCollapse		: "برچیدن نوارابزار",
+ToolbarExpand		: "گستردن نوارابزار",
 
 // Toolbar Items and Context Menu
-Save				: "ذخيره",
-NewPage				: "جديد",
-Preview				: "پيش نمايش",
+Save				: "ذخیره",
+NewPage				: "برگهٴ تازه",
+Preview				: "پیش‌نمایش",
 Cut					: "برش",
 Copy				: "کپی",
 Paste				: "چسباندن",
-PasteText			: "چسباندن به عنوان متن ساده",
-PasteWord			: "چسباندن از WORD",
+PasteText			: "چسباندن به عنوان متن ِساده",
+PasteWord			: "چسباندن از Word",
 Print				: "چاپ",
-SelectAll			: "انتخاب همه",
+SelectAll			: "گزینش همه",
 RemoveFormat		: "برداشتن فرمت",
-InsertLinkLbl		: "لينک",
-InsertLink			: "درج/ويرايش لينک",
-RemoveLink			: "برداشتن لينک",
-Anchor				: "درج/ويرايش لنگر",
-InsertImageLbl		: "تصوير",
-InsertImage			: "درج/ويرايش تصوير",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertLinkLbl		: "پیوند",
+InsertLink			: "گنجاندن/ویرایش ِپیوند",
+RemoveLink			: "برداشتن پیوند",
+Anchor				: "گنجاندن/ویرایش ِلنگر",
+InsertImageLbl		: "تصویر",
+InsertImage			: "گنجاندن/ویرایش ِتصویر",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "گنجاندن/ویرایش ِFlash",
 InsertTableLbl		: "جدول",
-InsertTable			: "درج/ويرايش جدول",
+InsertTable			: "گنجاندن/ویرایش ِجدول",
 InsertLineLbl		: "خط",
-InsertLine			: "درج خط افقی",
-InsertSpecialCharLbl: "شناسه ويژه",
-InsertSpecialChar	: "درج شناسه ويژه",
+InsertLine			: "گنجاندن خط ِافقی",
+InsertSpecialCharLbl: "نویسهٴ ویژه",
+InsertSpecialChar	: "گنجاندن نویسهٴ ویژه",
 InsertSmileyLbl		: "خندانک",
-InsertSmiley		: "درج خندانک",
-About				: "درباره FCKeditor",
-Bold				: "پررنگ",
-Italic				: "ايتاليک",
-Underline			: "زيرخط",
-StrikeThrough		: "ميان خط",
-Subscript			: "انديس پائين",
-Superscript			: "انديس بالا",
-LeftJustify			: "چپ چين",
-CenterJustify		: "وسط چين",
-RightJustify		: "راست چين",
-BlockJustify		: "بلوک چين",
+InsertSmiley		: "گنجاندن خندانک",
+About				: "دربارهٴ FCKeditor",
+Bold				: "درشت",
+Italic				: "خمیده",
+Underline			: "خط‌زیردار",
+StrikeThrough		: "میان‌خط",
+Subscript			: "زیرنویس",
+Superscript			: "بالانویس",
+LeftJustify			: "چپ‌چین",
+CenterJustify		: "میان‌چین",
+RightJustify		: "راست‌چین",
+BlockJustify		: "بلوک‌چین",
 DecreaseIndent		: "کاهش تورفتگی",
-IncreaseIndent		: "افزايش تورفتگی",
-Undo				: "واچيدن",
-Redo				: "بازچيدن",
-NumberedListLbl		: "فهرست عددی",
-NumberedList		: "درج/برداشتن فهرست عددی",
-BulletedListLbl		: "فهرست نقطه ای",
-BulletedList		: "درج/برداشتن فهرست نقطه ای",
-ShowTableBorders	: "نمايش لبه جدول",
-ShowDetails			: "نمايش جزئيات",
+IncreaseIndent		: "افزایش تورفتگی",
+Undo				: "واچیدن",
+Redo				: "بازچیدن",
+NumberedListLbl		: "فهرست شماره‌دار",
+NumberedList		: "گنجاندن/برداشتن فهرست شماره‌دار",
+BulletedListLbl		: "فهرست نقطه‌ای",
+BulletedList		: "گنجاندن/برداشتن فهرست نقطه‌ای",
+ShowTableBorders	: "نمایش لبهٴ جدول",
+ShowDetails			: "نمایش جزئیات",
 Style				: "سبک",
 FontFormat			: "فرمت",
 Font				: "قلم",
 FontSize			: "اندازه",
 TextColor			: "رنگ متن",
-BGColor				: "رنگ پس زمينه",
+BGColor				: "رنگ پس‌زمینه",
 Source				: "منبع",
 Find				: "جستجو",
-Replace				: "جايگزينی",
-SpellCheck			: "کنترل املا",
-UniversalKeyboard	: "صفحه کليد جهانی",
+Replace				: "جایگزینی",
+SpellCheck			: "بررسی املا",
+UniversalKeyboard	: "صفحه‌کلید جهانی",
+PageBreakLbl		: "شکستگی ِپایان ِبرگه",
+PageBreak			: "گنجاندن شکستگی ِپایان ِبرگه",
 
 Form			: "فرم",
-Checkbox		: "دکمه گزينه ای",
-RadioButton		: "دکمه راديويی",
-TextField		: "فيلد متنی",
-Textarea		: "ناحيه متنی",
-HiddenField		: "فيلد پنهان",
+Checkbox		: "خانهٴ گزینه‌ای",
+RadioButton		: "دکمهٴ رادیویی",
+TextField		: "فیلد متنی",
+Textarea		: "ناحیهٴ متنی",
+HiddenField		: "فیلد پنهان",
 Button			: "دکمه",
-SelectionField	: "فيلد انتخابی",
-ImageButton		: "دکمه تصويری",
+SelectionField	: "فیلد چندگزینه‌ای",
+ImageButton		: "دکمهٴ تصویری",
 
+FitWindow		: "بیشینه‌سازی ِاندازهٴ ویرایشگر",
+
 // Context Menu
-EditLink			: "ويرايش لينک",
-InsertRow			: "درج سطر",
+EditLink			: "ویرایش پیوند",
+CellCM				: "سلول",
+RowCM				: "سطر",
+ColumnCM			: "ستون",
+InsertRow			: "گنجاندن سطر",
 DeleteRows			: "حذف سطرها",
-InsertColumn		: "درج ستون",
+InsertColumn		: "گنجاندن ستون",
 DeleteColumns		: "حذف ستونها",
-InsertCell			: "درج سلول",
+InsertCell			: "گنجاندن سلول",
 DeleteCells			: "حذف سلولها",
 MergeCells			: "ادغام سلولها",
-SplitCell			: "تفکيک سلول",
-CellProperties		: "ويژگيهای سلول",
-TableProperties		: "ويژگيهای جدول",
-ImageProperties		: "ويژگيهای تصوير",
-FlashProperties		: "Flash Properties",	//MISSING
+SplitCell			: "جداسازی سلول",
+TableDelete			: "پاک‌کردن جدول",
+CellProperties		: "ویژگیهای سلول",
+TableProperties		: "ویژگیهای جدول",
+ImageProperties		: "ویژگیهای تصویر",
+FlashProperties		: "ویژگیهای Flash",
 
-AnchorProp			: "ويژگيهای لنگر",
-ButtonProp			: "ويژگيهای دکمه",
-CheckboxProp		: "ويژگيهای دکمه گزينه ای",
-HiddenFieldProp		: "ويژگيهای فيلد پنهان",
-RadioButtonProp		: "ويژگيهای دکمه راديويی",
-ImageButtonProp		: "ويژگيهای دکمه تصويری",
-TextFieldProp		: "ويژگيهای فيلد متنی",
-SelectionFieldProp	: "ويژگيهای فيلد انتخابی",
-TextareaProp		: "ويژگيهای ناحيه متنی",
-FormProp			: "ويژگيهای فرم",
+AnchorProp			: "ویژگیهای لنگر",
+ButtonProp			: "ویژگیهای دکمه",
+CheckboxProp		: "ویژگیهای خانهٴ گزینه‌ای",
+HiddenFieldProp		: "ویژگیهای فیلد پنهان",
+RadioButtonProp		: "ویژگیهای دکمهٴ رادیویی",
+ImageButtonProp		: "ویژگیهای دکمهٴ تصویری",
+TextFieldProp		: "ویژگیهای فیلد متنی",
+SelectionFieldProp	: "ویژگیهای فیلد چندگزینه‌ای",
+TextareaProp		: "ویژگیهای ناحیهٴ متنی",
+FormProp			: "ویژگیهای فرم",
 
-FontFormats			: "نرمال;فرمت شده;آدرس;سرنويس 1;سرنويس 2;سرنويس 3;سرنويس 4;سرنويس 5;سرنويس 6;بند;(DIV)",
+FontFormats			: "نرمال;فرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "پردازش XHTML. لطفا صبر کنيد...",
+ProcessingXHTML		: "پردازش XHTML. لطفا صبر کنید...",
 Done				: "انجام شد",
-PasteWordConfirm	: "متنی که می خواهيد بچسبانيد به نظر از WORD کپی شده است. آيا مايليد قبل از چسباندن آنرا تميز کنيد؟ ",
-NotCompatiblePaste	: "اين فرمان برای مرورگر Internet Explorer از نگارش 5.5 يا بالاتر در دسترس است. آيا مايليد بدون تميز کردن متن را بچسبانيد؟",
-UnknownToolbarItem	: "فقره منوابزار ناشناخته \"%1\"",
+PasteWordConfirm	: "کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟ Word متنی که می‌خواهید بچسبانید به نظر می‌رسد از",
+NotCompatiblePaste	: "این فرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟",
+UnknownToolbarItem	: "فقرهٴ نوارابزار ناشناخته \"%1\"",
 UnknownCommand		: "نام دستور ناشناخته \"%1\"",
-NotImplemented		: "دستور اجرا نشد",
-UnknownToolbarSet	: "مجموعه منوابزار \"%1\" وجود ندارد",
-NoActiveX			: "You 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
+NotImplemented		: "دستور پیاده‌سازی‌نشده",
+UnknownToolbarSet	: "مجموعهٴ نوارابزار \"%1\" وجود ندارد",
+NoActiveX			: "تنظیمات امنیتی مرورگر شما ممکن است در بعضی از ویژگیهای مرورگر محدودیت ایجاد کند. شما باید گزینهٴ \"Run ActiveX controls and plug-ins\" را فعال کنید. ممکن است شما با خطاهایی روبرو باشید و متوجه کمبود ویژگیهایی شوید.",
+BrowseServerBlocked : "توانایی بازگشایی مرورگر منابع فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",
+DialogBlocked		: "توانایی بازگشایی پنجرهٴ کوچک ِگفتگو فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.",
 
 // Dialogs
-DlgBtnOK			: "تائيد",
+DlgBtnOK			: "پذیرش",
 DlgBtnCancel		: "انصراف",
 DlgBtnClose			: "بستن",
-DlgBtnBrowseServer	: "فهرست نمايی سرور",
-DlgAdvancedTag		: "پيشرفته",
-DlgOpOther			: "&lt;غيره&gt;",
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgBtnBrowseServer	: "فهرست‌نمایی سرور",
+DlgAdvancedTag		: "پیشرفته",
+DlgOpOther			: "<غیره>",
+DlgInfoTab			: "اطلاعات",
+DlgAlertUrl			: "لطفاً URL را بنویسید",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;تعين نشده&gt;",
-DlgGenId			: "کد",
-DlgGenLangDir		: "جهت نمای زبان",
+DlgGenNotSet		: "<تعین‌نشده>",
+DlgGenId			: "شناسه",
+DlgGenLangDir		: "جهت‌نمای زبان",
 DlgGenLangDirLtr	: "چپ به راست (LTR)",
 DlgGenLangDirRtl	: "راست به چپ (RTL)",
 DlgGenLangCode		: "کد زبان",
-DlgGenAccessKey		: "کليد دستيابی",
+DlgGenAccessKey		: "کلید دستیابی",
 DlgGenName			: "نام",
-DlgGenTabIndex		: "انديس برگه",
-DlgGenLongDescr		: "URL توضيح طولانی",
-DlgGenClass			: "کلاسهای استايل شيت",
+DlgGenTabIndex		: "نمایهٴ دسترسی با Tab",
+DlgGenLongDescr		: "URL توصیف طولانی",
+DlgGenClass			: "کلاسهای شیوه‌نامه(Stylesheet)",
 DlgGenTitle			: "عنوان کمکی",
-DlgGenContType		: "نوع محتوی کمکی",
-DlgGenLinkCharset	: "مجموعه نويسه منبع لينک شده",
-DlgGenStyle			: "سبک",
+DlgGenContType		: "نوع محتوای کمکی",
+DlgGenLinkCharset	: "نویسه‌گان منبع ِپیوندشده",
+DlgGenStyle			: "شیوه(style)",
 
 // Image Dialog
-DlgImgTitle			: "ويژگيهای تصوير",
-DlgImgInfoTab		: "اطلاعات تصوير",
-DlgImgBtnUpload		: "به سرور ارسال کن",
+DlgImgTitle			: "ویژگیهای تصویر",
+DlgImgInfoTab		: "اطلاعات تصویر",
+DlgImgBtnUpload		: "به سرور بفرست",
 DlgImgURL			: "URL",
 DlgImgUpload		: "انتقال به سرور",
-DlgImgAlt			: "متن جايگزين",
+DlgImgAlt			: "متن جایگزین",
 DlgImgWidth			: "پهنا",
 DlgImgHeight		: "درازا",
-DlgImgLockRatio		: "قفل کردن نسبت",
+DlgImgLockRatio		: "قفل‌کردن ِنسبت",
 DlgBtnResetSize		: "بازنشانی اندازه",
 DlgImgBorder		: "لبه",
-DlgImgHSpace		: "فاصله افقی",
-DlgImgVSpace		: "فاصله عمودی",
-DlgImgAlign			: "چينش",
+DlgImgHSpace		: "فاصلهٴ افقی",
+DlgImgVSpace		: "فاصلهٴ عمودی",
+DlgImgAlign			: "چینش",
 DlgImgAlignLeft		: "Ú†Ù¾",
-DlgImgAlignAbsBottom: "پائين مطلق",
+DlgImgAlignAbsBottom: "پائین مطلق",
 DlgImgAlignAbsMiddle: "وسط مطلق",
-DlgImgAlignBaseline	: "خط پايه",
-DlgImgAlignBottom	: "پائين",
+DlgImgAlignBaseline	: "خط‌پایه",
+DlgImgAlignBottom	: "پائین",
 DlgImgAlignMiddle	: "وسط",
 DlgImgAlignRight	: "راست",
 DlgImgAlignTextTop	: "متن بالا",
 DlgImgAlignTop		: "بالا",
-DlgImgPreview		: "پيش نمايش",
-DlgImgAlertUrl		: "لطفا URL تصوير را انتخاب کنيد",
-DlgImgLinkTab		: "لينک",
+DlgImgPreview		: "پیش‌نمایش",
+DlgImgAlertUrl		: "لطفا URL تصویر را بنویسید",
+DlgImgLinkTab		: "پیوند",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "ویژگیهای Flash",
+DlgFlashChkPlay		: "آغاز ِخودکار",
+DlgFlashChkLoop		: "اجرای پیاپی",
+DlgFlashChkMenu		: "دردسترس‌بودن منوی Flash",
+DlgFlashScale		: "مقیاس",
+DlgFlashScaleAll	: "نمایش همه",
+DlgFlashScaleNoBorder	: "بدون کران",
+DlgFlashScaleFit	: "جایگیری کامل",
 
 // Link Dialog
-DlgLnkWindowTitle	: "لينک",
-DlgLnkInfoTab		: "اطلاعات لينک",
+DlgLnkWindowTitle	: "پیوند",
+DlgLnkInfoTab		: "اطلاعات پیوند",
 DlgLnkTargetTab		: "مقصد",
 
-DlgLnkType			: "نوع لينک",
+DlgLnkType			: "نوع پیوند",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "پيوند در صفحه جاری",
-DlgLnkTypeEMail		: "پست الکترونيکی",
+DlgLnkTypeAnchor	: "لنگر در همین صفحه",
+DlgLnkTypeEMail		: "پست الکترونیکی",
 DlgLnkProto			: "پروتکل",
-DlgLnkProtoOther	: "&lt;غيره&gt;",
+DlgLnkProtoOther	: "<دیگر>",
 DlgLnkURL			: "URL",
-DlgLnkAnchorSel		: "يک پيوند انتخاب کنيد",
-DlgLnkAnchorByName	: "با نام پيوند",
-DlgLnkAnchorById	: "با کد المان",
-DlgLnkNoAnchors		: "&lt;در اين سند پيوندی موجود نيست&gt;",
-DlgLnkEMail			: "آدرس پست الکترونيکی",
-DlgLnkEMailSubject	: "موضوع پيام",
-DlgLnkEMailBody		: "متن پيام",
+DlgLnkAnchorSel		: "یک لنگر برگزینید",
+DlgLnkAnchorByName	: "با نام لنگر",
+DlgLnkAnchorById	: "با شناسهٴ المان",
+DlgLnkNoAnchors		: "<در این سند لنگری دردسترس نیست>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "نشانی پست الکترونیکی",
+DlgLnkEMailSubject	: "موضوع پیام",
+DlgLnkEMailBody		: "متن پیام",
 DlgLnkUpload		: "انتقال به سرور",
-DlgLnkBtnUpload		: "به سرور ارسال کن",
+DlgLnkBtnUpload		: "به سرور بفرست",
 
 DlgLnkTarget		: "مقصد",
-DlgLnkTargetFrame	: "&lt;فريم&gt;",
-DlgLnkTargetPopup	: "&lt;پنجره پاپاپ&gt;",
-DlgLnkTargetBlank	: "پنجره جديد (_blank)",
-DlgLnkTargetParent	: "پنجره والد (_parent)",
+DlgLnkTargetFrame	: "<فریم>",
+DlgLnkTargetPopup	: "<پنجرهٴ پاپاپ>",
+DlgLnkTargetBlank	: "پنجرهٴ دیگر (_blank)",
+DlgLnkTargetParent	: "پنجرهٴ والد (_parent)",
 DlgLnkTargetSelf	: "همان پنجره (_self)",
-DlgLnkTargetTop		: "بالاترين پنجره (_top)",
-DlgLnkTargetFrameName	: "نام فريم مقصد",
-DlgLnkPopWinName	: "نام پنجره پاپاپ",
-DlgLnkPopWinFeat	: "خصوصيات پنجره پاپاپ",
-DlgLnkPopResize		: "قابل تغيراندازه",
-DlgLnkPopLocation	: "نوار موقعيت",
+DlgLnkTargetTop		: "بالاترین پنجره (_top)",
+DlgLnkTargetFrameName	: "نام فریم مقصد",
+DlgLnkPopWinName	: "نام پنجرهٴ پاپاپ",
+DlgLnkPopWinFeat	: "ویژگیهای پنجرهٴ پاپاپ",
+DlgLnkPopResize		: "قابل تغیر اندازه",
+DlgLnkPopLocation	: "نوار موقعیت",
 DlgLnkPopMenu		: "نوار منو",
-DlgLnkPopScroll		: "نوارهای طومار",
-DlgLnkPopStatus		: "نوار وضعيت",
+DlgLnkPopScroll		: "میله‌های پیمایش",
+DlgLnkPopStatus		: "نوار وضعیت",
 DlgLnkPopToolbar	: "نوارابزار",
-DlgLnkPopFullScrn	: "تمام صفحه (IE)",
+DlgLnkPopFullScrn	: "تمام‌صفحه (IE)",
 DlgLnkPopDependent	: "وابسته (Netscape)",
 DlgLnkPopWidth		: "پهنا",
 DlgLnkPopHeight		: "درازا",
-DlgLnkPopLeft		: "موقعيت چپ",
-DlgLnkPopTop		: "موقعيت بالا",
+DlgLnkPopLeft		: "موقعیت ِچپ",
+DlgLnkPopTop		: "موقعیت ِبالا",
 
-DlnLnkMsgNoUrl		: "لطفا URL لينک را وارد کنيد",
-DlnLnkMsgNoEMail	: "لطفا آدرس ايميل را وارد کنيد",
-DlnLnkMsgNoAnchor	: "لطفا پيوندی انتخاب کنيد",
+DlnLnkMsgNoUrl		: "لطفا URL پیوند را بنویسید",
+DlnLnkMsgNoEMail	: "لطفا نشانی پست الکترونیکی را بنویسید",
+DlnLnkMsgNoAnchor	: "لطفا لنگری را برگزینید",
+DlnLnkMsgInvPopName	: "نام پنجرهٴ پاپاپ باید با یک نویسهٴ الفبایی آغاز گردد و نباید فاصله‌های خالی در آن باشند",
 
 // Color Dialog
-DlgColorTitle		: "انتخاب رنگ",
-DlgColorBtnClear	: "پاک کردن",
-DlgColorHighlight	: "هايلايت",
-DlgColorSelected	: "انتخاب شده",
+DlgColorTitle		: "گزینش رنگ",
+DlgColorBtnClear	: "پاک‌کردن",
+DlgColorHighlight	: "نمونه",
+DlgColorSelected	: "برگزیده",
 
 // Smiley Dialog
-DlgSmileyTitle		: "درج  خندانک",
+DlgSmileyTitle		: "گنجاندن خندانک",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "انتخاب شناسه های ويژه",
+DlgSpecialCharTitle	: "گزینش نویسهٴ‌ویژه",
 
 // Table Dialog
-DlgTableTitle		: "ويژگيهای جدول",
+DlgTableTitle		: "ویژگیهای جدول",
 DlgTableRows		: "سطرها",
 DlgTableColumns		: "ستونها",
-DlgTableBorder		: "اندازه لبه",
-DlgTableAlign		: "چينش",
-DlgTableAlignNotSet	: "<تعين نشده>",
+DlgTableBorder		: "اندازهٴ لبه",
+DlgTableAlign		: "چینش",
+DlgTableAlignNotSet	: "<تعین‌نشده>",
 DlgTableAlignLeft	: "Ú†Ù¾",
 DlgTableAlignCenter	: "وسط",
 DlgTableAlignRight	: "راست",
 DlgTableWidth		: "پهنا",
-DlgTableWidthPx		: "پيکسل",
+DlgTableWidthPx		: "پیکسل",
 DlgTableWidthPc		: "درصد",
 DlgTableHeight		: "درازا",
-DlgTableCellSpace	: "فاصله ميان سلولها",
-DlgTableCellPad		: "فاصله پرشده در سلول",
+DlgTableCellSpace	: "فاصلهٴ میان سلولها",
+DlgTableCellPad		: "فاصلهٴ پرشده در سلول",
 DlgTableCaption		: "عنوان",
+DlgTableSummary		: "خلاصه",
 
 // Table Cell Dialog
-DlgCellTitle		: "ويژگيهای سلول",
+DlgCellTitle		: "ویژگیهای سلول",
 DlgCellWidth		: "پهنا",
-DlgCellWidthPx		: "پيکسل",
+DlgCellWidthPx		: "پیکسل",
 DlgCellWidthPc		: "درصد",
 DlgCellHeight		: "درازا",
-DlgCellWordWrap		: "شکستن کلمات",
-DlgCellWordWrapNotSet	: "&lt;تعين نشده&gt;",
+DlgCellWordWrap		: "شکستن واژه‌ها",
+DlgCellWordWrapNotSet	: "<تعین‌نشده>",
 DlgCellWordWrapYes	: "بله",
-DlgCellWordWrapNo	: "خير",
-DlgCellHorAlign		: "چينش افقی",
-DlgCellHorAlignNotSet	: "&lt;تعين نشده&gt;",
+DlgCellWordWrapNo	: "خیر",
+DlgCellHorAlign		: "چینش ِافقی",
+DlgCellHorAlignNotSet	: "<تعین‌نشده>",
 DlgCellHorAlignLeft	: "Ú†Ù¾",
 DlgCellHorAlignCenter	: "وسط",
 DlgCellHorAlignRight: "راست",
-DlgCellVerAlign		: "چينش عمودی",
-DlgCellVerAlignNotSet	: "&lt;تعين نشده&gt;",
+DlgCellVerAlign		: "چینش ِعمودی",
+DlgCellVerAlignNotSet	: "<تعین‌نشده>",
 DlgCellVerAlignTop	: "بالا",
-DlgCellVerAlignMiddle	: "ميان",
-DlgCellVerAlignBottom	: "پائين",
-DlgCellVerAlignBaseline	: "خط پايه",
+DlgCellVerAlignMiddle	: "میان",
+DlgCellVerAlignBottom	: "پائین",
+DlgCellVerAlignBaseline	: "خط‌پایه",
 DlgCellRowSpan		: "گستردگی سطرها",
 DlgCellCollSpan		: "گستردگی ستونها",
-DlgCellBackColor	: "رنگ پس زمينه",
+DlgCellBackColor	: "رنگ پس‌زمینه",
 DlgCellBorderColor	: "رنگ لبه",
-DlgCellBtnSelect	: "انتخاب کنيد...",
+DlgCellBtnSelect	: "برگزینید...",
 
 // Find Dialog
-DlgFindTitle		: "يافتن",
-DlgFindFindBtn		: "يافتن",
-DlgFindNotFoundMsg	: "متن مورد نظر يافت نشد.",
+DlgFindTitle		: "یافتن",
+DlgFindFindBtn		: "یافتن",
+DlgFindNotFoundMsg	: "متن موردنظر یافت نشد.",
 
 // Replace Dialog
-DlgReplaceTitle			: "جايگزينی",
-DlgReplaceFindLbl		: "چه چيز را می يابيد:",
-DlgReplaceReplaceLbl	: "جايگزينی با:",
-DlgReplaceCaseChk		: "انطباق قالب",
-DlgReplaceReplaceBtn	: "جايگزينی",
-DlgReplaceReplAllBtn	: "جايگزينی همه موارد",
-DlgReplaceWordChk		: "انطباق کلمه کامل",
+DlgReplaceTitle			: "جایگزینی",
+DlgReplaceFindLbl		: "چه‌چیز را می‌یابید:",
+DlgReplaceReplaceLbl	: "جایگزینی با:",
+DlgReplaceCaseChk		: "همسانی در بزرگی و کوچکی نویسه‌ها",
+DlgReplaceReplaceBtn	: "جایگزینی",
+DlgReplaceReplAllBtn	: "جایگزینی همهٴ یافته‌ها",
+DlgReplaceWordChk		: "همسانی با واژهٴ کامل",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای چسباندن کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+V).",
-PasteErrorCut	: "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای برش کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+X).",
-PasteErrorCopy	: "تنظيمات امنيتی مرورگر شما اجازه نمی دهد که ويرايشگر به طور خودکار عملکردهای کپی کردن کلمات را انجام دهد. لطفا از کلمه کليدی مرتبط با اينکار را استفاده کنيد (Ctrl+C).",
+PasteErrorCut	: "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+X).",
+PasteErrorCopy	: "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+C).",
 
-PasteAsText		: "چسباندن به عنوان متن ساده",
+PasteAsText		: "چسباندن به عنوان متن ِساده",
 PasteFromWord	: "چسباندن از Word",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "لطفا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "چشم‌پوشی از تعاریف نوع قلم",
+DlgPasteRemoveStyles	: "چشم‌پوشی از تعاریف سبک (style)",
+DlgPasteCleanBox		: "پاک‌کردن ناحیه",
 
-
 // Color Picker
 ColorAutomatic	: "خودکار",
-ColorMoreColors	: "رنگهای بيشتر...",
+ColorMoreColors	: "رنگهای بیشتر...",
 
 // Document Properties
-DocProps		: "ويژگيهای سند",
+DocProps		: "ویژگیهای سند",
 
 // Anchor Dialog
-DlgAnchorTitle		: "ويژگيهای لنگر",
+DlgAnchorTitle		: "ویژگیهای لنگر",
 DlgAnchorName		: "نام لنگر",
-DlgAnchorErrorName	: "لطفا نام لنگر را وارد کنيد",
+DlgAnchorErrorName	: "لطفا نام لنگر را بنویسید",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "در واژه نامه موجود نيست",
-DlgSpellChangeTo		: "تغير به",
-DlgSpellBtnIgnore		: "چشم پوشی",
-DlgSpellBtnIgnoreAll	: "چشم پوشی همه",
-DlgSpellBtnReplace		: "جايگزينی",
-DlgSpellBtnReplaceAll	: "جايگزينی همه",
-DlgSpellBtnUndo			: "واچينش",
-DlgSpellNoSuggestions	: "- پيشنهادی نيست -",
-DlgSpellProgress		: "کنترل املا در حال انجام...",
-DlgSpellNoMispell		: "کنترل املا انجام شد. هيچ غلط املائی يافت نشد",
-DlgSpellNoChanges		: "کنترل املا انجام شد. هيچ کلمه ای تغير نيافت",
-DlgSpellOneChange		: "کنترل املا انجام شد. يک کلمه تغير يافت",
-DlgSpellManyChanges		: "کنترل املا انجام شد. %1 کلمه تغير يافت",
+DlgSpellNotInDic		: "در واژه‌نامه موجود نیست",
+DlgSpellChangeTo		: "تغیر به",
+DlgSpellBtnIgnore		: "چشم‌پوشی",
+DlgSpellBtnIgnoreAll	: "چشم‌پوشی همه",
+DlgSpellBtnReplace		: "جایگزینی",
+DlgSpellBtnReplaceAll	: "جایگزینی همه",
+DlgSpellBtnUndo			: "واچینش",
+DlgSpellNoSuggestions	: "- پیشنهادی نیست -",
+DlgSpellProgress		: "بررسی املا در حال انجام...",
+DlgSpellNoMispell		: "بررسی املا انجام شد. هیچ غلط‌املائی یافت نشد",
+DlgSpellNoChanges		: "بررسی املا انجام شد. هیچ واژه‌ای تغیر نیافت",
+DlgSpellOneChange		: "بررسی املا انجام شد. یک واژه تغیر یافت",
+DlgSpellManyChanges		: "بررسی املا انجام شد. %1 واژه تغیر یافت",
 
-IeSpellDownload			: "کنترل کننده املا نصب نشده است. آيا مايليد آنرا هم اکنون دريافت کنيد؟",
+IeSpellDownload			: "بررسی‌کنندهٴ املا نصب نشده است. آیا می‌خواهید آن را هم‌اکنون دریافت کنید؟",
 
 // Button Dialog
-DlgButtonText	: "متن (مقدار)",
-DlgButtonType	: "نوع",
+DlgButtonText		: "متن (مقدار)",
+DlgButtonType		: "نوع",
+DlgButtonTypeBtn	: "دکمه",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "بازنشانی (Reset)",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "نام",
 DlgCheckboxValue	: "مقدار",
-DlgCheckboxSelected	: "برگزيده",
+DlgCheckboxSelected	: "برگزیده",
 
 // Form Dialog
 DlgFormName		: "نام",
@@ -382,15 +400,15 @@
 DlgSelectValue		: "مقدار",
 DlgSelectSize		: "اندازه",
 DlgSelectLines		: "خطوط",
-DlgSelectChkMulti	: "انتخاب چند گزينه ای مجاز",
-DlgSelectOpAvail	: "گزينه های موجود",
+DlgSelectChkMulti	: "گزینش چندگانه فراهم باشد",
+DlgSelectOpAvail	: "گزینه‌های موجود",
 DlgSelectOpText		: "متن",
 DlgSelectOpValue	: "مقدار",
 DlgSelectBtnAdd		: "اضافه",
-DlgSelectBtnModify	: "ويرايش",
+DlgSelectBtnModify	: "ویرایش",
 DlgSelectBtnUp		: "بالا",
-DlgSelectBtnDown	: "پائين",
-DlgSelectBtnSetValue : "تنظيم به عنوان مقدار برگزيده",
+DlgSelectBtnDown	: "پائین",
+DlgSelectBtnSetValue : "تنظیم به عنوان مقدار ِبرگزیده",
 DlgSelectBtnDelete	: "حذف",
 
 // Textarea Dialog
@@ -401,75 +419,86 @@
 // Text Field Dialog
 DlgTextName			: "نام",
 DlgTextValue		: "مقدار",
-DlgTextCharWidth	: "پهنای شناسه",
-DlgTextMaxChars		: "بيشينه شناسه",
+DlgTextCharWidth	: "پهنای نویسه",
+DlgTextMaxChars		: "بیشینهٴ نویسه‌ها",
 DlgTextType			: "نوع",
 DlgTextTypeText		: "متن",
-DlgTextTypePass		: "کلمه عبور",
+DlgTextTypePass		: "گذرواژه",
 
 // Hidden Field Dialog
 DlgHiddenName	: "نام",
 DlgHiddenValue	: "مقدار",
 
 // Bulleted List Dialog
-BulletedListProp	: "ويژگيهای فهرست دکمه ای",
-NumberedListProp	: "ويژگيهای فهرست عددی",
+BulletedListProp	: "ویژگیهای فهرست نقطه‌ای",
+NumberedListProp	: "ویژگیهای فهرست شماره‌دار",
+DlgLstStart			: "آغاز",
 DlgLstType			: "نوع",
-DlgLstTypeCircle	: "دايره",
-DlgLstTypeDisc		: "Disc",	//MISSING
-DlgLstTypeSquare	: "مربع",
-DlgLstTypeNumbers	: "شماره ها (1، 2، 3)",
-DlgLstTypeLCase		: "حروف کوچک (a، b، c)",
-DlgLstTypeUCase		: "حروف بزرگ (A، B، C)",
-DlgLstTypeSRoman	: "ارقام يونانی کوچک (i، ii، iii)",
-DlgLstTypeLRoman	: "ارقام يونانی بزرگ (I، II، III)",
+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		: "رنگها و حاشيه ها",
+DlgDocBackTab		: "پس‌زمینه",
+DlgDocColorsTab		: "رنگها و حاشیه‌ها",
 DlgDocMetaTab		: "فراداده",
 
 DlgDocPageTitle		: "عنوان صفحه",
 DlgDocLangDir		: "جهت زبان",
-DlgDocLangDirLTR	: "چپ به راست (LTF(",
+DlgDocLangDirLTR	: "چپ به راست (LTR(",
 DlgDocLangDirRTL	: "راست به چپ (RTL(",
 DlgDocLangCode		: "کد زبان",
-DlgDocCharSet		: "رمزگذاری نويسه",
-DlgDocCharSetOther	: "رمزگذاری نويسه های ديگر",
+DlgDocCharSet		: "رمزگذاری نویسه‌گان",
+DlgDocCharSetCE		: "اروپای مرکزی",
+DlgDocCharSetCT		: "چینی رسمی (Big5)",
+DlgDocCharSetCR		: "سیریلیک",
+DlgDocCharSetGR		: "یونانی",
+DlgDocCharSetJP		: "ژاپنی",
+DlgDocCharSetKR		: "کره‌ای",
+DlgDocCharSetTR		: "ترکی",
+DlgDocCharSetUN		: "یونیکُد (UTF-8)",
+DlgDocCharSetWE		: "اروپای غربی",
+DlgDocCharSetOther	: "رمزگذاری نویسه‌گان دیگر",
 
 DlgDocDocType		: "عنوان نوع سند",
-DlgDocDocTypeOther	: "عنوان نوع سند های ديگر",
-DlgDocIncXHTML		: "شامل تعاريف XHTML",
-DlgDocBgColor		: "رنگ پس زمينه",
-DlgDocBgImage		: "URL تصوير پس زمينه",
-DlgDocBgNoScroll	: "پس زمينه غير طوماری",
+DlgDocDocTypeOther	: "عنوان نوع سند دیگر",
+DlgDocIncXHTML		: "شامل تعاریف XHTML",
+DlgDocBgColor		: "رنگ پس‌زمینه",
+DlgDocBgImage		: "URL تصویر پس‌زمینه",
+DlgDocBgNoScroll	: "پس‌زمینهٴ پیمایش‌ناپذیر",
 DlgDocCText			: "متن",
-DlgDocCLink			: "لينک",
-DlgDocCVisited		: "لينک مشاهده شده",
-DlgDocCActive		: "لينک فعال",
-DlgDocMargins		: "حاشيه صفحه",
-DlgDocMaTop			: "رو",
+DlgDocCLink			: "پیوند",
+DlgDocCVisited		: "پیوند مشاهده‌شده",
+DlgDocCActive		: "پیوند فعال",
+DlgDocMargins		: "حاشیه‌های صفحه",
+DlgDocMaTop			: "بالا",
 DlgDocMaLeft		: "Ú†Ù¾",
 DlgDocMaRight		: "راست",
-DlgDocMaBottom		: "زير",
-DlgDocMeIndex		: "کلمات کليدی انديس کردن سند (با کاما جدا شوند)",
-DlgDocMeDescr		: "سند",
-DlgDocMeAuthor		: "نويسنده",
-DlgDocMeCopy		: "کپی رايت",
-DlgDocPreview		: "پيش نمايش",
+DlgDocMaBottom		: "پایین",
+DlgDocMeIndex		: "کلیدواژگان نمایه‌گذاری سند (با کاما جدا شوند)",
+DlgDocMeDescr		: "توصیف سند",
+DlgDocMeAuthor		: "نویسنده",
+DlgDocMeCopy		: "کپی‌رایت",
+DlgDocPreview		: "پیش‌نمایش",
 
 // Templates Dialog
 Templates			: "الگوها",
-DlgTemplatesTitle	: "الگوهای محتويات",
-DlgTemplatesSelMsg	: "لطفا الگوی مورد نظر را برای باز کردن در ويرايشگر انتخاب نمائيد<br>(محتويات اصلی از دست خواهند رفت):",
-DlgTemplatesLoading	: "بارگذاری فهرست الگوها. لطفا صبر کنيد...",
-DlgTemplatesNoTpl	: "(الگوئی تعريف نشده است)",
+DlgTemplatesTitle	: "الگوهای محتویات",
+DlgTemplatesSelMsg	: "لطفا الگوی موردنظر را برای بازکردن در ویرایشگر برگزینید<br>(محتویات کنونی از دست خواهند رفت):",
+DlgTemplatesLoading	: "بارگذاری فهرست الگوها. لطفا صبر کنید...",
+DlgTemplatesNoTpl	: "(الگوئی تعریف نشده است)",
+DlgTemplatesReplace	: "محتویات کنونی جایگزین شوند",
 
 // About Dialog
 DlgAboutAboutTab	: "درباره",
 DlgAboutBrowserInfoTab	: "اطلاعات مرورگر",
+DlgAboutLicenseTab	: "گواهینامه",
 DlgAboutVersion		: "نگارش",
-DlgAboutLicense		: "ليسانس تحت توافقنامه GNU Lesser General Public License",
-DlgAboutInfo		: "برای اطلاعات بيشتر به آدرس زير برويد"
-}
\ No newline at end of file
+DlgAboutInfo		: "برای آگاهی بیشتر به این نشانی بروید"
+};
\ No newline at end of file

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/lang/fcklanguagemanager.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/fcklanguagemanager.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/fcklanguagemanager.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,71 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fcklanguagemanager.js
- * 	This file list all available languages in the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-var FCKLanguageManager = new Object() ;
-
-FCKLanguageManager.AvailableLanguages = 
-{
-	'ar'		: 'Arabic',
-	'bg'		: 'Bulgarian',
-	'bs'		: 'Bosnian',
-	'ca'		: 'Catalan',
-	'cs'		: 'Czech',
-	'da'		: 'Danish',
-	'de'		: 'German',
-	'el'		: 'Greek',
-	'en'		: 'English',
-	'en-au'		: 'English (Australia)',
-	'en-uk'		: 'English (United Kingdom)',
-	'eo'		: 'Esperanto',
-	'es'		: 'Spanish',
-	'et'		: 'Estonian',
-	'eu'		: 'Basque',
-	'fa'		: 'Persian',
-	'fi'		: 'Finnish',
-	'fo'		: 'Faroese',
-	'fr'		: 'French',
-	'gl'		: 'Galician',
-	'he'		: 'Hebrew',
-	'hr'		: 'Croatian',
-	'hu'		: 'Hungarian',
-	'it'		: 'Italian',
-	'ja'		: 'Japanese',
-	'ko'		: 'Korean',
-	'lt'		: 'Lithuanian',
-	'mn'		: 'Mongolian',
-	'ms'		: 'Malay',
-	'nl'		: 'Dutch',
-	'no'		: 'Norwegian',
-	'pl'		: 'Polish',
-	'pt'		: 'Portuguese (Portugal)',
-	'pt-br'		: 'Portuguese (Brazil)',
-	'ro'		: 'Romanian',
-	'ru'		: 'Russian',
-	'sk'		: 'Slovak',
-	'sl'		: 'Slovenian',
-	'sr'		: 'Serbian (Cyrillic)',
-	'sr-latn'	: 'Serbian (Latin)',
-	'sv'		: 'Swedish',
-	'th'		: 'Thai',
-	'tr'		: 'Turkish',
-	'uk'		: 'Ukrainian',
-	'vi'		: 'Vietnamese',
-	'zh'		: 'Chinese Traditional',
-	'zh-cn'		: 'Chinese Simplified'
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/fi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/fi.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/fi.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fi.js
- * 	Finnish language file.
- * 
- * File Authors:
- * 		Marko Korhonen (marko.korhonen at datafisher.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Finnish language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Korvaa",
 SpellCheck			: "Tarkista oikeinkirjoitus",
 UniversalKeyboard	: "Universaali näppäimistö",
+PageBreakLbl		: "Sivun vaihto",
+PageBreak			: "Lisää sivun vaihto",
 
 Form			: "Lomake",
 Checkbox		: "Valintaruutu",
@@ -96,8 +102,13 @@
 SelectionField	: "Valintakenttä",
 ImageButton		: "Kuvapainike",
 
+FitWindow		: "Suurenna editori koko ikkunaan",
+
 // Context Menu
 EditLink			: "Muokkaa linkkiä",
+CellCM				: "Solu",
+RowCM				: "Rivi",
+ColumnCM			: "Sarake",
 InsertRow			: "Lisää rivi",
 DeleteRows			: "Poista rivit",
 InsertColumn		: "Lisää sarake",
@@ -106,6 +117,7 @@
 DeleteCells			: "Poista solut",
 MergeCells			: "Yhdistä solut",
 SplitCell			: "Jaa solu",
+TableDelete			: "Poista taulu",
 CellProperties		: "Solun ominaisuudet",
 TableProperties		: "Taulun ominaisuudet",
 ImageProperties		: "Kuvan ominaisuudet",
@@ -122,7 +134,7 @@
 TextareaProp		: "Tekstilaatikon ominaisuudet",
 FormProp			: "Lomakkeen ominaisuudet",
 
-FontFormats			: "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",
+FontFormats			: "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Prosessoidaan XHTML:ää. Odota hetki...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Tuntematon komento \"%1\"",
 NotImplemented		: "Komentoa ei ole liitetty sovellukseen",
 UnknownToolbarSet	: "Työkalukokonaisuus \"%1\" ei ole olemassa",
-NoActiveX			: "You 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
+NoActiveX			: "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.",
+BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
+DialogBlocked		: "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -146,7 +160,7 @@
 DlgAlertUrl			: "Lisää URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ei asetettu&gt;",
+DlgGenNotSet		: "<ei asetettu>",
 DlgGenId			: "Tunniste",
 DlgGenLangDir		: "Kielen suunta",
 DlgGenLangDirLtr	: "Vasemmalta oikealle (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Ankkuri tässä sivussa",
 DlgLnkTypeEMail		: "Sähköposti",
 DlgLnkProto			: "Protokolla",
-DlgLnkProtoOther	: "&lt;muu&gt;",
+DlgLnkProtoOther	: "<muu>",
 DlgLnkURL			: "Osoite",
 DlgLnkAnchorSel		: "Valitse ankkuri",
 DlgLnkAnchorByName	: "Ankkurin nimen mukaan",
 DlgLnkAnchorById	: "Ankkurin ID:n mukaan",
-DlgLnkNoAnchors		: "&lt;Ei ankkureita tässä dokumentissa&gt;",
+DlgLnkNoAnchors		: "<Ei ankkureita tässä dokumentissa>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Sähköpostiosoite",
 DlgLnkEMailSubject	: "Aihe",
 DlgLnkEMailBody		: "Viesti",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Lähetä palvelimelle",
 
 DlgLnkTarget		: "Kohde",
-DlgLnkTargetFrame	: "&lt;kehys&gt;",
-DlgLnkTargetPopup	: "&lt;popup ikkuna&gt;",
+DlgLnkTargetFrame	: "<kehys>",
+DlgLnkTargetPopup	: "<popup ikkuna>",
 DlgLnkTargetBlank	: "Uusi ikkuna (_blank)",
 DlgLnkTargetParent	: "Emoikkuna (_parent)",
 DlgLnkTargetSelf	: "Sama ikkuna (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Linkille on kirjoitettava URL",
 DlnLnkMsgNoEMail	: "Kirjoita sähköpostiosoite",
 DlnLnkMsgNoAnchor	: "Valitse ankkuri",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Valitse väri",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Solujen väli",
 DlgTableCellPad		: "Solujen sisennys",
 DlgTableCaption		: "Otsikko",
+DlgTableSummary		: "Yhteenveto",
 
 // Table Cell Dialog
 DlgCellTitle		: "Solun ominaisuudet",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Koko sana",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa liittämistä. Käytä näppäimistöä liittämiseen (Ctrl+V).",
 PasteErrorCut	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).",
 PasteErrorCopy	: "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Liitä Wordista",
 
 DlgPasteMsg2	: "Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Jätä huomioimatta fonttimääritykset",
 DlgPasteRemoveStyles	: "Poista tyylimääritykset",
 DlgPasteCleanBox		: "Tyhjennä",
 
-
 // Color Picker
 ColorAutomatic	: "Automaattinen",
 ColorMoreColors	: "Lisää värejä...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?",
 
 // Button Dialog
-DlgButtonText	: "Teksti (arvo)",
-DlgButtonType	: "Tyyppi",
+DlgButtonText		: "Teksti (arvo)",
+DlgButtonType		: "Tyyppi",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nimi",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Luettelon ominaisuudet",
 NumberedListProp	: "Numeroinnin ominaisuudet",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tyyppi",
 DlgLstTypeCircle	: "Kehä",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Ympyrä",
 DlgLstTypeSquare	: "Neliö",
 DlgLstTypeNumbers	: "Numerot (1, 2, 3)",
 DlgLstTypeLCase		: "Pienet kirjaimet (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Oikealta vasemmalle (RTL)",
 DlgDocLangCode		: "Kielikoodi",
 DlgDocCharSet		: "Merkistäkoodaus",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Muu merkistäkoodaus",
 
 DlgDocDocType		: "Dokumentin tyyppi",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Valitse pohja editoriin<br>(aiempi sisältö menetetään):",
 DlgTemplatesLoading	: "Ladataan listaa pohjista. Hetkinen...",
 DlgTemplatesNoTpl	: "(Ei määriteltyjä pohjia)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Editorista",
 DlgAboutBrowserInfoTab	: "Selaimen tiedot",
+DlgAboutLicenseTab	: "Lisenssi",
 DlgAboutVersion		: "versio",
-DlgAboutLicense		: "Lisenssi: GNU Lesser General Public License",
 DlgAboutInfo		: "Lisää tietoa osoitteesta"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/fo.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/fo.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/fo.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fo.js
- * 	Faroese language file.
- * 
- * File Authors:
- * 		Símin Lassaberg
- * 		Helgi Arnthorsson
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Faroese language file.
  */
 
 var FCKLang =
@@ -23,402 +26,417 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Goym amboðalistan",
-ToolbarExpand		: "Vís amboðalistan",
+ToolbarCollapse		: "Fjal amboðsbjálkan",
+ToolbarExpand		: "Vís amboðsbjálkan",
 
 // Toolbar Items and Context Menu
-Save				: "Geim",
+Save				: "Goym",
 NewPage				: "Nýggj síða",
-Preview				: "Vís dømi",
-Cut					: "Klipp",
+Preview				: "Frumsýning",
+Cut					: "Kvett",
 Copy				: "Avrita",
-Paste				: "Set inn",
-PasteText			: "Set inn sum reinan tekst",
-PasteWord			: "Set inn frá Word",
+Paste				: "Innrita",
+PasteText			: "Innrita reinan tekst",
+PasteWord			: "Innrita frá Word",
 Print				: "Prenta",
 SelectAll			: "Markera alt",
-RemoveFormat		: "Sletta sniðgeving",
-InsertLinkLbl		: "Leinkja",
-InsertLink			: "Seta inn/Broyta Leinkju",
-RemoveLink			: "Sletta Leinkju",
-Anchor				: "Seta inn/Broyta staðsetingarmerki",
-InsertImageLbl		: "Seta inn mynd",
-InsertImage			: "Seta inn/Broyta mynd",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
-InsertTableLbl		: "Talva",
-InsertTable			: "Seta inn/Broyta talvu",
+RemoveFormat		: "Strika sniðgeving",
+InsertLinkLbl		: "Tilknýti",
+InsertLink			: "Ger/broyt tilknýti",
+RemoveLink			: "Strika tilknýti",
+Anchor				: "Ger/broyt marknastein",
+InsertImageLbl		: "Myndir",
+InsertImage			: "Set inn/broyt mynd",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Set inn/broyt Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Set inn/broyt tabell",
 InsertLineLbl		: "Linja",
-InsertLine			: "Seta inn vatnrætta linju",
-InsertSpecialCharLbl: "Serlig tekn",
-InsertSpecialChar	: "Seta inn serligt tekn",
+InsertLine			: "Ger vatnrætta linju",
+InsertSpecialCharLbl: "Sertekn",
+InsertSpecialChar	: "Set inn sertekn",
 InsertSmileyLbl		: "Smiley",
-InsertSmiley		: "Seta inn Smiley",
+InsertSmiley		: "Set inn Smiley",
 About				: "Um FCKeditor",
-Bold				: "Feit",
-Italic				: "Skástillað",
+Bold				: "Feit skrift",
+Italic				: "Skráskrift",
 Underline			: "Undirstrikað",
-StrikeThrough		: "Strikað yvir",
+StrikeThrough		: "Yvirstrikað",
 Subscript			: "Lækkað skrift",
 Superscript			: "Hækkað skrift",
-LeftJustify			: "Vinstristillað",
-CenterJustify		: "Miðstillað",
-RightJustify		: "Hægristillað",
-BlockJustify		: "Beinir tekstkantar",
-DecreaseIndent		: "Økja innrykk",
-IncreaseIndent		: "Minka innrykk",
+LeftJustify			: "Vinstrasett",
+CenterJustify		: "Miðsett",
+RightJustify		: "Høgrasett",
+BlockJustify		: "Javnir tekstkantar",
+DecreaseIndent		: "Minka reglubrotarinntriv",
+IncreaseIndent		: "Økja reglubrotarinntriv",
 Undo				: "Angra",
-Redo				: "Broyt aftur í upprunamynd",
-NumberedListLbl		: "Talsettur listi",
-NumberedList		: "Seta inn/Sletta talsettan lista",
-BulletedListLbl		: "Punktsettur listi",
-BulletedList		: "Seta inn/Sletta punktsettan lista",
-ShowTableBorders	: "Vísa talvukantar ",
-ShowDetails			: "Vísa detaljur",
-Style				: "Tekstsnið",
-FontFormat			: "Sniðgeving",
+Redo				: "Vend aftur",
+NumberedListLbl		: "Talmerktur listi",
+NumberedList		: "Ger/strika talmerktan lista",
+BulletedListLbl		: "Punktmerktur listi",
+BulletedList		: "Ger/strika punktmerktan lista",
+ShowTableBorders	: "Vís tabellbordar",
+ShowDetails			: "Vís í smálutum",
+Style				: "Typografi",
+FontFormat			: "Skriftsnið",
 Font				: "Skrift",
 FontSize			: "Skriftstødd",
 TextColor			: "Tekstlitur",
-BGColor				: "Litur aftanfyri",
+BGColor				: "Bakgrundslitur",
 Source				: "Kelda",
 Find				: "Leita",
-Replace				: "Set í staðin",
-SpellCheck			: "Stavseting",
-UniversalKeyboard	: "Universalt Tastatur",
+Replace				: "Yvirskriva",
+SpellCheck			: "Kanna stavseting",
+UniversalKeyboard	: "Knappaborð",
+PageBreakLbl		: "Síðuskift",
+PageBreak			: "Ger síðuskift",
 
-Form			: "Seta inn Form",
-Checkbox		: "Seta inn Avmerkingarboks",
-RadioButton		: "Seta inn Radioknap",
-TextField		: "Seta inn Tekstteig",
-Textarea		: "Seta inn Tekstøki",
-HiddenField		: "Seta inn GoymdanTeig",
-Button			: "Seta inn knapp",
-SelectionField	: "Seta inn Valteig",
-ImageButton		: "Seta inn Myndaknapp",
+Form			: "Formur",
+Checkbox		: "Flugubein",
+RadioButton		: "Radioknøttur",
+TextField		: "Tekstteigur",
+Textarea		: "Tekstumráði",
+HiddenField		: "Fjaldur teigur",
+Button			: "Knøttur",
+SelectionField	: "Valskrá",
+ImageButton		: "Myndaknøttur",
 
+FitWindow		: "Set tekstviðgera til fulla stødd",
+
 // Context Menu
-EditLink			: "Broyt leinkju",
-InsertRow			: "Seta inn rekkju",
-DeleteRows			: "Sletta rekkjur",
-InsertColumn		: "Seta inn søjlur",
-DeleteColumns		: "Sletta søjlur",
-InsertCell			: "Seta inn sellu",
-DeleteCells			: "Sletta sellu",
-MergeCells			: "Flætta sellur",
-SplitCell			: "Deila sellur",
-CellProperties		: "Eginleikar fyri sellu",
-TableProperties		: "Eginleikar fyri talvu",
-ImageProperties		: "Eginleikar fyri mynd",
-FlashProperties		: "Flash Properties",	//MISSING
+EditLink			: "Broyt tilknýti",
+CellCM				: "Meski",
+RowCM				: "Rað",
+ColumnCM			: "Kolonna",
+InsertRow			: "Nýtt rað",
+DeleteRows			: "Strika røðir",
+InsertColumn		: "Nýggj kolonna",
+DeleteColumns		: "Strika kolonnur",
+InsertCell			: "Nýggjur meski",
+DeleteCells			: "Strika meskar",
+MergeCells			: "Flætta meskar",
+SplitCell			: "Být sundur meskar",
+TableDelete			: "Strika tabell",
+CellProperties		: "Meskueginleikar",
+TableProperties		: "Tabelleginleikar",
+ImageProperties		: "Myndaeginleikar",
+FlashProperties		: "Flash eginleikar",
 
-AnchorProp			: "Eginleikar fyri staðsetingarpunkt",
-ButtonProp			: "Eginleikar fyri knapp",
-CheckboxProp		: "Eginleikar fyri avmerkingarboks",
-HiddenFieldProp		: "Eginleikar fyri goymdan teig",
-RadioButtonProp		: "Eginleikar fyri radioknapp",
-ImageButtonProp		: "Eginleikar fyri myndaknapp",
-TextFieldProp		: "Eginleikar fyri Tekstateig",
-SelectionFieldProp	: "Eginleikar fyri Valteig",
-TextareaProp		: "Eginleikar fyri Tekstaøki",
-FormProp			: "Eginleikar fyri form",
+AnchorProp			: "Eginleikar fyri marknastein",
+ButtonProp			: "Eginleikar fyri knøtt",
+CheckboxProp		: "Eginleikar fyri flugubein",
+HiddenFieldProp		: "Eginleikar fyri fjaldan teig",
+RadioButtonProp		: "Eginleikar fyri radioknøtt",
+ImageButtonProp		: "Eginleikar fyri myndaknøtt",
+TextFieldProp		: "Eginleikar fyri tekstteig",
+SelectionFieldProp	: "Eginleikar fyri valskrá",
+TextareaProp		: "Eginleikar fyri tekstumráði",
+FormProp			: "Eginleikar fyri Form",
 
-FontFormats			: "Normalt;Sniðgevið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",
+FontFormats			: "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "Viðgerir XHTML. Bíða...",
+ProcessingXHTML		: "XHTML verður viðgjørt. Bíða við...",
 Done				: "Liðugt",
-PasteWordConfirm	: "Teksturin, tú roynir at seta inn, sýnist at vera frá Word. Vilt tú reinsa tekstin, áðrenn hann verður settur inn?",
-NotCompatiblePaste	: "Hesin ordri er tøkur í Internet Explorer 5.5 og nýggjari. Vilt tú seta tekstin inn, uttan at reinsa hann?",
-UnknownToolbarItem	: "Ókendur lutur í amboðalinju \"%1\"",
-UnknownCommand		: "Kenni ikki ordra \"%1\"",
-NotImplemented		: "Ordrin er ikki gjørdur virkin",
-UnknownToolbarSet	: "Amboðalinjan \"%1\" finst ikki",
-NoActiveX			: "You 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
+PasteWordConfirm	: "Teksturin, royndur verður at seta inn, tykist at stava frá Word. Vilt tú reinsa tekstin, áðrenn hann verður settur inn?",
+NotCompatiblePaste	: "Hetta er bert tøkt í Internet Explorer 5.5 og nýggjari. Vilt tú seta tekstin inn kortini - óreinsaðan?",
+UnknownToolbarItem	: "Ókendur lutur í amboðsbjálkanum \"%1\"",
+UnknownCommand		: "Ókend kommando \"%1\"",
+NotImplemented		: "Hetta er ikki tøkt í hesi útgávuni",
+UnknownToolbarSet	: "Amboðsbjálkin \"%1\" finst ikki",
+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.",
 
 // Dialogs
-DlgBtnOK			: "OK",
-DlgBtnCancel		: "Angra",
-DlgBtnClose			: "Lukka",
-DlgBtnBrowseServer	: "Hyggja á servara",
-DlgAdvancedTag		: "Útvíðka",
-DlgOpOther			: "&lt;Annað&gt;",
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgBtnOK			: "Góðkent",
+DlgBtnCancel		: "Avlýst",
+DlgBtnClose			: "Lat aftur",
+DlgBtnBrowseServer	: "Ambætarakagi",
+DlgAdvancedTag		: "Fjølbroytt",
+DlgOpOther			: "<Annað>",
+DlgInfoTab			: "Upplýsingar",
+DlgAlertUrl			: "Vinarliga veit ein URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ikki sett&gt;",
+DlgGenNotSet		: "<ikki sett>",
 DlgGenId			: "Id",
-DlgGenLangDir		: "Tekstakós",
-DlgGenLangDirLtr	: "Vinstri móti høgri (LTR)",
-DlgGenLangDirRtl	: "Høgri móti vinstri (RTL)",
+DlgGenLangDir		: "Tekstkós",
+DlgGenLangDirLtr	: "Frá vinstru til høgru (LTR)",
+DlgGenLangDirRtl	: "Frá høgru til vinstru (RTL)",
 DlgGenLangCode		: "Málkoda",
-DlgGenAccessKey		: "Atgongdslykil",
+DlgGenAccessKey		: "Snarvegisknappur",
 DlgGenName			: "Navn",
-DlgGenTabIndex		: "Tabulator Indeks",
-DlgGenLongDescr		: "víðka frágreiðing",
-DlgGenClass			: "Typografiark",
-DlgGenTitle			: "Heiti",
-DlgGenContType		: "Innihaldsslag",
-DlgGenLinkCharset	: "Teknset",
-DlgGenStyle			: "Prentlist",
+DlgGenTabIndex		: "Inntriv indeks",
+DlgGenLongDescr		: "Víðkað URL frágreiðing",
+DlgGenClass			: "Typografi klassar",
+DlgGenTitle			: "Vegleiðandi heiti",
+DlgGenContType		: "Vegleiðandi innihaldsslag",
+DlgGenLinkCharset	: "Atknýtt teknsett",
+DlgGenStyle			: "Typografi",
 
 // Image Dialog
-DlgImgTitle			: "Mynd eginleikar",
-DlgImgInfoTab		: "Mynd info",
-DlgImgBtnUpload		: "Send til serveren",
+DlgImgTitle			: "Myndaeginleikar",
+DlgImgInfoTab		: "Myndaupplýsingar",
+DlgImgBtnUpload		: "Send til ambætaran",
 DlgImgURL			: "URL",
-DlgImgUpload		: "Upload",
-DlgImgAlt			: "Annar tekstur",
+DlgImgUpload		: "Send",
+DlgImgAlt			: "Alternativur tekstur",
 DlgImgWidth			: "Breidd",
 DlgImgHeight		: "Hædd",
-DlgImgLockRatio		: "Læs støddarlutfall",
-DlgBtnResetSize		: "Nulstilla stødd",
-DlgImgBorder		: "Ramma",
-DlgImgHSpace		: "HMargin",
-DlgImgVSpace		: "VMargin",
+DlgImgLockRatio		: "Læs lutfallið",
+DlgBtnResetSize		: "Upprunastødd",
+DlgImgBorder		: "Bordi",
+DlgImgHSpace		: "Høgri breddi",
+DlgImgVSpace		: "Vinstri breddi",
 DlgImgAlign			: "Justering",
 DlgImgAlignLeft		: "Vinstra",
 DlgImgAlignAbsBottom: "Abs botnur",
-DlgImgAlignAbsMiddle: "Abs Miðja",
-DlgImgAlignBaseline	: "Botnlinja",
+DlgImgAlignAbsMiddle: "Abs miðja",
+DlgImgAlignBaseline	: "Basislinja",
 DlgImgAlignBottom	: "Botnur",
 DlgImgAlignMiddle	: "Miðja",
 DlgImgAlignRight	: "Høgra",
-DlgImgAlignTextTop	: "Tekstur ovast",
+DlgImgAlignTextTop	: "Tekst toppur",
 DlgImgAlignTop		: "Ovast",
-DlgImgPreview		: "Vís dømi",
-DlgImgAlertUrl		: "Slá inn slóðina til myndina",
-DlgImgLinkTab		: "Leinkja",
+DlgImgPreview		: "Frumsýning",
+DlgImgAlertUrl		: "Rita slóðina til myndina",
+DlgImgLinkTab		: "Tilknýti",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "Flash eginleikar",
+DlgFlashChkPlay		: "Avspælingin byrjar sjálv",
+DlgFlashChkLoop		: "Endurspæl",
+DlgFlashChkMenu		: "Ger Flash skrá virkna",
+DlgFlashScale		: "Skalering",
+DlgFlashScaleAll	: "Vís alt",
+DlgFlashScaleNoBorder	: "Eingin bordi",
+DlgFlashScaleFit	: "Neyv skalering",
 
 // Link Dialog
-DlgLnkWindowTitle	: "Leinkja",
-DlgLnkInfoTab		: "Leinkju info",
+DlgLnkWindowTitle	: "Tilknýti",
+DlgLnkInfoTab		: "Tilknýtis upplýsingar",
 DlgLnkTargetTab		: "Mál",
 
-DlgLnkType			: "Leinkju slag",
+DlgLnkType			: "Tilknýtisslag",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Akker á hesari síðuni",
+DlgLnkTypeAnchor	: "Tilknýti til marknastein í tekstinum",
 DlgLnkTypeEMail		: "Teldupostur",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;onnur&gt;",
+DlgLnkProtoOther	: "<Annað>",
 DlgLnkURL			: "URL",
-DlgLnkAnchorSel		: "VEl eitt akker",
-DlgLnkAnchorByName	: "Eftir akker navni",
+DlgLnkAnchorSel		: "Vel ein marknastein",
+DlgLnkAnchorByName	: "Eftir navni á marknasteini",
 DlgLnkAnchorById	: "Eftir element Id",
-DlgLnkNoAnchors		: "&lt;Tað eru ongi akker tøk í hesum dokumentinum;",
-DlgLnkEMail			: "Teldupost Adresse",
+DlgLnkNoAnchors		: "(Eingir marknasteinar eru í hesum dokumentið)",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "Teldupost-adressa",
 DlgLnkEMailSubject	: "Evni",
-DlgLnkEMailBody		: "Boð",
-DlgLnkUpload		: "Upload",
-DlgLnkBtnUpload		: "Send til servaran",
+DlgLnkEMailBody		: "Breyðtekstur",
+DlgLnkUpload		: "Send til ambætaran",
+DlgLnkBtnUpload		: "Send til ambætaran",
 
 DlgLnkTarget		: "Mál",
-DlgLnkTargetFrame	: "&lt;ramma&gt;",
-DlgLnkTargetPopup	: "&lt;popup vindeyga&gt;",
-DlgLnkTargetBlank	: "Nytt vindeyga (_blank)",
-DlgLnkTargetParent	: "Omaná liggjandi vindeyga (_parent)",
-DlgLnkTargetSelf	: "Sama vindeyga (_self)",
-DlgLnkTargetTop		: "ovasta vindeyga (_top)",
-DlgLnkTargetFrameName	: "vísa vindeygas navn",
-DlgLnkPopWinName	: "Popup vindeygas navn",
-DlgLnkPopWinFeat	: "Popup vindeygas eginleikar",
-DlgLnkPopResize		: "Skalering",
-DlgLnkPopLocation	: "Lokationslinja",
-DlgLnkPopMenu		: "Menulinja",
-DlgLnkPopScroll		: "Scrollbars",
-DlgLnkPopStatus		: "Statuslinja",
-DlgLnkPopToolbar	: "Værktøjslinja",
+DlgLnkTargetFrame	: "<ramma>",
+DlgLnkTargetPopup	: "<popup vindeyga>",
+DlgLnkTargetBlank	: "Nýtt vindeyga (_blank)",
+DlgLnkTargetParent	: "Upphavliga vindeygað (_parent)",
+DlgLnkTargetSelf	: "Sama vindeygað (_self)",
+DlgLnkTargetTop		: "Alt vindeygað (_top)",
+DlgLnkTargetFrameName	: "Vís navn vindeygans",
+DlgLnkPopWinName	: "Popup vindeygans navn",
+DlgLnkPopWinFeat	: "Popup vindeygans víðkaðu eginleikar",
+DlgLnkPopResize		: "Kann broyta stødd",
+DlgLnkPopLocation	: "Adressulinja",
+DlgLnkPopMenu		: "Skrábjálki",
+DlgLnkPopScroll		: "Rullibjálki",
+DlgLnkPopStatus		: "Støðufrágreiðingarbjálki",
+DlgLnkPopToolbar	: "Amboðsbjálki",
 DlgLnkPopFullScrn	: "Fullur skermur (IE)",
-DlgLnkPopDependent	: "Bundin (Netscape)",
+DlgLnkPopDependent	: "Bundið (Netscape)",
 DlgLnkPopWidth		: "Breidd",
 DlgLnkPopHeight		: "Hædd",
-DlgLnkPopLeft		: "Positión frá vinstru",
-DlgLnkPopTop		: "Positión frá toppinum",
+DlgLnkPopLeft		: "Frástøða frá vinstru",
+DlgLnkPopTop		: "Frástøða frá íerva",
 
-DlnLnkMsgNoUrl		: "Inntasta leinkju URL",
-DlnLnkMsgNoEMail	: "Inntasta teldupost addressuna",
-DlnLnkMsgNoAnchor	: "Vel akker",
+DlnLnkMsgNoUrl		: "Vinarliga skriva tilknýti (URL)",
+DlnLnkMsgNoEMail	: "Vinarliga skriva teldupost-adressu",
+DlnLnkMsgNoAnchor	: "Vinarliga vel marknastein",
+DlnLnkMsgInvPopName	: "Popup navnið má byrja við bókstavi og má ikki hava millumrúm",
 
 // Color Dialog
-DlgColorTitle		: "vel farvu",
-DlgColorBtnClear	: "sletta alt",
-DlgColorHighlight	: "Markera",
-DlgColorSelected	: "valt",
+DlgColorTitle		: "Vel lit",
+DlgColorBtnClear	: "Strika alt",
+DlgColorHighlight	: "Framhevja",
+DlgColorSelected	: "Valt",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Innset ein smiley",
+DlgSmileyTitle		: "Vel Smiley",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "vel specialkarakter",
+DlgSpecialCharTitle	: "Vel sertekn",
 
 // Table Dialog
-DlgTableTitle		: "Tabel eginleikar",
-DlgTableRows		: "Rekkjur",
+DlgTableTitle		: "Eginleikar fyri tabell",
+DlgTableRows		: "Røðir",
 DlgTableColumns		: "Kolonnur",
-DlgTableBorder		: "Rammu stødd",
+DlgTableBorder		: "Bordabreidd",
 DlgTableAlign		: "Justering",
-DlgTableAlignNotSet	: "<Ikki sett>",
-DlgTableAlignLeft	: "Vinstrastilla",
-DlgTableAlignCenter	: "Miðseta",
-DlgTableAlignRight	: "Høgrastilla",
+DlgTableAlignNotSet	: "<Einki valt>",
+DlgTableAlignLeft	: "Vinstrasett",
+DlgTableAlignCenter	: "Miðsett",
+DlgTableAlignRight	: "Høgrasett",
 DlgTableWidth		: "Breidd",
 DlgTableWidthPx		: "pixels",
 DlgTableWidthPc		: "prosent",
 DlgTableHeight		: "Hædd",
-DlgTableCellSpace	: "Fjarstøða millum sellur",
-DlgTableCellPad		: "Sellu breddi",
-DlgTableCaption		: "Heiti",
+DlgTableCellSpace	: "Fjarstøða millum meskar",
+DlgTableCellPad		: "Meskubreddi",
+DlgTableCaption		: "Tabellfrágreiðing",
+DlgTableSummary		: "Samandráttur",
 
 // Table Cell Dialog
-DlgCellTitle		: "Sellu eginleikar",
+DlgCellTitle		: "Mesku eginleikar",
 DlgCellWidth		: "Breidd",
 DlgCellWidthPx		: "pixels",
 DlgCellWidthPc		: "prosent",
 DlgCellHeight		: "Hædd",
-DlgCellWordWrap		: "Orðbýti",
-DlgCellWordWrapNotSet	: "<Ikki sett>",
+DlgCellWordWrap		: "Orðkloyving",
+DlgCellWordWrapNotSet	: "<Einki valt>",
 DlgCellWordWrapYes	: "Ja",
-DlgCellWordWrapNo	: "Nej",
-DlgCellHorAlign		: "Horisontal justering",
-DlgCellHorAlignNotSet	: "<Ikke sat>",
-DlgCellHorAlignLeft	: "Vinstrastilla",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Vatnrøtt justering",
+DlgCellHorAlignNotSet	: "<Einki valt>",
+DlgCellHorAlignLeft	: "Vinstrasett",
 DlgCellHorAlignCenter	: "Miðsett",
-DlgCellHorAlignRight: "Høgrastilla",
-DlgCellVerAlign		: "Lodrøtt Justering",
+DlgCellHorAlignRight: "Høgrasett",
+DlgCellVerAlign		: "Lodrøtt justering",
 DlgCellVerAlignNotSet	: "<Ikki sett>",
 DlgCellVerAlignTop	: "Ovast",
-DlgCellVerAlignMiddle	: "Miðja",
+DlgCellVerAlignMiddle	: "Miðjan",
 DlgCellVerAlignBottom	: "Niðast",
-DlgCellVerAlignBaseline	: "Botnlinja",
-DlgCellRowSpan		: "Tal av rekkjum sellan spennur yvir",
-DlgCellCollSpan		: "Tal av talrøðum sellan spennur yvir",
-DlgCellBackColor	: "Bakgrundsfarva",
-DlgCellBorderColor	: "rammufarva",
+DlgCellVerAlignBaseline	: "Basislinja",
+DlgCellRowSpan		: "Røðir, meskin fevnir um",
+DlgCellCollSpan		: "Kolonnur, meskin fevnir um",
+DlgCellBackColor	: "Bakgrundslitur",
+DlgCellBorderColor	: "Litur á borda",
 DlgCellBtnSelect	: "Vel...",
 
 // Find Dialog
 DlgFindTitle		: "Finn",
 DlgFindFindBtn		: "Finn",
-DlgFindNotFoundMsg	: "Teksturin bleiv ikki funnin",
+DlgFindNotFoundMsg	: "Leititeksturin varð ikki funnin",
 
 // Replace Dialog
-DlgReplaceTitle			: "Set í staðin",
+DlgReplaceTitle			: "Yvirskriva",
 DlgReplaceFindLbl		: "Finn:",
-DlgReplaceReplaceLbl	: "Set í staðin við:",
-DlgReplaceCaseChk		: "Munur á stórum og smáðum stavum",
-DlgReplaceReplaceBtn	: "Set í staðin",
-DlgReplaceReplAllBtn	: "Skift alt út",
+DlgReplaceReplaceLbl	: "Yvirskriva við:",
+DlgReplaceCaseChk		: "Munur á stórum og smáðum bókstavum",
+DlgReplaceReplaceBtn	: "Yvirskriva",
+DlgReplaceReplAllBtn	: "Yvirskriva alt",
 DlgReplaceWordChk		: "Bert heil orð",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Leitarans trygdarinstillingar loyva ikki editorinum at innseta tekstin automatiskt. Brúka knappaborðið til at innseta tekstin (Ctrl+V).",
-PasteErrorCut	: "Leitarans trygdarinstillingar loyva ikki editorinum at klippa tekstin automatiskt. Brúka í staðin knappaborðið til at klippa tekstin (Ctrl+X).",
-PasteErrorCopy	: "Leitarans trygdarinstillingar loyva ikki editorinum at avrita tekstin automatiskt. Brúka í staðin knappaborðið til at avrita tekstin (Ctrl+V).",
+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		: "Seta inn som reinur tekstur",
-PasteFromWord	: "Seta inn fra Word",
+PasteAsText		: "Innrita som reinan tekst",
+PasteFromWord	: "Innrita fra Word",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>CTRL+V</strong>) og klikk á <strong>Góðtak</strong>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Forfjóna Font definitiónirnar",
+DlgPasteRemoveStyles	: "Strika Styles definitiónir",
+DlgPasteCleanBox		: "Reinskanarkassi",
 
-
 // Color Picker
-ColorAutomatic	: "Automatisk",
-ColorMoreColors	: "Fleiri farvur...",
+ColorAutomatic	: "Av sær sjálvum",
+ColorMoreColors	: "Fleiri litir...",
 
 // Document Properties
-DocProps		: "Dokument eginleikar",
+DocProps		: "Eginleikar fyri dokument",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Akker eginleikar",
-DlgAnchorName		: "Akker navn",
-DlgAnchorErrorName	: "Slá innn akker navn",
+DlgAnchorTitle		: "Eginleikar fyri marknastein",
+DlgAnchorName		: "Heiti marknasteinsins",
+DlgAnchorErrorName	: "Vinarliga rita marknasteinsins heiti",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Finnst ikki í orðabókini",
-DlgSpellChangeTo		: "broyta til",
-DlgSpellBtnIgnore		: "Ignorera",
-DlgSpellBtnIgnoreAll	: "Ignorera alt",
-DlgSpellBtnReplace		: "Skift út",
-DlgSpellBtnReplaceAll	: "Skift út alt",
-DlgSpellBtnUndo			: "Aftur",
+DlgSpellNotInDic		: "Finst ikki í orðabókini",
+DlgSpellChangeTo		: "Broyt til",
+DlgSpellBtnIgnore		: "Forfjóna",
+DlgSpellBtnIgnoreAll	: "Forfjóna alt",
+DlgSpellBtnReplace		: "Yvirskriva",
+DlgSpellBtnReplaceAll	: "Yvirskriva alt",
+DlgSpellBtnUndo			: "Angra",
 DlgSpellNoSuggestions	: "- Einki uppskot -",
-DlgSpellProgress		: "Stavarin arbeiðir...",
-DlgSpellNoMispell		: "Stavarain liðugur: Eingin feilur funnin",
-DlgSpellNoChanges		: "Stavarain liðugur: Einki orð broytt",
-DlgSpellOneChange		: "Stavarain liðugur: Eitt orð broytt",
-DlgSpellManyChanges		: "Stavarain liðugur: %1 orð broytt",
+DlgSpellProgress		: "Rættstavarin arbeiðir...",
+DlgSpellNoMispell		: "Rættstavarain liðugur: Eingin feilur funnin",
+DlgSpellNoChanges		: "Rættstavarain liðugur: Einki orð varð broytt",
+DlgSpellOneChange		: "Rættstavarain liðugur: Eitt orð er broytt",
+DlgSpellManyChanges		: "Rættstavarain liðugur: %1 orð broytt",
 
-IeSpellDownload			: "Stavarin ikki lagdur inn. vilt tú heinta hann nú?",
+IeSpellDownload			: "Rættstavarin er ikki tøkur í tekstviðgeranum. Vilt tú heinta hann nú?",
 
 // Button Dialog
-DlgButtonText	: "Tekstur (Virði)",
-DlgButtonType	: "Slag",
+DlgButtonText		: "Tekstur",
+DlgButtonType		: "Slag",
+DlgButtonTypeBtn	: "Knøttur",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstilla",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Navn",
 DlgCheckboxValue	: "Virði",
-DlgCheckboxSelected	: "Valgt",
+DlgCheckboxSelected	: "Valt",
 
 // Form Dialog
 DlgFormName		: "Navn",
-DlgFormAction	: "Gerð",
+DlgFormAction	: "Hending",
 DlgFormMethod	: "Háttur",
 
 // Select Field Dialog
 DlgSelectName		: "Navn",
 DlgSelectValue		: "Virði",
 DlgSelectSize		: "Stødd",
-DlgSelectLines		: "linjir",
-DlgSelectChkMulti	: "Loyv fleiri valmøguleikar",
-DlgSelectOpAvail	: "valmøguleikar",
+DlgSelectLines		: "Linjur",
+DlgSelectChkMulti	: "Loyv fleiri valmøguleikum samstundis",
+DlgSelectOpAvail	: "Tøkir møguleikar",
 DlgSelectOpText		: "Tekstur",
 DlgSelectOpValue	: "Virði",
 DlgSelectBtnAdd		: "Legg afturat",
 DlgSelectBtnModify	: "Broyt",
 DlgSelectBtnUp		: "Upp",
 DlgSelectBtnDown	: "Niður",
-DlgSelectBtnSetValue : "Set sum útvald",
-DlgSelectBtnDelete	: "Sletta",
+DlgSelectBtnSetValue : "Set sum valt virði",
+DlgSelectBtnDelete	: "Strika",
 
 // Textarea Dialog
 DlgTextareaName	: "Navn",
-DlgTextareaCols	: "talrøð",
-DlgTextareaRows	: "Rekkja",
+DlgTextareaCols	: "kolonnur",
+DlgTextareaRows	: "røðir",
 
 // Text Field Dialog
 DlgTextName			: "Navn",
 DlgTextValue		: "Virði",
-DlgTextCharWidth	: "Sjónligt tal av bókstavum",
-DlgTextMaxChars		: "Hægst loyvda tal av bókstavum",
+DlgTextCharWidth	: "Breidd (sjónlig tekn)",
+DlgTextMaxChars		: "Mest loyvdu tekn",
 DlgTextType			: "Slag",
 DlgTextTypeText		: "Tekstur",
-DlgTextTypePass		: "Koduorð",
+DlgTextTypePass		: "Loyniorð",
 
 // Hidden Field Dialog
 DlgHiddenName	: "Navn",
 DlgHiddenValue	: "Virði",
 
 // Bulleted List Dialog
-BulletedListProp	: "Punktteknsuppsetingar eginleikar",
-NumberedListProp	: "Taluppsetingar eginleikar",
+BulletedListProp	: "Eginleikar fyri punktmerktan lista",
+NumberedListProp	: "Eginleikar fyri talmerktan lista",
+DlgLstStart			: "Byrjan",
 DlgLstType			: "Slag",
 DlgLstTypeCircle	: "Sirkul",
-DlgLstTypeDisc		: "Disc",	//MISSING
-DlgLstTypeSquare	: "Fýrakantur",
+DlgLstTypeDisc		: "Fyltur sirkul",
+DlgLstTypeSquare	: "Fjórhyrningur",
 DlgLstTypeNumbers	: "Talmerkt (1, 2, 3)",
 DlgLstTypeLCase		: "Smáir bókstavir (a, b, c)",
 DlgLstTypeUCase		: "Stórir bókstavir (A, B, C)",
@@ -428,49 +446,59 @@
 // Document Properties Dialog
 DlgDocGeneralTab	: "Generelt",
 DlgDocBackTab		: "Bakgrund",
-DlgDocColorsTab		: "Farva og Breddin",
-DlgDocMetaTab		: "Meta Information",
+DlgDocColorsTab		: "Litir og breddar",
+DlgDocMetaTab		: "META-upplýsingar",
 
-DlgDocPageTitle		: "Síðu heiti",
-DlgDocLangDir		: "Mál",
+DlgDocPageTitle		: "Síðuheiti",
+DlgDocLangDir		: "Tekstkós",
 DlgDocLangDirLTR	: "Frá vinstru móti høgru (LTR)",
 DlgDocLangDirRTL	: "Frá høgru móti vinstru (RTL)",
-DlgDocLangCode		: "Landakoda",
-DlgDocCharSet		: "Karakter set kodu",
-DlgDocCharSetOther	: "Annar karakter set kodu",
+DlgDocLangCode		: "Málkoda",
+DlgDocCharSet		: "Teknsett koda",
+DlgDocCharSetCE		: "Miðeuropa",
+DlgDocCharSetCT		: "Kinesiskt traditionelt (Big5)",
+DlgDocCharSetCR		: "Cyrilliskt",
+DlgDocCharSetGR		: "Grikst",
+DlgDocCharSetJP		: "Japanskt",
+DlgDocCharSetKR		: "Koreanskt",
+DlgDocCharSetTR		: "Turkiskt",
+DlgDocCharSetUN		: "UNICODE (UTF-8)",
+DlgDocCharSetWE		: "Vestureuropa",
+DlgDocCharSetOther	: "Onnur teknsett koda",
 
-DlgDocDocType		: "Dokument slag kategori",
-DlgDocDocTypeOther	: "Annað dokument slag kategori",
-DlgDocIncXHTML		: "Inkludere XHTML deklartion",
-DlgDocBgColor		: "Bakgrundsfarva",
-DlgDocBgImage		: "Bakgrundsmynd URL",
-DlgDocBgNoScroll	: "Ikki scrollbar bakgrund",
+DlgDocDocType		: "Dokumentslag yvirskrift",
+DlgDocDocTypeOther	: "Annað dokumentslag yvirskrift",
+DlgDocIncXHTML		: "Viðfest XHTML deklaratiónir",
+DlgDocBgColor		: "Bakgrundslitur",
+DlgDocBgImage		: "Leið til bakgrundsmynd (URL)",
+DlgDocBgNoScroll	: "Læst bakgrund (rullar ikki)",
 DlgDocCText			: "Tekstur",
-DlgDocCLink			: "Leinkja",
-DlgDocCVisited		: "Vitja leinkja",
-DlgDocCActive		: "Aktiv leinkja",
-DlgDocMargins		: "Síðu breddi",
+DlgDocCLink			: "Tilknýti",
+DlgDocCVisited		: "Vitjaði tilknýti",
+DlgDocCActive		: "Virkin tilknýti",
+DlgDocMargins		: "Síðubreddar",
 DlgDocMaTop			: "Ovast",
 DlgDocMaLeft		: "Vinstra",
 DlgDocMaRight		: "Høgra",
 DlgDocMaBottom		: "Niðast",
-DlgDocMeIndex		: "Dokument index lyklaorð (komma sundurskilt)",
-DlgDocMeDescr		: "Dokument lýsing",
+DlgDocMeIndex		: "Dokument index lyklaorð (sundurbýtt við komma)",
+DlgDocMeDescr		: "Dokumentlýsing",
 DlgDocMeAuthor		: "Høvundur",
-DlgDocMeCopy		: "Copyright",
-DlgDocPreview		: "Vís",
+DlgDocMeCopy		: "Upphavsrættindi",
+DlgDocPreview		: "Frumsýning",
 
 // Templates Dialog
-Templates			: "Frymlar",
-DlgTemplatesTitle	: "Innihaldsfrymlar",
-DlgTemplatesSelMsg	: "Vel tann frymilin, sum skal opnast í editorinum<br>(Tað verður skriva útyvir núverandi innihald):",
-DlgTemplatesLoading	: "Heintar lista yvir frymlar. Vinarliga bíða...",
-DlgTemplatesNoTpl	: "(Ongin frymil er valdur)",
+Templates			: "Skabelónir",
+DlgTemplatesTitle	: "Innihaldsskabelónir",
+DlgTemplatesSelMsg	: "Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):",
+DlgTemplatesLoading	: "Heinti yvirlit yvir skabelónir. Vinarliga bíða við...",
+DlgTemplatesNoTpl	: "(Ongar skabelónir tøkar)",
+DlgTemplatesReplace	: "Yvirskriva núverandi innihald",
 
 // About Dialog
 DlgAboutAboutTab	: "Um",
-DlgAboutBrowserInfoTab	: "Browsara upplýsingar",
-DlgAboutVersion		: "versión",
-DlgAboutLicense		: "Loyvi undir treytum fyri GNU Lesser General Public License",
-DlgAboutInfo		: "Fleiri upplýsingar, far til"
-}
\ No newline at end of file
+DlgAboutBrowserInfoTab	: "Upplýsingar um alnótskagan",
+DlgAboutLicenseTab	: "License",
+DlgAboutVersion		: "version",
+DlgAboutInfo		: "Fyri fleiri upplýsingar, far til"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/fr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/fr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fr.js
- * 	French language file.
- * 
- * File Authors:
- * 		Hubert Garrido (liane at users.sourceforge.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * French language file.
  */
 
 var FCKLang =
@@ -27,7 +31,7 @@
 
 // Toolbar Items and Context Menu
 Save				: "Enregistrer",
-NewPage				: "Nouvelle Page",
+NewPage				: "Nouvelle page",
 Preview				: "Prévisualisation",
 Cut					: "Couper",
 Copy				: "Copier",
@@ -36,23 +40,23 @@
 PasteWord			: "Coller de Word",
 Print				: "Imprimer",
 SelectAll			: "Tout sélectionner",
-RemoveFormat		: "Supprimer Format",
+RemoveFormat		: "Supprimer le format",
 InsertLinkLbl		: "Lien",
-InsertLink			: "Insérer/Modifier Lien",
-RemoveLink			: "Supprimer Lien",
-Anchor				: "Insérer/Modifier Ancre",
+InsertLink			: "Insérer/modifier le lien",
+RemoveLink			: "Supprimer le lien",
+Anchor				: "Insérer/modifier l'ancre",
 InsertImageLbl		: "Image",
-InsertImage			: "Insérer/Modifier Image",
+InsertImage			: "Insérer/modifier l'image",
 InsertFlashLbl		: "Animation Flash",
-InsertFlash			: "Insérer/Modifier Animation Flash",
+InsertFlash			: "Insérer/modifier l'animation Flash",
 InsertTableLbl		: "Tableau",
-InsertTable			: "Insérer/Modifier Tableau",
+InsertTable			: "Insérer/modifier le tableau",
 InsertLineLbl		: "Séparateur",
-InsertLine			: "Insérer Séparateur",
-InsertSpecialCharLbl: "Caractère Spécial",
-InsertSpecialChar	: "Insérer Caractère Spécial",
+InsertLine			: "Insérer un séparateur",
+InsertSpecialCharLbl: "Caractères spéciaux",
+InsertSpecialChar	: "Insérer un caractère spécial",
 InsertSmileyLbl		: "Smiley",
-InsertSmiley		: "Insérer Smiley",
+InsertSmiley		: "Insérer un Smiley",
 About				: "A propos de FCKeditor",
 Bold				: "Gras",
 Italic				: "Italique",
@@ -60,69 +64,77 @@
 StrikeThrough		: "Barré",
 Subscript			: "Indice",
 Superscript			: "Exposant",
-LeftJustify			: "Aligné à Gauche",
+LeftJustify			: "Aligné à gauche",
 CenterJustify		: "Centré",
 RightJustify		: "Aligné à Droite",
-BlockJustify		: "Texte Justifié",
-DecreaseIndent		: "Diminuer le Retrait",
-IncreaseIndent		: "Augmenter le Retrait",
+BlockJustify		: "Texte justifié",
+DecreaseIndent		: "Diminuer le retrait",
+IncreaseIndent		: "Augmenter le retrait",
 Undo				: "Annuler",
 Redo				: "Refaire",
-NumberedListLbl		: "Liste Numérotée",
-NumberedList		: "Insérer/Supprimer Liste Numérotée",
+NumberedListLbl		: "Liste numérotée",
+NumberedList		: "Insérer/supprimer la liste numérotée",
 BulletedListLbl		: "Liste à puces",
-BulletedList		: "Insérer/Supprimer Liste à puces",
-ShowTableBorders	: "Afficher Bordures de Tableau",
-ShowDetails			: "Afficher Caractères Invisibles",
+BulletedList		: "Insérer/supprimer la liste à puces",
+ShowTableBorders	: "Afficher les bordures du tableau",
+ShowDetails			: "Afficher les caractères invisibles",
 Style				: "Style",
 FontFormat			: "Format",
 Font				: "Police",
 FontSize			: "Taille",
-TextColor			: "Couleur de Caractère",
-BGColor				: "Couleur de Fond",
+TextColor			: "Couleur de caractère",
+BGColor				: "Couleur de fond",
 Source				: "Source",
 Find				: "Chercher",
 Replace				: "Remplacer",
 SpellCheck			: "Orthographe",
-UniversalKeyboard	: "Clavier Universel",
+UniversalKeyboard	: "Clavier universel",
+PageBreakLbl		: "Saut de page",
+PageBreak			: "Insérer un saut de page",
 
 Form			: "Formulaire",
 Checkbox		: "Case à cocher",
-RadioButton		: "Bouton Radio",
-TextField		: "Champ Texte",
-Textarea		: "Zone Texte",
+RadioButton		: "Bouton radio",
+TextField		: "Champ texte",
+Textarea		: "Zone de texte",
 HiddenField		: "Champ caché",
 Button			: "Bouton",
-SelectionField	: "Liste/Menu",
-ImageButton		: "Bouton Image",
+SelectionField	: "Liste/menu",
+ImageButton		: "Bouton image",
 
+FitWindow		: "Edition pleine page",
+
 // Context Menu
-EditLink			: "Modifier Lien",
-InsertRow			: "Insérer une Ligne",
-DeleteRows			: "Supprimer des Lignes",
-InsertColumn		: "Insérer une Colonne",
-DeleteColumns		: "Supprimer des Colonnes",
-InsertCell			: "Insérer une Cellule",
-DeleteCells			: "Supprimer des Cellules",
-MergeCells			: "Fusionner les Cellules",
-SplitCell			: "Scinder les Cellules",
-CellProperties		: "Propriétés de Cellule",
-TableProperties		: "Propriétés de Tableau",
-ImageProperties		: "Propriétés d'Image",
-FlashProperties		: "Propriétés d'Animation Flash",
+EditLink			: "Modifier le lien",
+CellCM				: "Cellule",
+RowCM				: "Ligne",
+ColumnCM			: "Colonne",
+InsertRow			: "Insérer une ligne",
+DeleteRows			: "Supprimer des lignes",
+InsertColumn		: "Insérer une colonne",
+DeleteColumns		: "Supprimer des colonnes",
+InsertCell			: "Insérer une cellule",
+DeleteCells			: "Supprimer des cellules",
+MergeCells			: "Fusionner les cellules",
+SplitCell			: "Scinder les cellules",
+TableDelete			: "Supprimer le tableau",
+CellProperties		: "Propriétés de cellule",
+TableProperties		: "Propriétés du tableau",
+ImageProperties		: "Propriétés de l'image",
+FlashProperties		: "Propriétés de l'animation Flash",
 
-AnchorProp			: "Propriétés d'Ancre",
-ButtonProp			: "Propriétés de Bouton",
-CheckboxProp		: "Propriétés de Case à Cocher",
-HiddenFieldProp		: "Propriétés de Champ Caché",
-RadioButtonProp		: "Propriétés de Bouton Radio",
-ImageButtonProp		: "Propriétés de Bouton Image",
-TextFieldProp		: "Propriétés de Champ Texte",
-SelectionFieldProp	: "Propriétés de Liste/Menu",
-TextareaProp		: "Propriétés de Zone Texte",
-FormProp			: "Propriétés de Formulaire",
+AnchorProp			: "Propriétés de l'ancre",
+ButtonProp			: "Propriétés du bouton",
+CheckboxProp		: "Propriétés de la case à cocher",
+HiddenFieldProp		: "Propriétés du champ caché",
+RadioButtonProp		: "Propriétés du bouton radio",
+ImageButtonProp		: "Propriétés du bouton image",
+TextFieldProp		: "Propriétés du champ texte",
+SelectionFieldProp	: "Propriétés de la liste/du menu",
+TextareaProp		: "Propriétés de la zone de texte",
+FormProp			: "Propriétés du formulaire",
 
-FontFormats			: "Normal;Formatted;Address;Titre 1;Titre 2;Titre 3;Titre 4;Titre 5;Titre 6",
+FontFormats			: "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Calcul XHTML. Veuillez patienter...",
@@ -133,49 +145,51 @@
 UnknownCommand		: "Nom de commande inconnu \"%1\"",
 NotImplemented		: "Commande non encore écrite",
 UnknownToolbarSet	: "La barre d'outils \"%1\" n'existe pas",
-NoActiveX			: "You 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
+NoActiveX			: "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.",
+BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.",
+DialogBlocked		: "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.",
 
 // Dialogs
 DlgBtnOK			: "OK",
 DlgBtnCancel		: "Annuler",
 DlgBtnClose			: "Fermer",
-DlgBtnBrowseServer	: "Parcourir le Serveur",
+DlgBtnBrowseServer	: "Parcourir le serveur",
 DlgAdvancedTag		: "Avancé",
-DlgOpOther			: "&lt;Autre&gt;",
+DlgOpOther			: "<Autre>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Veuillez saisir l'URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;Par Défaut&gt;",
+DlgGenNotSet		: "<Par défaut>",
 DlgGenId			: "Id",
-DlgGenLangDir		: "Sens d'Ecriture",
-DlgGenLangDirLtr	: "Gauche vers Droite (LTR)",
-DlgGenLangDirRtl	: "Droite vers Gauche (RTL)",
-DlgGenLangCode		: "Code Langue",
-DlgGenAccessKey		: "Equivalent Clavier",
+DlgGenLangDir		: "Sens d'écriture",
+DlgGenLangDirLtr	: "De gauche à droite (LTR)",
+DlgGenLangDirRtl	: "De droite à gauche (RTL)",
+DlgGenLangCode		: "Code langue",
+DlgGenAccessKey		: "Equivalent clavier",
 DlgGenName			: "Nom",
-DlgGenTabIndex		: "Ordre de Tabulation",
-DlgGenLongDescr		: "URL de Description Longue",
-DlgGenClass			: "Classes de Feuilles de Style",
-DlgGenTitle			: "Titre Indicatif",
-DlgGenContType		: "Type de Contenu Indicatif",
-DlgGenLinkCharset	: "Encodage de Caractère de la cible",
+DlgGenTabIndex		: "Ordre de tabulation",
+DlgGenLongDescr		: "URL de description longue",
+DlgGenClass			: "Classes de feuilles de style",
+DlgGenTitle			: "Titre",
+DlgGenContType		: "Type de contenu",
+DlgGenLinkCharset	: "Encodage de caractère",
 DlgGenStyle			: "Style",
 
 // Image Dialog
-DlgImgTitle			: "Propriétés d'Image",
-DlgImgInfoTab		: "Informations sur l'Image",
-DlgImgBtnUpload		: "Envoyer au Serveur",
+DlgImgTitle			: "Propriétés de l'image",
+DlgImgInfoTab		: "Informations sur l'image",
+DlgImgBtnUpload		: "Envoyer sur le serveur",
 DlgImgURL			: "URL",
-DlgImgUpload		: "Upload",
-DlgImgAlt			: "Texte de Remplacement",
+DlgImgUpload		: "Télécharger",
+DlgImgAlt			: "Texte de remplacement",
 DlgImgWidth			: "Largeur",
 DlgImgHeight		: "Hauteur",
-DlgImgLockRatio		: "Garder proportions",
-DlgBtnResetSize		: "Taille Originale",
+DlgImgLockRatio		: "Garder les proportions",
+DlgBtnResetSize		: "Taille originale",
 DlgImgBorder		: "Bordure",
-DlgImgHSpace		: "HSpace",
-DlgImgVSpace		: "VSpace",
+DlgImgHSpace		: "Espacement horizontal",
+DlgImgVSpace		: "Espacement vertical",
 DlgImgAlign			: "Alignement",
 DlgImgAlignLeft		: "Gauche",
 DlgImgAlignAbsBottom: "Abs Bas",
@@ -191,83 +205,84 @@
 DlgImgLinkTab		: "Lien",
 
 // Flash Dialog
-DlgFlashTitle		: "Propriétés d'animation Flash",
+DlgFlashTitle		: "Propriétés de l'animation Flash",
 DlgFlashChkPlay		: "Lecture automatique",
 DlgFlashChkLoop		: "Boucle",
-DlgFlashChkMenu		: "Activer menu Flash",
+DlgFlashChkMenu		: "Activer le menu Flash",
 DlgFlashScale		: "Affichage",
-DlgFlashScaleAll	: "Par défault (tout montrer)",
-DlgFlashScaleNoBorder	: "Sans Bordure",
-DlgFlashScaleFit	: "Ajuster aux Dimensions",
+DlgFlashScaleAll	: "Par défaut (tout montrer)",
+DlgFlashScaleNoBorder	: "Sans bordure",
+DlgFlashScaleFit	: "Ajuster aux dimensions",
 
 // Link Dialog
-DlgLnkWindowTitle	: "Propriétés de Lien",
-DlgLnkInfoTab		: "Informations sur le Lien",
+DlgLnkWindowTitle	: "Propriétés du lien",
+DlgLnkInfoTab		: "Informations sur le lien",
 DlgLnkTargetTab		: "Destination",
 
-DlgLnkType			: "Type de Lien",
+DlgLnkType			: "Type de lien",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Ancre dans cette page",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocole",
-DlgLnkProtoOther	: "&lt;autre&gt;",
+DlgLnkProtoOther	: "<autre>",
 DlgLnkURL			: "URL",
-DlgLnkAnchorSel		: "Sélectionner une Ancre",
-DlgLnkAnchorByName	: "Par Nom d'Ancre",
-DlgLnkAnchorById	: "Par Id d'Elément",
-DlgLnkNoAnchors		: "&lt;Pas d'ancre disponible dans le document&gt;",
+DlgLnkAnchorSel		: "Sélectionner une ancre",
+DlgLnkAnchorByName	: "Par nom",
+DlgLnkAnchorById	: "Par id",
+DlgLnkNoAnchors		: "<Pas d'ancre disponible dans le document>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Adresse E-Mail",
-DlgLnkEMailSubject	: "Sujet du Message",
-DlgLnkEMailBody		: "Corps du Message",
-DlgLnkUpload		: "Upload",
-DlgLnkBtnUpload		: "Envoyer au Serveur",
+DlgLnkEMailSubject	: "Sujet du message",
+DlgLnkEMailBody		: "Corps du message",
+DlgLnkUpload		: "Télécharger",
+DlgLnkBtnUpload		: "Envoyer sur le serveur",
 
 DlgLnkTarget		: "Destination",
-DlgLnkTargetFrame	: "&lt;cadre&gt;",
-DlgLnkTargetPopup	: "&lt;fenêtre popup&gt;",
-DlgLnkTargetBlank	: "Nouvelle Fenêtre (_blank)",
-DlgLnkTargetParent	: "Fenêtre Mère (_parent)",
-DlgLnkTargetSelf	: "Même Fenêtre (_self)",
-DlgLnkTargetTop		: "Fenêtre Supérieure (_top)",
-DlgLnkTargetFrameName	: "Nom du Cadre de Destination",
-DlgLnkPopWinName	: "Nom de la Fenêtre Popup",
-DlgLnkPopWinFeat	: "Caractéristiques de la Fenêtre Popup",
-DlgLnkPopResize		: "Taille Modifiable",
-DlgLnkPopLocation	: "Barre d'Adresses",
-DlgLnkPopMenu		: "Barre de Menu",
-DlgLnkPopScroll		: "Barres de Défilement",
-DlgLnkPopStatus		: "Barre d'Etat",
-DlgLnkPopToolbar	: "Barre d'Outils",
-DlgLnkPopFullScrn	: "Plein Ecran (IE)",
+DlgLnkTargetFrame	: "<cadre>",
+DlgLnkTargetPopup	: "<fenêtre popup>",
+DlgLnkTargetBlank	: "Nouvelle fenêtre (_blank)",
+DlgLnkTargetParent	: "Fenêtre mère (_parent)",
+DlgLnkTargetSelf	: "Même fenêtre (_self)",
+DlgLnkTargetTop		: "Fenêtre supérieure (_top)",
+DlgLnkTargetFrameName	: "Nom du cadre de destination",
+DlgLnkPopWinName	: "Nom de la fenêtre popup",
+DlgLnkPopWinFeat	: "Caractéristiques de la fenêtre popup",
+DlgLnkPopResize		: "Taille modifiable",
+DlgLnkPopLocation	: "Barre d'adresses",
+DlgLnkPopMenu		: "Barre de menu",
+DlgLnkPopScroll		: "Barres de défilement",
+DlgLnkPopStatus		: "Barre d'état",
+DlgLnkPopToolbar	: "Barre d'outils",
+DlgLnkPopFullScrn	: "Plein écran (IE)",
 DlgLnkPopDependent	: "Dépendante (Netscape)",
 DlgLnkPopWidth		: "Largeur",
 DlgLnkPopHeight		: "Hauteur",
-DlgLnkPopLeft		: "Position Gauche",
-DlgLnkPopTop		: "Position Haut",
+DlgLnkPopLeft		: "Position à partir de la gauche",
+DlgLnkPopTop		: "Position à partir du haut",
 
 DlnLnkMsgNoUrl		: "Veuillez saisir l'URL",
 DlnLnkMsgNoEMail	: "Veuillez saisir l'adresse e-mail",
 DlnLnkMsgNoAnchor	: "Veuillez sélectionner une ancre",
+DlnLnkMsgInvPopName	: "Le nom de la fenêtre popup doit commencer par une lettre et ne doit pas contenir d'espace",
 
 // Color Dialog
 DlgColorTitle		: "Sélectionner",
 DlgColorBtnClear	: "Effacer",
-DlgColorHighlight	: "Highlight",
+DlgColorHighlight	: "Prévisualisation",
 DlgColorSelected	: "Sélectionné",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Insérer Smiley",
+DlgSmileyTitle		: "Insérer un Smiley",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Insérer Caractère Spécial",
+DlgSpecialCharTitle	: "Insérer un caractère spécial",
 
 // Table Dialog
-DlgTableTitle		: "Propriétés de Tableau",
+DlgTableTitle		: "Propriétés du tableau",
 DlgTableRows		: "Lignes",
 DlgTableColumns		: "Colonnes",
 DlgTableBorder		: "Bordure",
 DlgTableAlign		: "Alignement",
-DlgTableAlignNotSet	: "<Par Défaut>",
+DlgTableAlignNotSet	: "<Par défaut>",
 DlgTableAlignLeft	: "Gauche",
 DlgTableAlignCenter	: "Centré",
 DlgTableAlignRight	: "Droite",
@@ -278,30 +293,31 @@
 DlgTableCellSpace	: "Espacement",
 DlgTableCellPad		: "Contour",
 DlgTableCaption		: "Titre",
+DlgTableSummary		: "Résumé",
 
 // Table Cell Dialog
-DlgCellTitle		: "Propriétés de cellule",
+DlgCellTitle		: "Propriétés de la cellule",
 DlgCellWidth		: "Largeur",
 DlgCellWidthPx		: "pixels",
 DlgCellWidthPc		: "pourcentage",
 DlgCellHeight		: "Hauteur",
 DlgCellWordWrap		: "Retour à la ligne",
-DlgCellWordWrapNotSet	: "<Par Défaut>",
+DlgCellWordWrapNotSet	: "<Par défaut>",
 DlgCellWordWrapYes	: "Oui",
 DlgCellWordWrapNo	: "Non",
-DlgCellHorAlign		: "Alignement Horizontal",
-DlgCellHorAlignNotSet	: "<Par Défaut>",
+DlgCellHorAlign		: "Alignement horizontal",
+DlgCellHorAlignNotSet	: "<Par défaut>",
 DlgCellHorAlignLeft	: "Gauche",
 DlgCellHorAlignCenter	: "Centré",
 DlgCellHorAlignRight: "Droite",
-DlgCellVerAlign		: "Alignement Vertical",
-DlgCellVerAlignNotSet	: "<Par Défaut>",
+DlgCellVerAlign		: "Alignement vertical",
+DlgCellVerAlignNotSet	: "<Par défaut>",
 DlgCellVerAlignTop	: "Haut",
 DlgCellVerAlignMiddle	: "Milieu",
 DlgCellVerAlignBottom	: "Bas",
 DlgCellVerAlignBaseline	: "Bas du texte",
-DlgCellRowSpan		: "Lignes Fusionnées",
-DlgCellCollSpan		: "Colonnes Fusionnées",
+DlgCellRowSpan		: "Lignes fusionnées",
+DlgCellCollSpan		: "Colonnes fusionnées",
 DlgCellBackColor	: "Fond",
 DlgCellBorderColor	: "Bordure",
 DlgCellBtnSelect	: "Choisir...",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Mot entier",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de coller automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+V).",
 PasteErrorCut	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).",
 PasteErrorCopy	: "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).",
 
@@ -329,30 +344,30 @@
 PasteFromWord	: "Coller à partir de Word",
 
 DlgPasteMsg2	: "Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et cliquez sur <STRONG>OK</STRONG>.",
-DlgPasteIgnoreFont		: "Ignorer les Polices de Caractères",
-DlgPasteRemoveStyles	: "Supprimer les Styles",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignorer les polices de caractères",
+DlgPasteRemoveStyles	: "Supprimer les styles",
 DlgPasteCleanBox		: "Effacer le contenu",
 
-
 // Color Picker
 ColorAutomatic	: "Automatique",
-ColorMoreColors	: "Plus de Couleurs...",
+ColorMoreColors	: "Plus de couleurs...",
 
 // Document Properties
-DocProps		: "Propriétés du Document",
+DocProps		: "Propriétés du document",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Propriétés de l'Ancre",
-DlgAnchorName		: "Nom de l'Ancre",
+DlgAnchorTitle		: "Propriétés de l'ancre",
+DlgAnchorName		: "Nom de l'ancre",
 DlgAnchorErrorName	: "Veuillez saisir le nom de l'ancre",
 
 // Speller Pages Dialog
 DlgSpellNotInDic		: "Pas dans le dictionnaire",
 DlgSpellChangeTo		: "Changer en",
 DlgSpellBtnIgnore		: "Ignorer",
-DlgSpellBtnIgnoreAll	: "Ignorer Tout",
+DlgSpellBtnIgnoreAll	: "Ignorer tout",
 DlgSpellBtnReplace		: "Remplacer",
-DlgSpellBtnReplaceAll	: "Remplacer Tout",
+DlgSpellBtnReplaceAll	: "Remplacer tout",
 DlgSpellBtnUndo			: "Annuler",
 DlgSpellNoSuggestions	: "- Aucune suggestion -",
 DlgSpellProgress		: "Vérification d'orthographe en cours...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Le Correcteur n'est pas installé. Souhaitez-vous le télécharger maintenant?",
 
 // Button Dialog
-DlgButtonText	: "Texte (Valeur)",
-DlgButtonType	: "Type",
+DlgButtonText		: "Texte (valeur)",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Bouton",
+DlgButtonTypeSbm	: "Envoyer",
+DlgButtonTypeRst	: "Réinitialiser",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nom",
@@ -383,7 +401,7 @@
 DlgSelectSize		: "Taille",
 DlgSelectLines		: "lignes",
 DlgSelectChkMulti	: "Sélection multiple",
-DlgSelectOpAvail	: "Options Disponibles",
+DlgSelectOpAvail	: "Options disponibles",
 DlgSelectOpText		: "Texte",
 DlgSelectOpValue	: "Valeur",
 DlgSelectBtnAdd		: "Ajouter",
@@ -401,59 +419,69 @@
 // Text Field Dialog
 DlgTextName			: "Nom",
 DlgTextValue		: "Valeur",
-DlgTextCharWidth	: "Largeur en Caractères",
-DlgTextMaxChars		: "Nombre Maximum de Caractères",
+DlgTextCharWidth	: "Largeur en caractères",
+DlgTextMaxChars		: "Nombre maximum de caractères",
 DlgTextType			: "Type",
 DlgTextTypeText		: "Texte",
-DlgTextTypePass		: "Mot de Passe",
+DlgTextTypePass		: "Mot de passe",
 
 // Hidden Field Dialog
 DlgHiddenName	: "Nom",
 DlgHiddenValue	: "Valeur",
 
 // Bulleted List Dialog
-BulletedListProp	: "Propriétés de Liste à puces",
-NumberedListProp	: "Propriétés de Numérotée",
+BulletedListProp	: "Propriétés de liste à puces",
+NumberedListProp	: "Propriétés de liste numérotée",
+DlgLstStart			: "Début",
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Cercle",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disque",
 DlgLstTypeSquare	: "Carré",
 DlgLstTypeNumbers	: "Nombres (1, 2, 3)",
-DlgLstTypeLCase		: "Lettres Minuscules (a, b, c)",
-DlgLstTypeUCase		: "Lettres Majuscules (A, B, C)",
-DlgLstTypeSRoman	: "Chiffres Romains Minuscules (i, ii, iii)",
-DlgLstTypeLRoman	: "Chiffres Romains Majuscules (I, II, III)",
+DlgLstTypeLCase		: "Lettres minuscules (a, b, c)",
+DlgLstTypeUCase		: "Lettres majuscules (A, B, C)",
+DlgLstTypeSRoman	: "Chiffres romains minuscules (i, ii, iii)",
+DlgLstTypeLRoman	: "Chiffres romains majuscules (I, II, III)",
 
 // Document Properties Dialog
 DlgDocGeneralTab	: "Général",
 DlgDocBackTab		: "Fond",
-DlgDocColorsTab		: "Couleurs et Marges",
+DlgDocColorsTab		: "Couleurs et marges",
 DlgDocMetaTab		: "Métadonnées",
 
-DlgDocPageTitle		: "Titre de la Page",
-DlgDocLangDir		: "Sens d'Ecriture",
-DlgDocLangDirLTR	: "Gauche vers Droite (LTR)",
-DlgDocLangDirRTL	: "Droite vers Gauche (RTL)",
-DlgDocLangCode		: "Code Langue",
-DlgDocCharSet		: "Encodage de Caractère",
-DlgDocCharSetOther	: "Autre Encodage de Caractère",
+DlgDocPageTitle		: "Titre de la page",
+DlgDocLangDir		: "Sens d'écriture",
+DlgDocLangDirLTR	: "De la gauche vers la droite (LTR)",
+DlgDocLangDirRTL	: "De la droite vers la gauche (RTL)",
+DlgDocLangCode		: "Code langue",
+DlgDocCharSet		: "Encodage de caractère",
+DlgDocCharSetCE		: "Europe Centrale",
+DlgDocCharSetCT		: "Chinois Traditionnel (Big5)",
+DlgDocCharSetCR		: "Cyrillique",
+DlgDocCharSetGR		: "Grec",
+DlgDocCharSetJP		: "Japanais",
+DlgDocCharSetKR		: "Coréen",
+DlgDocCharSetTR		: "Turc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Occidental",
+DlgDocCharSetOther	: "Autre encodage de caractère",
 
-DlgDocDocType		: "Type de Document",
-DlgDocDocTypeOther	: "Autre Type de Document",
+DlgDocDocType		: "Type de document",
+DlgDocDocTypeOther	: "Autre type de document",
 DlgDocIncXHTML		: "Inclure les déclarations XHTML",
-DlgDocBgColor		: "Couleur de Fond",
-DlgDocBgImage		: "Image de Fond",
+DlgDocBgColor		: "Couleur de fond",
+DlgDocBgImage		: "Image de fond",
 DlgDocBgNoScroll	: "Image fixe sans défilement",
 DlgDocCText			: "Texte",
 DlgDocCLink			: "Lien",
-DlgDocCVisited		: "Lien Visité",
-DlgDocCActive		: "Lien Activé",
+DlgDocCVisited		: "Lien visité",
+DlgDocCActive		: "Lien activé",
 DlgDocMargins		: "Marges",
 DlgDocMaTop			: "Haut",
 DlgDocMaLeft		: "Gauche",
 DlgDocMaRight		: "Droite",
 DlgDocMaBottom		: "Bas",
-DlgDocMeIndex		: "Mots Clés (séparés par des virgules)",
+DlgDocMeIndex		: "Mots-clés (séparés par des virgules)",
 DlgDocMeDescr		: "Description",
 DlgDocMeAuthor		: "Auteur",
 DlgDocMeCopy		: "Copyright",
@@ -461,15 +489,16 @@
 
 // Templates Dialog
 Templates			: "Modèles",
-DlgTemplatesTitle	: "Modèles de Contenu",
+DlgTemplatesTitle	: "Modèles de contenu",
 DlgTemplatesSelMsg	: "Veuillez sélectionner le modèle à ouvrir dans l'éditeur<br>(le contenu actuel sera remplacé):",
 DlgTemplatesLoading	: "Chargement de la liste des modèles. Veuillez patienter...",
 DlgTemplatesNoTpl	: "(Aucun modèle disponible)",
+DlgTemplatesReplace	: "Remplacer tout le contenu",
 
 // About Dialog
 DlgAboutAboutTab	: "A propos de",
 DlgAboutBrowserInfoTab	: "Navigateur",
+DlgAboutLicenseTab	: "License",
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "License selon les termes de GNU Lesser General Public License",
 DlgAboutInfo		: "Pour plus d'informations, aller à"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/gl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/gl.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/gl.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: gl.js
- * 	Galician language file.
- * 
- * File Authors:
- * 		Fernando Riveiro Lopez
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Galician language file.
  */
 
 var FCKLang =
@@ -72,7 +76,7 @@
 NumberedList		: "Inserir/Eliminar Lista Numerada",
 BulletedListLbl		: "Marcas",
 BulletedList		: "Inserir/Eliminar Marcas",
-ShowTableBorders	: "Mostrar Bordes das Taboas",
+ShowTableBorders	: "Mostrar Bordes das Táboas",
 ShowDetails			: "Mostrar Marcas Parágrafo",
 Style				: "Estilo",
 FontFormat			: "Formato",
@@ -85,6 +89,8 @@
 Replace				: "Substituir",
 SpellCheck			: "Corrección Ortográfica",
 UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Salto de Páxina",
+PageBreak			: "Inserir Salto de Páxina",
 
 Form			: "Formulario",
 Checkbox		: "Cadro de Verificación",
@@ -96,8 +102,13 @@
 SelectionField	: "Campo de Selección",
 ImageButton		: "Botón de Imaxe",
 
+FitWindow		: "Maximizar o tamaño do editor",
+
 // Context Menu
 EditLink			: "Editar Ligazón",
+CellCM				: "Cela",
+RowCM				: "Fila",
+ColumnCM			: "Columna",
 InsertRow			: "Inserir Fila",
 DeleteRows			: "Borrar Filas",
 InsertColumn		: "Inserir Columna",
@@ -106,8 +117,9 @@
 DeleteCells			: "Borrar Cela",
 MergeCells			: "Unir Celas",
 SplitCell			: "Partir Celas",
+TableDelete			: "Borrar Táboa",
 CellProperties		: "Propriedades da Cela",
-TableProperties		: "Propriedades da Taboa",
+TableProperties		: "Propriedades da Táboa",
 ImageProperties		: "Propriedades Imaxe",
 FlashProperties		: "Propriedades Flash",
 
@@ -122,7 +134,7 @@
 TextareaProp		: "Propriedades da Área de Texto",
 FormProp			: "Propriedades do Formulario",
 
-FontFormats			: "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Procesando XHTML. Por facor, agarde...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nome de comando descoñecido \"%1\"",
 NotImplemented		: "Comando non implementado",
 UnknownToolbarSet	: "O conxunto de ferramentas \"%1\" non existe",
-NoActiveX			: "You 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
+NoActiveX			: "As opcións de seguridade do seu navegador poderían limitar algunha das características de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan características e experimentar erros",
+BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
+DialogBlocked		: "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Pechar",
 DlgBtnBrowseServer	: "Navegar no Servidor",
 DlgAdvancedTag		: "Advanzado",
-DlgOpOther			: "&lt;Outro&gt;",
+DlgOpOther			: "<Outro>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Por favor, insira a URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;non definido&gt;",
+DlgGenNotSet		: "<non definido>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Orientación do Idioma",
 DlgGenLangDirLtr	: "Esquerda a Dereita (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Referencia nesta páxina",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocolo",
-DlgLnkProtoOther	: "&lt;outro&gt;",
+DlgLnkProtoOther	: "<outro>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Seleccionar unha Referencia",
 DlgLnkAnchorByName	: "Por Nome de Referencia",
 DlgLnkAnchorById	: "Por Element Id",
-DlgLnkNoAnchors		: "&lt;Non hai referencias disponibles no documento&gt;",
+DlgLnkNoAnchors		: "<Non hai referencias disponibles no documento>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Enderezo de E-Mail",
 DlgLnkEMailSubject	: "Asunto do Mensaxe",
 DlgLnkEMailBody		: "Corpo do Mensaxe",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Enviar ó servidor",
 
 DlgLnkTarget		: "Destino",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;Xanela Emerxente&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<Xanela Emerxente>",
 DlgLnkTargetBlank	: "Nova Xanela (_blank)",
 DlgLnkTargetParent	: "Xanela Pai (_parent)",
 DlgLnkTargetSelf	: "Mesma Xanela (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Por favor, escriba a ligazón URL",
 DlnLnkMsgNoEMail	: "Por favor, escriba o enderezo de e-mail",
 DlnLnkMsgNoAnchor	: "Por favor, seleccione un destino",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Seleccionar Color",
@@ -262,7 +277,7 @@
 DlgSpecialCharTitle	: "Seleccione Caracter Especial",
 
 // Table Dialog
-DlgTableTitle		: "Propiedades da Taboa",
+DlgTableTitle		: "Propiedades da Táboa",
 DlgTableRows		: "Filas",
 DlgTableColumns		: "Columnas",
 DlgTableBorder		: "Tamaño do Borde",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Marxe entre Celas",
 DlgTableCellPad		: "Marxe interior",
 DlgTableCaption		: "Título",
+DlgTableSummary		: "Sumario",
 
 // Table Cell Dialog
 DlgCellTitle		: "Propriedades da Cela",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "percent",
 DlgCellHeight		: "Altura",
 DlgCellWordWrap		: "Axustar Liñas",
-DlgCellWordWrapNotSet	: "&lt;Non Definido&gt;",
+DlgCellWordWrapNotSet	: "<Non Definido>",
 DlgCellWordWrapYes	: "Si",
 DlgCellWordWrapNo	: "Non",
 DlgCellHorAlign		: "Aliñamento Horizontal",
-DlgCellHorAlignNotSet	: "&lt;Non definido&gt;",
+DlgCellHorAlignNotSet	: "<Non definido>",
 DlgCellHorAlignLeft	: "Esquerda",
 DlgCellHorAlignCenter	: "Centro",
 DlgCellHorAlignRight: "Dereita",
 DlgCellVerAlign		: "Aliñamento Vertical",
-DlgCellVerAlignNotSet	: "&lt;Non definido&gt;",
+DlgCellVerAlignNotSet	: "<Non definido>",
 DlgCellVerAlignTop	: "Arriba",
 DlgCellVerAlignMiddle	: "Medio",
 DlgCellVerAlignBottom	: "Abaixo",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Coincidir con toda a palabra",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de pegado. Por favor, use o teclado para iso (Ctrl+V).",
 PasteErrorCut	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).",
 PasteErrorCopy	: "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Pegar dende Word",
 
 DlgPasteMsg2	: "Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorar as definicións de Tipografía",
 DlgPasteRemoveStyles	: "Eliminar as definicións de Estilos",
 DlgPasteCleanBox		: "Limpar o Cadro",
 
-
 // Color Picker
 ColorAutomatic	: "Automático",
 ColorMoreColors	: "Máis Cores...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "O corrector ortográfico non está instalado. ¿Quere descargalo agora?",
 
 // Button Dialog
-DlgButtonText	: "Texto (Valor)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nome",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Propriedades das Marcas",
 NumberedListProp	: "Propriedades da Lista de Numeración",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Círculo",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disco",
 DlgLstTypeSquare	: "Cuadrado",
 DlgLstTypeNumbers	: "Números (1, 2, 3)",
 DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Dereita a Esquerda (RTL)",
 DlgDocLangCode		: "Código de Idioma",
 DlgDocCharSet		: "Codificación do Xogo de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Outra Codificación do Xogo de Caracteres",
 
 DlgDocDocType		: "Encabezado do Tipo de Documento",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):",
 DlgTemplatesLoading	: "Cargando listado de plantillas. Por favor, espere...",
 DlgTemplatesNoTpl	: "(Non hai plantillas definidas)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Acerca de",
 DlgAboutBrowserInfoTab	: "Información do Navegador",
+DlgAboutLicenseTab	: "Licencia",
 DlgAboutVersion		: "versión",
-DlgAboutLicense		: "Licencia concedida baixo os termos da GNU Lesser General Public License",
 DlgAboutInfo		: "Para máis información visitar:"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/he.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/he.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/he.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: he.js
- * 	Hebrew language file.
- * 
- * File Authors:
- * 		Tamir Mordo (tamir at tetitu.co.il)
- * 		Ophir Radnitz (ophir at liqweed.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hebrew language file.
  */
 
 var FCKLang =
@@ -34,7 +37,7 @@
 Copy				: "העתקה",
 Paste				: "הדבקה",
 PasteText			: "הדבקה כטקסט פשוט",
-PasteWord			: "הדבקה מ-Word",
+PasteWord			: "הדבקה מ-וורד",
 Print				: "הדפסה",
 SelectAll			: "בחירת הכל",
 RemoveFormat		: "הסרת העיצוב",
@@ -86,6 +89,8 @@
 Replace				: "החלפה",
 SpellCheck			: "בדיקת איות",
 UniversalKeyboard	: "מקלדת אוניברסלית",
+PageBreakLbl		: "שבירת דף",
+PageBreak			: "הוסף שבירת דף",
 
 Form			: "טופס",
 Checkbox		: "תיבת סימון",
@@ -97,8 +102,13 @@
 SelectionField	: "שדה בחירה",
 ImageButton		: "כפתור תמונה",
 
+FitWindow		: "הגדל את גודל העורך",
+
 // Context Menu
 EditLink			: "עריכת קישור",
+CellCM				: "תא",
+RowCM				: "שורה",
+ColumnCM			: "עמודה",
 InsertRow			: "הוספת שורה",
 DeleteRows			: "מחיקת שורות",
 InsertColumn		: "הוספת עמודה",
@@ -107,6 +117,7 @@
 DeleteCells			: "מחיקת תאים",
 MergeCells			: "מיזוג תאים",
 SplitCell			: "פיצול תאים",
+TableDelete			: "מחק טבלה",
 CellProperties		: "תכונות התא",
 TableProperties		: "תכונות הטבלה",
 ImageProperties		: "תכונות התמונה",
@@ -123,18 +134,20 @@
 TextareaProp		: "מאפיני איזור טקסט",
 FormProp			: "מאפיני טופס",
 
-FontFormats			: "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",
+FontFormats			: "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "מעבד XHTML, נא להמתין...",
 Done				: "המשימה הושלמה",
-PasteWordConfirm	: "נראה הטקסט שבכוונתך להדביק מקורו בקובץ Word. האם ברצונך לנקות אותו טרם ההדבקה?",
-NotCompatiblePaste	: "פעולה זו זמינה לדפדפן Internet Explorer מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?",
+PasteWordConfirm	: "נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?",
+NotCompatiblePaste	: "פעולה זו זמינה לדפדפן אינטרנט אקספלורר מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?",
 UnknownToolbarItem	: "פריט לא ידוע בסרגל הכלים \"%1\"",
 UnknownCommand		: "שם פעולה לא ידוע \"%1\"",
 NotImplemented		: "הפקודה לא מיושמת",
 UnknownToolbarSet	: "ערכת סרגל הכלים \"%1\" לא קיימת",
-NoActiveX			: "You 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
+NoActiveX			: "הגדרות אבטחה של הדפדפן עלולות לגביל את אפשרויות העריכה.יש לאפשר את האופציה \"הרץ פקדים פעילים ותוספות\". תוכל לחוות טעויות וחיווים של אפשרויות שחסרים.",
+BrowseServerBlocked : "לא ניתן לגשת לדפדפן משאבים.אנא וודא שחוסם חלונות הקופצים לא פעיל.",
+DialogBlocked		: "לא היה ניתן לפתוח חלון דיאלוג. אנא וודא שחוסם חלונות קופצים לא פעיל.",
 
 // Dialogs
 DlgBtnOK			: "אישור",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "סגירה",
 DlgBtnBrowseServer	: "סייר השרת",
 DlgAdvancedTag		: "אפשרויות מתקדמות",
-DlgOpOther			: "&lt;אחר&gt;",
+DlgOpOther			: "<אחר>",
 DlgInfoTab			: "מידע",
 DlgAlertUrl			: "אנה הזן URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;לא נקבע&gt;",
+DlgGenNotSet		: "<לא נקבע>",
 DlgGenId			: "זיהוי (Id)",
 DlgGenLangDir		: "כיוון שפה",
 DlgGenLangDirLtr	: "שמאל לימין (LTR)",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "עוגן בעמוד זה",
 DlgLnkTypeEMail		: "דוא''ל",
 DlgLnkProto			: "פרוטוקול",
-DlgLnkProtoOther	: "&lt;אחר&gt;",
+DlgLnkProtoOther	: "<אחר>",
 DlgLnkURL			: "כתובת (URL)",
 DlgLnkAnchorSel		: "בחירת עוגן",
 DlgLnkAnchorByName	: "עפ''י שם העוגן",
 DlgLnkAnchorById	: "עפ''י זיהוי (Id) הרכיב",
-DlgLnkNoAnchors		: "&lt;אין עוגנים זמינים בדף&gt;",
+DlgLnkNoAnchors		: "<אין עוגנים זמינים בדף>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "כתובת הדוא''ל",
 DlgLnkEMailSubject	: "נושא ההודעה",
 DlgLnkEMailBody		: "גוף ההודעה",
@@ -224,13 +237,13 @@
 DlgLnkBtnUpload		: "שליחה לשרת",
 
 DlgLnkTarget		: "מטרה",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;חלון קופץ&gt;",
+DlgLnkTargetFrame	: "<מסגרת>",
+DlgLnkTargetPopup	: "<חלון קופץ>",
 DlgLnkTargetBlank	: "חלון חדש (_blank)",
 DlgLnkTargetParent	: "חלון האב (_parent)",
 DlgLnkTargetSelf	: "באותו החלון (_self)",
 DlgLnkTargetTop		: "חלון ראשי (_top)",
-DlgLnkTargetFrameName	: "שם frame היעד",
+DlgLnkTargetFrameName	: "שם מסגרת היעד",
 DlgLnkPopWinName	: "שם החלון הקופץ",
 DlgLnkPopWinFeat	: "תכונות החלון הקופץ",
 DlgLnkPopResize		: "בעל גודל ניתן לשינוי",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "נא להקליד את כתובת הקישור (URL)",
 DlnLnkMsgNoEMail	: "נא להקליד את כתובת הדוא''ל",
 DlnLnkMsgNoAnchor	: "נא לבחור עוגן במסמך",
+DlnLnkMsgInvPopName	: "שם החלון הקופץ חייב להתחיל באותיות ואסור לכלול רווחים",
 
 // Color Dialog
 DlgColorTitle		: "בחירת צבע",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "מרווח תא",
 DlgTableCellPad		: "ריפוד תא",
 DlgTableCaption		: "כיתוב",
+DlgTableSummary		: "סיכום",
 
 // Table Cell Dialog
 DlgCellTitle		: "תכונות תא",
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "התאמה למילה המלאה",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות הדבקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+V).",
 PasteErrorCut	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה  אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).",
 PasteErrorCopy	: "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).",
 
 PasteAsText		: "הדבקה כטקסט פשוט",
-PasteFromWord	: "הדבקה מ-Word",
+PasteFromWord	: "הדבקה מ-וורד",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteMsg2	: "אנא הדבק בתוך הקופסה באמצעות  (<STRONG>Ctrl+V</STRONG>) ולחץ על  <STRONG>אישור</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "התעלם מהגדרות סוג פונט",
 DlgPasteRemoveStyles	: "הסר הגדרות סגנון",
-DlgPasteCleanBox		: "קופסת ניקוי",
+DlgPasteCleanBox		: "ניקוי קופסה",
 
-
 // Color Picker
 ColorAutomatic	: "אוטומטי",
 ColorMoreColors	: "צבעים נוספים...",
@@ -354,7 +368,7 @@
 DlgSpellBtnIgnoreAll	: "התעלם מהכל",
 DlgSpellBtnReplace		: "החלף",
 DlgSpellBtnReplaceAll	: "החלף הכל",
-DlgSpellBtnUndo			: "Undo",
+DlgSpellBtnUndo			: "החזר",
 DlgSpellNoSuggestions	: "- אין הצעות -",
 DlgSpellProgress		: "בדיקות איות בתהליך ....",
 DlgSpellNoMispell		: "בדיקות איות הסתיימה: לא נמצאו שגיעות כתיב",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "בודק האיות לא מותקן, האם אתה מעוניין להוריד?",
 
 // Button Dialog
-DlgButtonText	: "טקסט (ערך)",
-DlgButtonType	: "סוג",
+DlgButtonText		: "טקסט (ערך)",
+DlgButtonType		: "סוג",
+DlgButtonTypeBtn	: "כפתור",
+DlgButtonTypeSbm	: "שלח",
+DlgButtonTypeRst	: "אפס",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "שם",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "מאפייני רשימה",
 NumberedListProp	: "מאפייני רשימה ממוספרת",
+DlgLstStart			: "התחלה",
 DlgLstType			: "סוג",
 DlgLstTypeCircle	: "עיגול",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "דיסק",
 DlgLstTypeSquare	: "מרובע",
 DlgLstTypeNumbers	: "מספרים (1, 2, 3)",
 DlgLstTypeLCase		: "אותיות קטנות (a, b, c)",
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "ימין לשמאל (RTL)",
 DlgDocLangCode		: "קוד שפה",
 DlgDocCharSet		: "קידוד אותיות",
+DlgDocCharSetCE		: "מרכז אירופה",
+DlgDocCharSetCT		: "סיני מסורתי (Big5)",
+DlgDocCharSetCR		: "קירילי",
+DlgDocCharSetGR		: "יוונית",
+DlgDocCharSetJP		: "יפנית",
+DlgDocCharSetKR		: "קוראנית",
+DlgDocCharSetTR		: "טורקית",
+DlgDocCharSetUN		: "יוני קוד (UTF-8)",
+DlgDocCharSetWE		: "מערב אירופה",
 DlgDocCharSetOther	: "קידוד אותיות אחר",
 
 DlgDocDocType		: "הגדרות סוג מסמך",
@@ -466,11 +493,12 @@
 DlgTemplatesSelMsg	: "אנא בחר תבנית לפתיחה בעורך <BR>התוכן המקורי ימחק:",
 DlgTemplatesLoading	: "מעלה רשימת תבניות אנא המתן",
 DlgTemplatesNoTpl	: "(לא הוגדרו תבניות)",
+DlgTemplatesReplace	: "החלפת תוכן ממשי",
 
 // About Dialog
 DlgAboutAboutTab	: "אודות",
 DlgAboutBrowserInfoTab	: "גירסת דפדפן",
+DlgAboutLicenseTab	: "רשיון",
 DlgAboutVersion		: "גירסא",
-DlgAboutLicense		: "ברשיון תחת תנאי GNU Lesser General Public License",
 DlgAboutInfo		: "מידע נוסף ניתן למצוא כאן:"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/hi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/hi.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/hi.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hindi 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			: "लिंक हटायें",
+Anchor				: "ऐंकर इन्सर्ट/संपादन",
+InsertImageLbl		: "तस्वीर",
+InsertImage			: "तस्वीर इन्सर्ट/संपादन",
+InsertFlashLbl		: "फ़्लैश",
+InsertFlash			: "फ़्लैश इन्सर्ट/संपादन",
+InsertTableLbl		: "टेबल",
+InsertTable			: "टेबल इन्सर्ट/संपादन",
+InsertLineLbl		: "रेखा",
+InsertLine			: "हॉरिज़ॉन्टल रेखा इन्सर्ट करें",
+InsertSpecialCharLbl: "विशेष करॅक्टर",
+InsertSpecialChar	: "विशेष करॅक्टर इन्सर्ट करें",
+InsertSmileyLbl		: "स्माइली",
+InsertSmiley		: "स्माइली इन्सर्ट करें",
+About				: "FCKeditor के बारे में",
+Bold				: "बोल्ड",
+Italic				: "इटैलिक",
+Underline			: "रेखांकण",
+StrikeThrough		: "स्ट्राइक थ्रू",
+Subscript			: "अधोलेख",
+Superscript			: "अभिलेख",
+LeftJustify			: "बायीं तरफ",
+CenterJustify		: "बीच में",
+RightJustify		: "दायीं तरफ",
+BlockJustify		: "ब्लॉक जस्टीफ़ाई",
+DecreaseIndent		: "इन्डॅन्ट कम करें",
+IncreaseIndent		: "इन्डॅन्ट बढ़ायें",
+Undo				: "अन्डू",
+Redo				: "रीडू",
+NumberedListLbl		: "अंकीय सूची",
+NumberedList		: "अंकीय सूची इन्सर्ट/संपादन",
+BulletedListLbl		: "बुलॅट सूची",
+BulletedList		: "बुलॅट सूची इन्सर्ट/संपादन",
+ShowTableBorders	: "टेबल बॉर्डरयें दिखायें",
+ShowDetails			: "ज्यादा   दिखायें",
+Style				: "स्टाइल",
+FontFormat			: "फ़ॉर्मैट",
+Font				: "फ़ॉन्ट",
+FontSize			: "साइज़",
+TextColor			: "टेक्स्ट रंग",
+BGColor				: "बैक्ग्राउन्ड रंग",
+Source				: "सोर्स",
+Find				: "खोजें",
+Replace				: "रीप्लेस",
+SpellCheck			: "वर्तनी (स्पेलिंग) जाँच",
+UniversalKeyboard	: "यूनीवर्सल कीबोर्ड",
+PageBreakLbl		: "पेज ब्रेक",
+PageBreak			: "पेज ब्रेक इन्सर्ट् करें",
+
+Form			: "फ़ॉर्म",
+Checkbox		: "चॅक बॉक्स",
+RadioButton		: "रेडिओ बटन",
+TextField		: "टेक्स्ट फ़ील्ड",
+Textarea		: "टेक्स्ट एरिया",
+HiddenField		: "गुप्त फ़ील्ड",
+Button			: "बटन",
+SelectionField	: "चुनाव फ़ील्ड",
+ImageButton		: "तस्वीर बटन",
+
+FitWindow		: "एडिटर साइज़ को चरम सीमा तक बढ़ायें",
+
+// Context Menu
+EditLink			: "लिंक संपादन",
+CellCM				: "खाना",
+RowCM				: "पंक्ति",
+ColumnCM			: "कालम",
+InsertRow			: "पंक्ति इन्सर्ट करें",
+DeleteRows			: "पंक्तियाँ डिलीट करें",
+InsertColumn		: "कॉलम इन्सर्ट करें",
+DeleteColumns		: "कॉलम डिलीट करें",
+InsertCell			: "सॅल इन्सर्ट करें",
+DeleteCells			: "सॅल डिलीट करें",
+MergeCells			: "सॅल मिलायें",
+SplitCell			: "सॅल अलग करें",
+TableDelete			: "टेबल डिलीट करें",
+CellProperties		: "सॅल प्रॉपर्टीज़",
+TableProperties		: "टेबल प्रॉपर्टीज़",
+ImageProperties		: "तस्वीर प्रॉपर्टीज़",
+FlashProperties		: "फ़्लैश प्रॉपर्टीज़",
+
+AnchorProp			: "ऐंकर प्रॉपर्टीज़",
+ButtonProp			: "बटन प्रॉपर्टीज़",
+CheckboxProp		: "चॅक बॉक्स प्रॉपर्टीज़",
+HiddenFieldProp		: "गुप्त फ़ील्ड प्रॉपर्टीज़",
+RadioButtonProp		: "रेडिओ बटन प्रॉपर्टीज़",
+ImageButtonProp		: "तस्वीर बटन प्रॉपर्टीज़",
+TextFieldProp		: "टेक्स्ट फ़ील्ड प्रॉपर्टीज़",
+SelectionFieldProp	: "चुनाव फ़ील्ड प्रॉपर्टीज़",
+TextareaProp		: "टेक्स्त एरिया प्रॉपर्टीज़",
+FormProp			: "फ़ॉर्म प्रॉपर्टीज़",
+
+FontFormats			: "साधारण;फ़ॉर्मैटॅड;पता;शीर्षक 1;शीर्षक 2;शीर्षक 3;शीर्षक 4;शीर्षक 5;शीर्षक 6;शीर्षक (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "XHTML प्रोसॅस हो रहा है। ज़रा ठहरें...",
+Done				: "पूरा हुआ",
+PasteWordConfirm	: "आप जो टेक्स्ट पेस्ट करना चाहते हैं, वह वर्ड से कॉपी किया हुआ लग रहा है। क्या पेस्ट करने से पहले आप इसे साफ़ करना चाहेंगे?",
+NotCompatiblePaste	: "यह कमांड इन्टरनॅट एक्स्प्लोरर(Internet Explorer) 5.5 या उसके बाद के वर्ज़न के लिए ही उपलब्ध है। क्या आप बिना साफ़ किए पेस्ट करना चाहेंगे?",
+UnknownToolbarItem	: "अनजान टूलबार आइटम \"%1\"",
+UnknownCommand		: "अनजान कमान्ड \"%1\"",
+NotImplemented		: "कमान्ड इम्प्लीमॅन्ट नहीं किया गया है",
+UnknownToolbarSet	: "टूलबार सॅट \"%1\" उपलब्ध नहीं है",
+NoActiveX			: "आपके ब्राउज़र् की सुरक्शा सेटिंग्स् एडिटर की कुछ् फ़ीचरों को सीमित कर् सकती हैं। क्रिपया \"Run ActiveX controls and plug-ins\" विकल्प को एनेबल करें. आपको एरर्स् और गायब फ़ीचर्स् का अनुभव हो सकता है।",
+BrowseServerBlocked : "रिसोर्सेज़ ब्राउज़र् नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+DialogBlocked		: "डायलग विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को डिसेबल करें।",
+
+// Dialogs
+DlgBtnOK			: "ठीक है",
+DlgBtnCancel		: "रद्द करें",
+DlgBtnClose			: "बन्द करें",
+DlgBtnBrowseServer	: "सर्वर ब्राउज़ करें",
+DlgAdvancedTag		: "ऍड्वान्स्ड",
+DlgOpOther			: "<अन्य>",
+DlgInfoTab			: "सूचना",
+DlgAlertUrl			: "URL इन्सर्ट करें",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<सॅट नहीं>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "भाषा लिखने की दिशा",
+DlgGenLangDirLtr	: "बायें से दायें (LTR)",
+DlgGenLangDirRtl	: "दायें से बायें (RTL)",
+DlgGenLangCode		: "भाषा कोड",
+DlgGenAccessKey		: "ऍक्सॅस की",
+DlgGenName			: "नाम",
+DlgGenTabIndex		: "टैब इन्डॅक्स",
+DlgGenLongDescr		: "अधिक विवरण के लिए URL",
+DlgGenClass			: "स्टाइल-शीट क्लास",
+DlgGenTitle			: "परामर्श शीर्शक",
+DlgGenContType		: "परामर्श कन्टॅन्ट प्रकार",
+DlgGenLinkCharset	: "लिंक रिसोर्स करॅक्टर सॅट",
+DlgGenStyle			: "स्टाइल",
+
+// Image Dialog
+DlgImgTitle			: "तस्वीर प्रॉपर्टीज़",
+DlgImgInfoTab		: "तस्वीर की जानकारी",
+DlgImgBtnUpload		: "इसे सर्वर को भेजें",
+DlgImgURL			: "URL",
+DlgImgUpload		: "अपलोड",
+DlgImgAlt			: "वैकल्पिक टेक्स्ट",
+DlgImgWidth			: "चौड़ाई",
+DlgImgHeight		: "ऊँचाई",
+DlgImgLockRatio		: "लॉक अनुपात",
+DlgBtnResetSize		: "रीसॅट साइज़",
+DlgImgBorder		: "बॉर्डर",
+DlgImgHSpace		: "हॉरिज़ॉन्टल स्पेस",
+DlgImgVSpace		: "वर्टिकल स्पेस",
+DlgImgAlign			: "ऍलाइन",
+DlgImgAlignLeft		: "दायें",
+DlgImgAlignAbsBottom: "Abs नीचे",
+DlgImgAlignAbsMiddle: "Abs ऊपर",
+DlgImgAlignBaseline	: "मूल रेखा",
+DlgImgAlignBottom	: "नीचे",
+DlgImgAlignMiddle	: "मध्य",
+DlgImgAlignRight	: "दायें",
+DlgImgAlignTextTop	: "टेक्स्ट ऊपर",
+DlgImgAlignTop		: "ऊपर",
+DlgImgPreview		: "प्रीव्यू",
+DlgImgAlertUrl		: "तस्वीर का URL टाइप करें ",
+DlgImgLinkTab		: "लिंक",
+
+// Flash Dialog
+DlgFlashTitle		: "फ़्लैश प्रॉपर्टीज़",
+DlgFlashChkPlay		: "ऑटो प्ले",
+DlgFlashChkLoop		: "लूप",
+DlgFlashChkMenu		: "फ़्लैश मॅन्यू का प्रयोग करें",
+DlgFlashScale		: "स्केल",
+DlgFlashScaleAll	: "सभी दिखायें",
+DlgFlashScaleNoBorder	: "कोई बॉर्डर नहीं",
+DlgFlashScaleFit	: "बिल्कुल फ़िट",
+
+// Link Dialog
+DlgLnkWindowTitle	: "लिंक",
+DlgLnkInfoTab		: "लिंक  ",
+DlgLnkTargetTab		: "टार्गेट",
+
+DlgLnkType			: "लिंक प्रकार",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "इस पेज का ऐंकर",
+DlgLnkTypeEMail		: "ई-मेल",
+DlgLnkProto			: "प्रोटोकॉल",
+DlgLnkProtoOther	: "<अन्य>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ऐंकर चुनें",
+DlgLnkAnchorByName	: "ऐंकर नाम से",
+DlgLnkAnchorById	: "ऍलीमॅन्ट Id से",
+DlgLnkNoAnchors		: "<डॉक्यूमॅन्ट में ऐंकर्स की संख्या>",		//REVIEW : Change < and > with ( and )
+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		: "सारांश",
+
+// Table Cell Dialog
+DlgCellTitle		: "सॅल प्रॉपर्टीज़",
+DlgCellWidth		: "चौड़ाई",
+DlgCellWidthPx		: "पिक्सॅल",
+DlgCellWidthPc		: "प्रतिशत",
+DlgCellHeight		: "ऊँचाई",
+DlgCellWordWrap		: "वर्ड रैप",
+DlgCellWordWrapNotSet	: "<सॅट नहीं>",
+DlgCellWordWrapYes	: "हाँ",
+DlgCellWordWrapNo	: "नहीं",
+DlgCellHorAlign		: "हॉरिज़ॉन्टल ऍलाइन्मॅन्ट",
+DlgCellHorAlignNotSet	: "<सॅट नहीं>",
+DlgCellHorAlignLeft	: "दायें",
+DlgCellHorAlignCenter	: "बीच में",
+DlgCellHorAlignRight: "बायें",
+DlgCellVerAlign		: "वर्टिकल ऍलाइन्मॅन्ट",
+DlgCellVerAlignNotSet	: "<सॅट नहीं>",
+DlgCellVerAlignTop	: "ऊपर",
+DlgCellVerAlignMiddle	: "मध्य",
+DlgCellVerAlignBottom	: "नीचे",
+DlgCellVerAlignBaseline	: "मूलरेखा",
+DlgCellRowSpan		: "पंक्ति स्पैन",
+DlgCellCollSpan		: "कॉलम स्पैन",
+DlgCellBackColor	: "बैक्ग्राउन्ड रंग",
+DlgCellBorderColor	: "बॉर्डर का रंग",
+DlgCellBtnSelect	: "चुनें...",
+
+// Find Dialog
+DlgFindTitle		: "खोजें",
+DlgFindFindBtn		: "खोजें",
+DlgFindNotFoundMsg	: "आपके द्वारा दिया गया टेक्स्ट नहीं मिला",
+
+// Replace Dialog
+DlgReplaceTitle			: "रिप्लेस",
+DlgReplaceFindLbl		: "यह खोजें:",
+DlgReplaceReplaceLbl	: "इससे रिप्लेस करें:",
+DlgReplaceCaseChk		: "केस मिलायें",
+DlgReplaceReplaceBtn	: "रिप्लेस",
+DlgReplaceReplAllBtn	: "सभी रिप्लेस करें",
+DlgReplaceWordChk		: "पूरा शब्द मिलायें",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।",
+PasteErrorCopy	: "आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।",
+
+PasteAsText		: "पेस्ट (सादा टॅक्स्ट)",
+PasteFromWord	: "पेस्ट (वर्ड से)",
+
+DlgPasteMsg2	: "Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "फ़ॉन्ट परिभाषा निकालें",
+DlgPasteRemoveStyles	: "स्टाइल परिभाषा निकालें",
+DlgPasteCleanBox		: "बॉक्स साफ़ करें",
+
+// 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		: "अधिक जानकारी के लिये यहाँ जायें:"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/hr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/hr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/hr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: hr.js
- * 	Croatian language file.
- * 
- * File Authors:
- * 		Alex Varga (avarga at globaldizajn.hr)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Croatian language file.
  */
 
 var FCKLang =
@@ -80,11 +84,13 @@
 FontSize			: "Veličina",
 TextColor			: "Boja teksta",
 BGColor				: "Boja pozadine",
-Source				: "K&ocirc;d",
+Source				: "Kôd",
 Find				: "Pronađi",
 Replace				: "Zamijeni",
 SpellCheck			: "Provjeri pravopis",
 UniversalKeyboard	: "Univerzalna tipkovnica",
+PageBreakLbl		: "Prijelom stranice",
+PageBreak			: "Ubaci prijelom stranice",
 
 Form			: "Form",
 Checkbox		: "Checkbox",
@@ -96,8 +102,13 @@
 SelectionField	: "Selection Field",
 ImageButton		: "Image Button",
 
+FitWindow		: "Povećaj veličinu editora",
+
 // Context Menu
 EditLink			: "Promijeni link",
+CellCM				: "Ćelija",
+RowCM				: "Red",
+ColumnCM			: "Kolona",
 InsertRow			: "Ubaci red",
 DeleteRows			: "Izbriši redove",
 InsertColumn		: "Ubaci kolonu",
@@ -106,6 +117,7 @@
 DeleteCells			: "Izbriši ćelije",
 MergeCells			: "Spoji ćelije",
 SplitCell			: "Razdvoji ćelije",
+TableDelete			: "Izbriši tablicu",
 CellProperties		: "Svojstva ćelije",
 TableProperties		: "Svojstva tablice",
 ImageProperties		: "Svojstva slike",
@@ -122,7 +134,7 @@
 TextareaProp		: "Textarea svojstva",
 FormProp			: "Form svojstva",
 
-FontFormats			: "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Obrađujem XHTML. Molimo pričekajte...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nepoznata naredba \"%1\"",
 NotImplemented		: "Naredba nije implementirana",
 UnknownToolbarSet	: "Traka s alatima \"%1\" ne postoji",
-NoActiveX			: "You 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
+NoActiveX			: "Vaše postavke pretraživača mogle bi ograničiti neke od mogućnosti editora. Morate uključiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne učinite, moguće su razliite greške tijekom rada.",
+BrowseServerBlocked : "Pretraivač nije moguće otvoriti. Provjerite da li je uključeno blokiranje pop-up prozora.",
+DialogBlocked		: "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,17 +155,17 @@
 DlgBtnClose			: "Zatvori",
 DlgBtnBrowseServer	: "Pretraži server",
 DlgAdvancedTag		: "Napredno",
-DlgOpOther			: "&lt;Drugo&gt;",
+DlgOpOther			: "<Drugo>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Molimo unesite URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nije postavljeno&gt;",
+DlgGenNotSet		: "<nije postavljeno>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Smjer jezika",
 DlgGenLangDirLtr	: "S lijeva na desno (LTR)",
 DlgGenLangDirRtl	: "S desna na lijevo (RTL)",
-DlgGenLangCode		: "K&ocirc;d jezika",
+DlgGenLangCode		: "Kôd jezika",
 DlgGenAccessKey		: "Pristupna tipka",
 DlgGenName			: "Naziv",
 DlgGenTabIndex		: "Tab Indeks",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;drugo&gt;",
+DlgLnkProtoOther	: "<drugo>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Odaberi sidro",
 DlgLnkAnchorByName	: "Po nazivu sidra",
 DlgLnkAnchorById	: "Po Id elementa",
-DlgLnkNoAnchors		: "&lt;Nema dostupnih sidra&gt;",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail adresa",
 DlgLnkEMailSubject	: "Naslov",
 DlgLnkEMailBody		: "Sadržaj poruke",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Pošalji na server",
 
 DlgLnkTarget		: "Meta",
-DlgLnkTargetFrame	: "&lt;okvir&gt;",
-DlgLnkTargetPopup	: "&lt;popup prozor&gt;",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
 DlgLnkTargetBlank	: "Novi prozor (_blank)",
 DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
 DlgLnkTargetSelf	: "Isti prozor (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Molimo upišite URL link",
 DlnLnkMsgNoEMail	: "Molimo upišite e-mail adresu",
 DlnLnkMsgNoAnchor	: "Molimo odaberite sidro",
+DlnLnkMsgInvPopName	: "Ime popup prozora mora početi sa slovom i ne smije sadržavati razmake",
 
 // Color Dialog
 DlgColorTitle		: "Odaberite boju",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "Kolona",
 DlgTableBorder		: "Veličina okvira",
 DlgTableAlign		: "Poravnanje",
-DlgTableAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgTableAlignNotSet	: "<nije postavljeno>",
 DlgTableAlignLeft	: "Lijevo",
 DlgTableAlignCenter	: "Središnje",
 DlgTableAlignRight	: "Desno",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Prostornost ćelija",
 DlgTableCellPad		: "Razmak ćelija",
 DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Sažetak",
 
 // Table Cell Dialog
 DlgCellTitle		: "Svojstva ćelije",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "postotaka",
 DlgCellHeight		: "Visina",
 DlgCellWordWrap		: "Word Wrap",
-DlgCellWordWrapNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
 DlgCellWordWrapYes	: "Da",
 DlgCellWordWrapNo	: "Ne",
 DlgCellHorAlign		: "Vodoravno poravnanje",
-DlgCellHorAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
 DlgCellHorAlignLeft	: "Lijevo",
 DlgCellHorAlignCenter	: "Središnje",
 DlgCellHorAlignRight: "Desno",
 DlgCellVerAlign		: "Okomito poravnanje",
-DlgCellVerAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
 DlgCellVerAlignTop	: "Gornje",
 DlgCellVerAlignMiddle	: "Srednišnje",
 DlgCellVerAlignBottom	: "Donje",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Usporedi cijele riječi",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog ljepljenja. Molimo koristite kraticu na tipkovnici (Ctrl+V).",
 PasteErrorCut	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).",
 PasteErrorCopy	: "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Zalijepi iz Worda",
 
 DlgPasteMsg2	: "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Zanemari definiciju vrste fonta",
 DlgPasteRemoveStyles	: "Ukloni definicije stilova",
 DlgPasteCleanBox		: "Očisti okvir",
 
-
 // Color Picker
 ColorAutomatic	: "Automatski",
 ColorMoreColors	: "Više boja...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?",
 
 // Button Dialog
-DlgButtonText	: "Tekst (vrijednost)",
-DlgButtonType	: "Vrsta",
+DlgButtonText		: "Tekst (vrijednost)",
+DlgButtonType		: "Vrsta",
+DlgButtonTypeBtn	: "Gumb",
+DlgButtonTypeSbm	: "Pošalji",
+DlgButtonTypeRst	: "Poništi",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Ime",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Svojstva liste",
 NumberedListProp	: "Svojstva brojčane liste",
+DlgLstStart			: "Početak",
 DlgLstType			: "Vrsta",
 DlgLstTypeCircle	: "Krug",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disk",
 DlgLstTypeSquare	: "Kvadrat",
 DlgLstTypeNumbers	: "Brojevi (1, 2, 3)",
 DlgLstTypeLCase		: "Mala slova (a, b, c)",
@@ -434,8 +453,17 @@
 DlgDocLangDir		: "Smjer jezika",
 DlgDocLangDirLTR	: "S lijeva na desno",
 DlgDocLangDirRTL	: "S desna na lijevo",
-DlgDocLangCode		: "K&ocirc;d jezika",
+DlgDocLangCode		: "Kôd jezika",
 DlgDocCharSet		: "Enkodiranje znakova",
+DlgDocCharSetCE		: "Središnja Europa",
+DlgDocCharSetCT		: "Tradicionalna kineska (Big5)",
+DlgDocCharSetCR		: "Ćirilica",
+DlgDocCharSetGR		: "Grčka",
+DlgDocCharSetJP		: "Japanska",
+DlgDocCharSetKR		: "Koreanska",
+DlgDocCharSetTR		: "Turska",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Zapadna Europa",
 DlgDocCharSetOther	: "Ostalo enkodiranje znakova",
 
 DlgDocDocType		: "Zaglavlje vrste dokumenta",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj će biti izgubljen):",
 DlgTemplatesLoading	: "Učitavam listu predložaka. Molimo pričekajte...",
 DlgTemplatesNoTpl	: "(Nema definiranih predložaka)",
+DlgTemplatesReplace	: "Zamijeni trenutne sadržaje",
 
 // About Dialog
 DlgAboutAboutTab	: "O FCKEditoru",
 DlgAboutBrowserInfoTab	: "Podaci o pretraživaču",
+DlgAboutLicenseTab	: "Licenca",
 DlgAboutVersion		: "inačica",
-DlgAboutLicense		: "Licencirano pod uvjetima GNU Lesser General Public License",
 DlgAboutInfo		: "Za više informacija posjetite"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/hu.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/hu.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/hu.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: hu.js
- * 	Hungarian language file.
- * 
- * File Authors:
- * 		Varga Zsolt (meridian at netteszt.hu)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Hungarian language file.
  */
 
 var FCKLang =
@@ -22,21 +26,21 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Egyszerû eszköztár",
-ToolbarExpand		: "Bõvített eszköztár",
+ToolbarCollapse		: "Eszköztár elrejtése",
+ToolbarExpand		: "Eszköztár megjelenítése",
 
 // Toolbar Items and Context Menu
 Save				: "Mentés",
 NewPage				: "Új oldal",
-Preview				: "Elõnézet",
+Preview				: "Előnézet",
 Cut					: "Kivágás",
 Copy				: "Másolás",
 Paste				: "Beillesztés",
-PasteText			: "Beillesztés formázatlan szövegként",
-PasteWord			: "Beillesztés Wordbõl",
+PasteText			: "Beillesztés formázás nélkül",
+PasteWord			: "Beillesztés Word-ből",
 Print				: "Nyomtatás",
-SelectAll			: "Minden kijelölése",
-RemoveFormat		: "Formázás törlése",
+SelectAll			: "Mindent kijelöl",
+RemoveFormat		: "Formázás eltávolítása",
 InsertLinkLbl		: "Hivatkozás",
 InsertLink			: "Hivatkozás beillesztése/módosítása",
 RemoveLink			: "Hivatkozás törlése",
@@ -55,11 +59,11 @@
 InsertSmiley		: "Hangulatjelek beillesztése",
 About				: "FCKeditor névjegy",
 Bold				: "Félkövér",
-Italic				: "Dõlt",
+Italic				: "DÅ‘lt",
 Underline			: "Aláhúzott",
 StrikeThrough		: "Áthúzott",
 Subscript			: "Alsó index",
-Superscript			: "Felsõ index",
+Superscript			: "Felső index",
 LeftJustify			: "Balra",
 CenterJustify		: "Középre",
 RightJustify		: "Jobbra",
@@ -76,15 +80,17 @@
 ShowDetails			: "Részletek mutatása",
 Style				: "Stílus",
 FontFormat			: "Formátum",
-Font				: "Betûtipus",
+Font				: "Betűtípus",
 FontSize			: "Méret",
-TextColor			: "Betûszín",
+TextColor			: "Betűszín",
 BGColor				: "Háttérszín",
 Source				: "Forráskód",
 Find				: "Keresés",
 Replace				: "Csere",
-SpellCheck			: "Helyesírásellenőrzés",
-UniversalKeyboard	: "Általános billentyűzet",
+SpellCheck			: "Helyesírás-ellenőrzés",
+UniversalKeyboard	: "Univerzális billentyűzet",
+PageBreakLbl		: "Oldaltörés",
+PageBreak			: "Oldaltörés beillesztése",
 
 Form			: "Å°rlap",
 Checkbox		: "Jelölőnégyzet",
@@ -93,80 +99,88 @@
 Textarea		: "Szövegterület",
 HiddenField		: "Rejtettmező",
 Button			: "Gomb",
-SelectionField	: "Választómező",
+SelectionField	: "Legördülő lista",
 ImageButton		: "Képgomb",
 
+FitWindow		: "Maximalizálás",
+
 // Context Menu
 EditLink			: "Hivatkozás módosítása",
+CellCM				: "Cella",
+RowCM				: "Sor",
+ColumnCM			: "Oszlop",
 InsertRow			: "Sor beszúrása",
-DeleteRows			: "Sor(ok) törlése",
+DeleteRows			: "Sorok törlése",
 InsertColumn		: "Oszlop beszúrása",
-DeleteColumns		: "Oszlop(ok) törlése",
+DeleteColumns		: "Oszlopok törlése",
 InsertCell			: "Cella beszúrása",
 DeleteCells			: "Cellák törlése",
 MergeCells			: "Cellák egyesítése",
-SplitCell			: "Cellák szétválasztása",
-CellProperties		: "Cellák tulajdonsága",
-TableProperties		: "Táblázat tulajdonsága",
-ImageProperties		: "Kép tulajdonsága",
-FlashProperties		: "Flash tulajdonsága",
+SplitCell			: "Cella szétválasztása",
+TableDelete			: "Táblázat törlése",
+CellProperties		: "Cella tulajdonságai",
+TableProperties		: "Táblázat tulajdonságai",
+ImageProperties		: "Kép tulajdonságai",
+FlashProperties		: "Flash tulajdonságai",
 
-AnchorProp			: "Horgony(ok) tulajdonsága(i)",
-ButtonProp			: "Gomb(ok) tulajdonsága(i) ",
-CheckboxProp		: "Jelölőnégyzet(ek) tulajdonsága(i)",
-HiddenFieldProp		: "Rejtettmező(k) tulajdonsága(i)",
-RadioButtonProp		: "Választógomb(ok) tulajdonsága(i)",
-ImageButtonProp		: "Képgomb(ok) tulajdonsága(i)",
-TextFieldProp		: "Szövegmező(k) tulajdonsága(i)",
-SelectionFieldProp	: "Választómező(k) tulajdonsága(i)",
-TextareaProp		: "Szövegterület(ek) tulajdonsága(i)",
-FormProp			: "Űrlap(ok) tulajdonsága(i)",
+AnchorProp			: "Horgony tulajdonságai",
+ButtonProp			: "Gomb tulajdonságai",
+CheckboxProp		: "Jelölőnégyzet tulajdonságai",
+HiddenFieldProp		: "Rejtett mező tulajdonságai",
+RadioButtonProp		: "Választógomb tulajdonságai",
+ImageButtonProp		: "Képgomb tulajdonságai",
+TextFieldProp		: "Szövegmező tulajdonságai",
+SelectionFieldProp	: "Legördülő lista tulajdonságai",
+TextareaProp		: "Szövegterület tulajdonságai",
+FormProp			: "Űrlap tulajdonságai",
 
-FontFormats			: "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)",
+FontFormats			: "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "XHTML feldolgozása. Kérem várjon...",
 Done				: "Kész",
-PasteWordConfirm	: "A szöveg amit be szeretnél illeszteni úgy néz ki Word-bõl van másolva. Do you want to clean it before pasting?",
-NotCompatiblePaste	: "Ez a parancs csak Internet Explorer 5.5 verziótól használható (Firefox rulez). Do you want to paste without cleaning?",
+PasteWordConfirm	: "A beilleszteni kívánt szöveg Word-ből van másolva. El kívánja távolítani a formázást a beillesztés előtt?",
+NotCompatiblePaste	: "Ez a parancs csak Internet Explorer 5.5 verziótól használható. Megpróbálja beilleszteni a szöveget az eredeti formázással?",
 UnknownToolbarItem	: "Ismeretlen eszköztár elem \"%1\"",
 UnknownCommand		: "Ismeretlen parancs \"%1\"",
-NotImplemented		: "A parancs nincs beágyazva",
-UnknownToolbarSet	: "Eszközkészlet beállítás \"%1\" nem létezik",
-NoActiveX			: "A böngésződ biztonsági beállításai limitálják a szerkesztő lehetőségeit. Engedélyezned kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Kitapasztalhatod a hibákat és feljegyezheted a hiányzó képességeket.",
+NotImplemented		: "A parancs nem hajtható végre",
+UnknownToolbarSet	: "Az eszközkészlet \"%1\" nem létezik",
+NoActiveX			: "A böngésző biztonsági beállításai korlátozzák a szerkesztő lehetőségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Ettől függetlenül előfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.",
+BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészőt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
+DialogBlocked		: "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.",
 
 // Dialogs
-DlgBtnOK			: "OK",
+DlgBtnOK			: "Rendben",
 DlgBtnCancel		: "Mégsem",
 DlgBtnClose			: "Bezárás",
-DlgBtnBrowseServer	: "Szerver tallózása",
-DlgAdvancedTag		: "Haladó",
+DlgBtnBrowseServer	: "Böngészés a szerveren",
+DlgAdvancedTag		: "További opciók",
 DlgOpOther			: "Egyéb",
-DlgInfoTab			: "Információ",
-DlgAlertUrl			: "Illeszd be a hivatkozást",
+DlgInfoTab			: "Alaptulajdonságok",
+DlgAlertUrl			: "Illessze be a webcímet",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nincs beállítva&gt;",
+DlgGenNotSet		: "<nincs beállítva>",
 DlgGenId			: "Azonosító",
-DlgGenLangDir		: "Nyelv útmutató",
+DlgGenLangDir		: "Írás iránya",
 DlgGenLangDirLtr	: "Balról jobbra",
 DlgGenLangDirRtl	: "Jobbról balra",
-DlgGenLangCode		: "Nyelv kód",
-DlgGenAccessKey		: "Elérési kulcs",
+DlgGenLangCode		: "Nyelv kódja",
+DlgGenAccessKey		: "Billentyűkombináció",
 DlgGenName			: "Név",
 DlgGenTabIndex		: "Tabulátor index",
-DlgGenLongDescr		: "Hosszú URL",
+DlgGenLongDescr		: "Részletes leírás webcíme",
 DlgGenClass			: "Stíluskészlet",
-DlgGenTitle			: "Advisory Title",
-DlgGenContType		: "Advisory Content Type",
-DlgGenLinkCharset	: "Hivatkozott kódlap készlet",
+DlgGenTitle			: "Súgócimke",
+DlgGenContType		: "Súgó tartalomtípusa",
+DlgGenLinkCharset	: "Hivatkozott tartalom kódlapja",
 DlgGenStyle			: "Stílus",
 
 // Image Dialog
-DlgImgTitle			: "Kép tulajdonsága",
-DlgImgInfoTab		: "Kép információ",
-DlgImgBtnUpload		: "Küldés a szervernek",
-DlgImgURL			: "URL",
+DlgImgTitle			: "Kép tulajdonságai",
+DlgImgInfoTab		: "Alaptulajdonságok",
+DlgImgBtnUpload		: "Küldés a szerverre",
+DlgImgURL			: "Hivatkozás",
 DlgImgUpload		: "Feltöltés",
 DlgImgAlt			: "Buborék szöveg",
 DlgImgWidth			: "Szélesség",
@@ -180,18 +194,18 @@
 DlgImgAlignLeft		: "Bal",
 DlgImgAlignAbsBottom: "Legaljára",
 DlgImgAlignAbsMiddle: "Közepére",
-DlgImgAlignBaseline	: "Baseline",
+DlgImgAlignBaseline	: "Alapvonalhoz",
 DlgImgAlignBottom	: "Aljára",
 DlgImgAlignMiddle	: "Középre",
 DlgImgAlignRight	: "Jobbra",
-DlgImgAlignTextTop	: "Szöveg tetjére",
+DlgImgAlignTextTop	: "Szöveg tetejére",
 DlgImgAlignTop		: "Tetejére",
-DlgImgPreview		: "Elõnézet",
-DlgImgAlertUrl		: "Töltse ki a kép URL-ét",
+DlgImgPreview		: "Előnézet",
+DlgImgAlertUrl		: "Töltse ki a kép webcímét",
 DlgImgLinkTab		: "Hivatkozás",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash tulajdonsága",
+DlgFlashTitle		: "Flash tulajdonságai",
 DlgFlashChkPlay		: "Automata lejátszás",
 DlgFlashChkLoop		: "Folyamatosan",
 DlgFlashChkMenu		: "Flash menü engedélyezése",
@@ -201,59 +215,60 @@
 DlgFlashScaleFit	: "Teljes kitöltés",
 
 // Link Dialog
-DlgLnkWindowTitle	: "Hivatkozás",
-DlgLnkInfoTab		: "Hivatkozás információ",
-DlgLnkTargetTab		: "Cél",
+DlgLnkWindowTitle	: "Hivatkozás tulajdonságai",
+DlgLnkInfoTab		: "Alaptulajdonságok",
+DlgLnkTargetTab		: "Megjelenítés",
 
-DlgLnkType			: "Hivatkozás tipusa",
-DlgLnkTypeURL		: "URL",
+DlgLnkType			: "Hivatkozás típusa",
+DlgLnkTypeURL		: "Webcím",
 DlgLnkTypeAnchor	: "Horgony az oldalon",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;más&gt;",
-DlgLnkURL			: "URL",
+DlgLnkProtoOther	: "<más>",
+DlgLnkURL			: "Webcím",
 DlgLnkAnchorSel		: "Horgony választása",
 DlgLnkAnchorByName	: "Horgony név szerint",
-DlgLnkAnchorById	: "Azonosító szerint elõsorban ",
-DlgLnkNoAnchors		: "&lt;Nincs horgony a dokumentumban&gt;",
+DlgLnkAnchorById	: "Azonosító szerint",
+DlgLnkNoAnchors		: "<Nincs horgony a dokumentumban>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail cím",
 DlgLnkEMailSubject	: "Üzenet tárgya",
 DlgLnkEMailBody		: "Ãœzenet",
 DlgLnkUpload		: "Feltöltés",
-DlgLnkBtnUpload		: "Küldés a szerverhez",
+DlgLnkBtnUpload		: "Küldés a szerverre",
 
-DlgLnkTarget		: "Cél",
-DlgLnkTargetFrame	: "&lt;keret&gt;",
-DlgLnkTargetPopup	: "&lt;felugró ablak&gt;",
-DlgLnkTargetBlank	: "Új ablak (_blank)",
-DlgLnkTargetParent	: "Szülõ ablak (_parent)",
-DlgLnkTargetSelf	: "Azonos ablak (_self)",
-DlgLnkTargetTop		: "Legfelsõ ablak (_top)",
-DlgLnkTargetFrameName	: "Cél frame neve",
+DlgLnkTarget		: "Tartalom megjelenítése",
+DlgLnkTargetFrame	: "<keretben>",
+DlgLnkTargetPopup	: "<felugró ablakban>",
+DlgLnkTargetBlank	: "Új ablakban (_blank)",
+DlgLnkTargetParent	: "Szülő ablakban (_parent)",
+DlgLnkTargetSelf	: "Azonos ablakban (_self)",
+DlgLnkTargetTop		: "Legfelső ablakban (_top)",
+DlgLnkTargetFrameName	: "Keret neve",
 DlgLnkPopWinName	: "Felugró ablak neve",
-DlgLnkPopWinFeat	: "Felugró ablak jellemzõi",
-DlgLnkPopResize		: "Méretezhetõ",
-DlgLnkPopLocation	: "Location Bar",
+DlgLnkPopWinFeat	: "Felugró ablak jellemzői",
+DlgLnkPopResize		: "Méretezhető",
+DlgLnkPopLocation	: "Címsor",
 DlgLnkPopMenu		: "Menü sor",
-DlgLnkPopScroll		: "Gördítõsáv",
+DlgLnkPopScroll		: "Gördítősáv",
 DlgLnkPopStatus		: "Állapotsor",
 DlgLnkPopToolbar	: "Eszköztár",
-DlgLnkPopFullScrn	: "Teljes képernyõ (IE)",
-DlgLnkPopDependent	: "Netscape sajátosság",
+DlgLnkPopFullScrn	: "Teljes képernyő (csak IE)",
+DlgLnkPopDependent	: "Szülőhöz kapcsolt (csak Netscape)",
 DlgLnkPopWidth		: "Szélesség",
 DlgLnkPopHeight		: "Magasság",
 DlgLnkPopLeft		: "Bal pozíció",
-DlgLnkPopTop		: "Felsõ pozíció",
+DlgLnkPopTop		: "Felső pozíció",
 
-DlnLnkMsgNoUrl		: "Adja meg a hivatkozás URL-ét",
-DlnLnkMsgNoEMail	: "Adja meg az e-mail címet",
+DlnLnkMsgNoUrl		: "Adja meg a hivatkozás webcímét",
+DlnLnkMsgNoEMail	: "Adja meg az E-Mail címet",
 DlnLnkMsgNoAnchor	: "Válasszon egy horgonyt",
+DlnLnkMsgInvPopName	: "A felbukkanó ablak neve alfanumerikus karakterrel kezdôdjön, valamint ne tartalmazzon szóközt",
 
 // Color Dialog
-DlgColorTitle		: "Szinválasztás",
+DlgColorTitle		: "Színválasztás",
 DlgColorBtnClear	: "Törlés",
-DlgColorHighlight	: "Világos rész",
-DlgColorSelected	: "Választott",
+DlgColorHighlight	: "Előnézet",
+DlgColorSelected	: "Kiválasztott",
 
 // Smiley Dialog
 DlgSmileyTitle		: "Hangulatjel beszúrása",
@@ -268,34 +283,35 @@
 DlgTableBorder		: "Szegélyméret",
 DlgTableAlign		: "Igazítás",
 DlgTableAlignNotSet	: "<Nincs beállítva>",
-DlgTableAlignLeft	: "Bal",
-DlgTableAlignCenter	: "Közép",
-DlgTableAlignRight	: "Jobb",
+DlgTableAlignLeft	: "Balra",
+DlgTableAlignCenter	: "Középre",
+DlgTableAlignRight	: "Jobbra",
 DlgTableWidth		: "Szélesség",
-DlgTableWidthPx		: "képpontok",
+DlgTableWidthPx		: "képpont",
 DlgTableWidthPc		: "százalék",
 DlgTableHeight		: "Magasság",
-DlgTableCellSpace	: "Cell spacing",
-DlgTableCellPad		: "Cell padding",
+DlgTableCellSpace	: "Cella térköz",
+DlgTableCellPad		: "Cella belső margó",
 DlgTableCaption		: "Felirat",
+DlgTableSummary		: "Leírás",
 
 // Table Cell Dialog
 DlgCellTitle		: "Cella tulajdonságai",
 DlgCellWidth		: "Szélesség",
-DlgCellWidthPx		: "képpontok",
+DlgCellWidthPx		: "képpont",
 DlgCellWidthPc		: "százalék",
-DlgCellHeight		: "Height",
+DlgCellHeight		: "Magasság",
 DlgCellWordWrap		: "Sortörés",
-DlgCellWordWrapNotSet	: "&lt;Nincs beállítva&gt;",
+DlgCellWordWrapNotSet	: "<Nincs beállítva>",
 DlgCellWordWrapYes	: "Igen",
 DlgCellWordWrapNo	: "Nem",
-DlgCellHorAlign		: "Vízszintes igazítás",
-DlgCellHorAlignNotSet	: "&lt;Nincs beállítva&gt;",
-DlgCellHorAlignLeft	: "Bal",
-DlgCellHorAlignCenter	: "Közép",
-DlgCellHorAlignRight: "Jobb",
-DlgCellVerAlign		: "Függõleges igazítás",
-DlgCellVerAlignNotSet	: "&lt;Nincs beállítva&gt;",
+DlgCellHorAlign		: "Vízsz. igazítás",
+DlgCellHorAlignNotSet	: "<Nincs beállítva>",
+DlgCellHorAlignLeft	: "Balra",
+DlgCellHorAlignCenter	: "Középre",
+DlgCellHorAlignRight: "Jobbra",
+DlgCellVerAlign		: "Függ. igazítás",
+DlgCellVerAlignNotSet	: "<Nincs beállítva>",
 DlgCellVerAlignTop	: "Tetejére",
 DlgCellVerAlignMiddle	: "Középre",
 DlgCellVerAlignBottom	: "Aljára",
@@ -313,96 +329,98 @@
 
 // Replace Dialog
 DlgReplaceTitle			: "Csere",
-DlgReplaceFindLbl		: "Keresendõ:",
-DlgReplaceReplaceLbl	: "Cserélendõ:",
-DlgReplaceCaseChk		: "Találatok",
+DlgReplaceFindLbl		: "Keresett szöveg:",
+DlgReplaceReplaceLbl	: "Csere erre:",
+DlgReplaceCaseChk		: "kis- és nagybetű megkülönböztetése",
 DlgReplaceReplaceBtn	: "Csere",
-DlgReplaceReplAllBtn	: "Összes cseréje",
-DlgReplaceWordChk		: "Egész dokumentumban",
+DlgReplaceReplAllBtn	: "Az összes cseréje",
+DlgReplaceWordChk		: "csak ha ez a teljes szó",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "A böngészõ biztonsági beállításai nem engedélyezik a szerkesztõnek, hogy végrehatjsa a beillesztés mûveletet.Használja az alábbi billentyûzetkombinációt (Ctrl+V).",
-PasteErrorCut	: "A böngészõ biztonsági beállításai nem engedélyezik a szerkesztõnek, hogy végrehatjsa a kivágás mûveletet.Használja az alábbi billentyûzetkombinációt (Ctrl+X).",
-PasteErrorCopy	: "A böngészõ biztonsági beállításai nem engedélyezik a szerkesztõnek, hogy végrehatjsa a másolás mûveletet.Használja az alábbi billentyûzetkombinációt (Ctrl+X).",
+PasteErrorCut	: "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
+PasteErrorCopy	: "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).",
 
 PasteAsText		: "Beillesztés formázatlan szövegként",
-PasteFromWord	: "Beillesztés Wordbõl",
+PasteFromWord	: "Beillesztés Word-ből",
 
-DlgPasteMsg2	: "Másold be az alábbi mezőbe a következő billentyűk használatával (<STRONG>Ctrl+V</STRONG>) és nyomj <STRONG>OK</STRONG>.",
+DlgPasteMsg2	: "Másolja be az alábbi mezőbe a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Betű formázások megszüntetése",
-DlgPasteRemoveStyles	: "Stíluslapok eltávolítása",
-DlgPasteCleanBox		: "Mező tartalmának törlése",
+DlgPasteRemoveStyles	: "Stílusok eltávolítása",
+DlgPasteCleanBox		: "Törlés",
 
-
 // Color Picker
 ColorAutomatic	: "Automatikus",
-ColorMoreColors	: "Több szín...",
+ColorMoreColors	: "További színek...",
 
 // Document Properties
-DocProps		: "Dokumentum tulajdonsága",
+DocProps		: "Dokumentum tulajdonságai",
 
 // Anchor Dialog
-DlgAnchorTitle		: "Horgony tulajdonsága",
+DlgAnchorTitle		: "Horgony tulajdonságai",
 DlgAnchorName		: "Horgony neve",
 DlgAnchorErrorName	: "Kérem adja meg a horgony nevét",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Nincs a könyvtárban",
-DlgSpellChangeTo		: "Átváltás",
+DlgSpellNotInDic		: "Nincs a szótárban",
+DlgSpellChangeTo		: "Módosítás",
 DlgSpellBtnIgnore		: "Kihagyja",
-DlgSpellBtnIgnoreAll	: "Összeset kihagyja",
+DlgSpellBtnIgnoreAll	: "Mindet kihagyja",
 DlgSpellBtnReplace		: "Csere",
 DlgSpellBtnReplaceAll	: "Összes cseréje",
 DlgSpellBtnUndo			: "Visszavonás",
-DlgSpellNoSuggestions	: "Nincs feltevés",
-DlgSpellProgress		: "Helyesírásellenőrzés folyamatban...",
-DlgSpellNoMispell		: "Helyesírásellenőrzés kész: Nem találtam hibát",
-DlgSpellNoChanges		: "Helyesírásellenőrzés kész: Nincs változtatott szó",
-DlgSpellOneChange		: "Helyesírásellenőrzés kész: Egy szó cserélve",
-DlgSpellManyChanges		: "Helyesírásellenőrzés kész: %1 szó cserélve",
+DlgSpellNoSuggestions	: "Nincs javaslat",
+DlgSpellProgress		: "Helyesírás-ellenőrzés folyamatban...",
+DlgSpellNoMispell		: "Helyesírás-ellenőrzés kész: Nem találtam hibát",
+DlgSpellNoChanges		: "Helyesírás-ellenőrzés kész: Nincs változtatott szó",
+DlgSpellOneChange		: "Helyesírás-ellenőrzés kész: Egy szó cserélve",
+DlgSpellManyChanges		: "Helyesírás-ellenőrzés kész: %1 szó cserélve",
 
-IeSpellDownload			: "A helyesírásellenőrző nincs telepítve. Szeretné letölteni most?",
+IeSpellDownload			: "A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?",
 
 // Button Dialog
-DlgButtonText	: "Szöveg (Érték)",
-DlgButtonType	: "Típus",
+DlgButtonText		: "Szöveg (Érték)",
+DlgButtonType		: "Típus",
+DlgButtonTypeBtn	: "Gomb",
+DlgButtonTypeSbm	: "Küldés",
+DlgButtonTypeRst	: "Alaphelyzet",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Név",
 DlgCheckboxValue	: "Érték",
-DlgCheckboxSelected	: "Választott",
+DlgCheckboxSelected	: "Kiválasztott",
 
 // Form Dialog
 DlgFormName		: "Név",
-DlgFormAction	: "Esemény",
-DlgFormMethod	: "Metódus",
+DlgFormAction	: "Adatfeldolgozást végző hivatkozás",
+DlgFormMethod	: "Adatküldés módja",
 
 // Select Field Dialog
 DlgSelectName		: "Név",
 DlgSelectValue		: "Érték",
 DlgSelectSize		: "Méret",
-DlgSelectLines		: "sorok",
-DlgSelectChkMulti	: "Engedi a többszörös kiválasztást",
+DlgSelectLines		: "sor",
+DlgSelectChkMulti	: "több sor is kiválasztható",
 DlgSelectOpAvail	: "Elérhető opciók",
 DlgSelectOpText		: "Szöveg",
 DlgSelectOpValue	: "Érték",
-DlgSelectBtnAdd		: "Bővít",
+DlgSelectBtnAdd		: "Hozzáad",
 DlgSelectBtnModify	: "Módosít",
 DlgSelectBtnUp		: "Fel",
 DlgSelectBtnDown	: "Le",
-DlgSelectBtnSetValue : "Beállítja a kiválasztott értéket",
+DlgSelectBtnSetValue : "Legyen az alapértelmezett érték",
 DlgSelectBtnDelete	: "Töröl",
 
 // Textarea Dialog
 DlgTextareaName	: "Név",
-DlgTextareaCols	: "Oszlopok",
-DlgTextareaRows	: "Sorok",
+DlgTextareaCols	: "Karakterek száma egy sorban",
+DlgTextareaRows	: "Sorok száma",
 
 // Text Field Dialog
 DlgTextName			: "Név",
 DlgTextValue		: "Érték",
-DlgTextCharWidth	: "Karakter szélesség",
-DlgTextMaxChars		: "Maximum karakterek",
+DlgTextCharWidth	: "Megjelenített karakterek száma",
+DlgTextMaxChars		: "Maximális karakterszám",
 DlgTextType			: "Típus",
 DlgTextTypeText		: "Szöveg",
 DlgTextTypePass		: "Jelszó",
@@ -414,13 +432,14 @@
 // Bulleted List Dialog
 BulletedListProp	: "Felsorolás tulajdonságai",
 NumberedListProp	: "Számozás tulajdonságai",
-DlgLstType			: "Típus",
-DlgLstTypeCircle	: "Ciklus",
+DlgLstStart			: "Start",
+DlgLstType			: "Formátum",
+DlgLstTypeCircle	: "Kör",
 DlgLstTypeDisc		: "Lemez",
 DlgLstTypeSquare	: "Négyzet",
 DlgLstTypeNumbers	: "Számok (1, 2, 3)",
-DlgLstTypeLCase		: "Kisbetűs (a, b, c)",
-DlgLstTypeUCase		: "Nagybetűs (a, b, c)",
+DlgLstTypeLCase		: "Kisbetűk (a, b, c)",
+DlgLstTypeUCase		: "Nagybetűk (A, B, C)",
 DlgLstTypeSRoman	: "Kis római számok (i, ii, iii)",
 DlgLstTypeLRoman	: "Nagy római számok (I, II, III)",
 
@@ -431,16 +450,25 @@
 DlgDocMetaTab		: "Meta adatok",
 
 DlgDocPageTitle		: "Oldalcím",
-DlgDocLangDir		: "Nyelv utasítás",
-DlgDocLangDirLTR	: "Balról jobbra (LTR)",
-DlgDocLangDirRTL	: "Jobbról balra (RTL)",
+DlgDocLangDir		: "Írás iránya",
+DlgDocLangDirLTR	: "Balról jobbra",
+DlgDocLangDirRTL	: "Jobbról balra",
 DlgDocLangCode		: "Nyelv kód",
 DlgDocCharSet		: "Karakterkódolás",
+DlgDocCharSetCE		: "Közép-Európai",
+DlgDocCharSetCT		: "Kínai Tradicionális (Big5)",
+DlgDocCharSetCR		: "Cyrill",
+DlgDocCharSetGR		: "Görög",
+DlgDocCharSetJP		: "Japán",
+DlgDocCharSetKR		: "Koreai",
+DlgDocCharSetTR		: "Török",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Nyugat-Európai",
 DlgDocCharSetOther	: "Más karakterkódolás",
 
-DlgDocDocType		: "Dokumentum címsor típus",
-DlgDocDocTypeOther	: "Más dokumentum címsor típus",
-DlgDocIncXHTML		: "XHTML elemeket tartalmaz",
+DlgDocDocType		: "Dokumentum típus fejléc",
+DlgDocDocTypeOther	: "Más dokumentum típus fejléc",
+DlgDocIncXHTML		: "XHTML deklarációk beillesztése",
 DlgDocBgColor		: "Háttérszín",
 DlgDocBgImage		: "Háttérkép cím",
 DlgDocBgNoScroll	: "Nem gördíthető háttér",
@@ -452,7 +480,7 @@
 DlgDocMaTop			: "Felső",
 DlgDocMaLeft		: "Bal",
 DlgDocMaRight		: "Jobb",
-DlgDocMaBottom		: "Felül",
+DlgDocMaBottom		: "Alsó",
 DlgDocMeIndex		: "Dokumentum keresőszavak (vesszővel elválasztva)",
 DlgDocMeDescr		: "Dokumentum leírás",
 DlgDocMeAuthor		: "Szerző",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Sablonok",
 DlgTemplatesTitle	: "Elérhető sablonok",
-DlgTemplatesSelMsg	: "Válaszd ki melyik sablon nyíljon meg a szerkesztőben<br>(a jelenlegi tartalom elveszik):",
+DlgTemplatesSelMsg	: "Válassza ki melyik sablon nyíljon meg a szerkesztőben<br>(a jelenlegi tartalom elveszik):",
 DlgTemplatesLoading	: "Sablon lista betöltése. Kis türelmet...",
 DlgTemplatesNoTpl	: "(Nincs sablon megadva)",
+DlgTemplatesReplace	: "Kicseréli a jelenlegi tartalmat",
 
 // About Dialog
-DlgAboutAboutTab	: "About",
+DlgAboutAboutTab	: "Névjegy",
 DlgAboutBrowserInfoTab	: "Böngésző információ",
+DlgAboutLicenseTab	: "Licensz",
 DlgAboutVersion		: "verzió",
-DlgAboutLicense		: "GNU Lesser General Public License szabadalom alá tartozik",
-DlgAboutInfo		: "További információkért menjen"
-}
\ No newline at end of file
+DlgAboutInfo		: "További információkért látogasson el ide:"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/it.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/it.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: it.js
- * 	Italian language file.
- * 
- * File Authors:
- * 		Simone Chiaretta (simone at piyosailing.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Italian language file.
  */
 
 var FCKLang =
@@ -22,7 +26,7 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Nasconti la barra degli strumenti",
+ToolbarCollapse		: "Nascondi la barra degli strumenti",
 ToolbarExpand		: "Mostra la barra degli strumenti",
 
 // Toolbar Items and Context Menu
@@ -84,7 +88,9 @@
 Find				: "Trova",
 Replace				: "Sostituisci",
 SpellCheck			: "Correttore ortografico",
-UniversalKeyboard	: "Tastiera univerale",
+UniversalKeyboard	: "Tastiera universale",
+PageBreakLbl		: "Interruzione di pagina",
+PageBreak			: "Inserisci interruzione di pagina",
 
 Form			: "Modulo",
 Checkbox		: "Checkbox",
@@ -96,8 +102,13 @@
 SelectionField	: "Menu di selezione",
 ImageButton		: "Bottone immagine",
 
+FitWindow		: "Massimizza l'area dell'editor",
+
 // Context Menu
 EditLink			: "Modifica collegamento",
+CellCM				: "Cella",
+RowCM				: "Riga",
+ColumnCM			: "Colonna",
 InsertRow			: "Inserisci riga",
 DeleteRows			: "Elimina righe",
 InsertColumn		: "Inserisci colonna",
@@ -106,6 +117,7 @@
 DeleteCells			: "Elimina celle",
 MergeCells			: "Unisce celle",
 SplitCell			: "Dividi celle",
+TableDelete			: "Cancella Tabella",
 CellProperties		: "Proprietà cella",
 TableProperties		: "Proprietà tabella",
 ImageProperties		: "Proprietà immagine",
@@ -122,7 +134,7 @@
 TextareaProp		: "Proprietà area di testo",
 FormProp			: "Proprietà modulo",
 
-FontFormats			: "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",
+FontFormats			: "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Elaborazione XHTML in corso. Attendere prego...",
@@ -131,9 +143,11 @@
 NotCompatiblePaste	: "Questa funzione è disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?",
 UnknownToolbarItem	: "Elemento della barra strumenti sconosciuto \"%1\"",
 UnknownCommand		: "Comando sconosciuto \"%1\"",
-NotImplemented		: "Commando non implementato",
+NotImplemented		: "Comando non implementato",
 UnknownToolbarSet	: "La barra di strumenti \"%1\" non esiste",
-NoActiveX			: "You 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
+NoActiveX			: "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.",
+BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.",
+DialogBlocked		: "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,18 +155,18 @@
 DlgBtnClose			: "Chiudi",
 DlgBtnBrowseServer	: "Cerca sul server",
 DlgAdvancedTag		: "Avanzate",
-DlgOpOther			: "&lt;Altro&gt;",
+DlgOpOther			: "<Altro>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Devi inserire l'URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;non impostato&gt;",
+DlgGenNotSet		: "<non impostato>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Direzione scrittura",
 DlgGenLangDirLtr	: "Da Sinistra a Destra (LTR)",
 DlgGenLangDirRtl	: "Da Destra a Sinistra (RTL)",
 DlgGenLangCode		: "Codice Lingua",
-DlgGenAccessKey		: "Scorciatoria<br>da tastiera",
+DlgGenAccessKey		: "Scorciatoia<br />da tastiera",
 DlgGenName			: "Nome",
 DlgGenTabIndex		: "Ordine di tabulazione",
 DlgGenLongDescr		: "URL descrizione estesa",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Ancora nella pagina",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocollo",
-DlgLnkProtoOther	: "&lt;altro&gt;",
+DlgLnkProtoOther	: "<altro>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Scegli Ancora",
 DlgLnkAnchorByName	: "Per Nome",
 DlgLnkAnchorById	: "Per id elemento",
-DlgLnkNoAnchors		: "&lt;Nessuna ancora disponibile nel documento&gt;",
+DlgLnkNoAnchors		: "<Nessuna ancora disponibile nel documento>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Indirizzo E-Mail",
 DlgLnkEMailSubject	: "Oggetto del messaggio",
 DlgLnkEMailBody		: "Corpo del messaggio",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Invia al Server",
 
 DlgLnkTarget		: "Destinazione",
-DlgLnkTargetFrame	: "&lt;riquadro&gt;",
-DlgLnkTargetPopup	: "&lt;finestra popup&gt;",
+DlgLnkTargetFrame	: "<riquadro>",
+DlgLnkTargetPopup	: "<finestra popup>",
 DlgLnkTargetBlank	: "Nuova finestra (_blank)",
 DlgLnkTargetParent	: "Finestra padre (_parent)",
 DlgLnkTargetSelf	: "Stessa finestra (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Devi inserire l'URL del collegamento",
 DlnLnkMsgNoEMail	: "Devi inserire un'indirizzo e-mail",
 DlnLnkMsgNoAnchor	: "Devi selezionare un'ancora",
+DlnLnkMsgInvPopName	: "Il nome del popup deve iniziare con una lettera, e non può contenere spazi",
 
 // Color Dialog
 DlgColorTitle		: "Seleziona colore",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "Colonne",
 DlgTableBorder		: "Dimensione bordo",
 DlgTableAlign		: "Allineamento",
-DlgTableAlignNotSet	: "&lt;non impostato&gt;",
+DlgTableAlignNotSet	: "<non impostato>",
 DlgTableAlignLeft	: "Sinistra",
 DlgTableAlignCenter	: "Centrato",
 DlgTableAlignRight	: "Destra",
@@ -278,24 +293,25 @@
 DlgTableCellSpace	: "Spaziatura celle",
 DlgTableCellPad		: "Padding celle",
 DlgTableCaption		: "Intestazione",
+DlgTableSummary		: "Indice",
 
 // Table Cell Dialog
-DlgCellTitle		: "Propriet cella",
+DlgCellTitle		: "Proprietà cella",
 DlgCellWidth		: "Larghezza",
 DlgCellWidthPx		: "pixel",
 DlgCellWidthPc		: "percento",
 DlgCellHeight		: "Altezza",
 DlgCellWordWrap		: "A capo automatico",
-DlgCellWordWrapNotSet	: "&lt;non impostato&gt;",
+DlgCellWordWrapNotSet	: "<non impostato>",
 DlgCellWordWrapYes	: "Si",
 DlgCellWordWrapNo	: "No",
 DlgCellHorAlign		: "Allineamento orizzontale",
-DlgCellHorAlignNotSet	: "&lt;non impostato&gt;",
+DlgCellHorAlignNotSet	: "<non impostato>",
 DlgCellHorAlignLeft	: "Sinistra",
 DlgCellHorAlignCenter	: "Centrato",
 DlgCellHorAlignRight: "Destra",
 DlgCellVerAlign		: "Allineamento verticale",
-DlgCellVerAlignNotSet	: "&lt;non impostato&gt;",
+DlgCellVerAlignNotSet	: "<non impostato>",
 DlgCellVerAlignTop	: "In Alto",
 DlgCellVerAlignMiddle	: "Centrato",
 DlgCellVerAlignBottom	: "In Basso",
@@ -309,7 +325,7 @@
 // Find Dialog
 DlgFindTitle		: "Trova",
 DlgFindFindBtn		: "Trova",
-DlgFindNotFoundMsg	: "L'elemento cercato non  stato trovato.",
+DlgFindNotFoundMsg	: "L'elemento cercato non è stato trovato.",
 
 // Replace Dialog
 DlgReplaceTitle			: "Sostituisci",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Solo parole intere",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Le impostazioni di sicurezza del browser non permettono di incollare automaticamente il testo. Usa la tastiera (Ctrl+V).",
 PasteErrorCut	: "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).",
 PasteErrorCopy	: "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Incolla da Word",
 
 DlgPasteMsg2	: "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignora le definizioni di Font",
 DlgPasteRemoveStyles	: "Rimuovi le definizioni di Stile",
 DlgPasteCleanBox		: "Svuota area di testo",
 
-
 // Color Picker
 ColorAutomatic	: "Automatico",
 ColorMoreColors	: "Altri colori...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Contollo ortografico non installato. Lo vuoi scaricare ora?",
 
 // Button Dialog
-DlgButtonText	: "Testo (Value)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Testo (Value)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Bottone",
+DlgButtonTypeSbm	: "Invio",
+DlgButtonTypeRst	: "Annulla",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nome",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Proprietà lista puntata",
 NumberedListProp	: "Proprietà lista numerata",
+DlgLstStart			: "Inizio",
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Tondo",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disco",
 DlgLstTypeSquare	: "Quadrato",
 DlgLstTypeNumbers	: "Numeri (1, 2, 3)",
 DlgLstTypeLCase		: "Caratteri minuscoli (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Da Destra a Sinistra (RTL)",
 DlgDocLangCode		: "Codice Lingua",
 DlgDocCharSet		: "Set di caretteri",
+DlgDocCharSetCE		: "Europa Centrale",
+DlgDocCharSetCT		: "Cinese Tradizionale (Big5)",
+DlgDocCharSetCR		: "Cirillico",
+DlgDocCharSetGR		: "Greco",
+DlgDocCharSetJP		: "Giapponese",
+DlgDocCharSetKR		: "Coreano",
+DlgDocCharSetTR		: "Turco",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europa Occidentale",
 DlgDocCharSetOther	: "Altro set di caretteri",
 
 DlgDocDocType		: "Intestazione DocType",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Modelli",
 DlgTemplatesTitle	: "Contenuto dei modelli",
-DlgTemplatesSelMsg	: "Seleziona il modello da aprire nell'editor<br>(il contenuto attuale verrà eliminato):",
+DlgTemplatesSelMsg	: "Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrà eliminato):",
 DlgTemplatesLoading	: "Caricamento modelli in corso. Attendere prego...",
 DlgTemplatesNoTpl	: "(Nessun modello definito)",
+DlgTemplatesReplace	: "Cancella il contenuto corrente",
 
 // About Dialog
 DlgAboutAboutTab	: "Informazioni",
 DlgAboutBrowserInfoTab	: "Informazioni Browser",
+DlgAboutLicenseTab	: "Licenza",
 DlgAboutVersion		: "versione",
-DlgAboutLicense		: "Rilasciato sotto la licensa GNU Lesser General Public License",
-DlgAboutInfo		: "Localizzazione in Italiano realizzata da Simone Chiaretta<br /><a target=\"_blank\" href=\"http://www.piyosailing.com/S/\">www.piyosailing.com</a><br /><br />Per maggiori informazioni visitare"
-}
\ No newline at end of file
+DlgAboutInfo		: "Per maggiori informazioni visitare"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ja.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ja.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ja.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ja.js
- * 	Japanese language file.
- * 
- * File Authors:
- * 		Takashi Yamaguchi (jack at omakase.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Japanese language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "置き換え",
 SpellCheck			: "スペルチェック",
 UniversalKeyboard	: "ユニバーサル・キーボード",
+PageBreakLbl		: "改ページ",
+PageBreak			: "改ページ挿入",
 
 Form			: "フォーム",
 Checkbox		: "チェックボックス",
@@ -96,8 +102,13 @@
 SelectionField	: "選択フィールド",
 ImageButton		: "画像ボタン",
 
+FitWindow		: "エディタサイズを最大にします",
+
 // Context Menu
 EditLink			: "リンク編集",
+CellCM				: "セル",
+RowCM				: "行",
+ColumnCM			: "カラム",
 InsertRow			: "行挿入",
 DeleteRows			: "行削除",
 InsertColumn		: "列挿入",
@@ -106,6 +117,7 @@
 DeleteCells			: "セル削除",
 MergeCells			: "セル結合",
 SplitCell			: "セル分割",
+TableDelete			: "テーブル削除",
 CellProperties		: "セル プロパティ",
 TableProperties		: "テーブル プロパティ",
 ImageProperties		: "イメージ プロパティ",
@@ -122,7 +134,7 @@
 TextareaProp		: "テキストエリア プロパティ",
 FormProp			: "フォーム プロパティ",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "標準;書式付き;アドレス;見出し 1;見出し 2;見出し 3;見出し 4;見出し 5;見出し 6;標準 (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "XHTML処理中. しばらくお待ちください...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "未知のコマンド名 \"%1\"",
 NotImplemented		: "コマンドはインプリメントされませんでした。",
 UnknownToolbarSet	: "ツールバー設定 \"%1\" 存在しません。",
-NoActiveX			: "You 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
+NoActiveX			: "エラー、警告メッセージなどが発生した場合、ブラウザーのセキュリティ設定によりエディタのいくつかの機能が制限されている可能性があります。セキュリティ設定のオプションで\"ActiveXコントロールとプラグインの実行\"を有効にするにしてください。",
+BrowseServerBlocked : "サーバーブラウザーを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
+DialogBlocked		: "ダイアログウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "閉じる",
 DlgBtnBrowseServer	: "サーバーブラウザー",
 DlgAdvancedTag		: "高度な設定",
-DlgOpOther			: "&lt;その他&gt;",
+DlgOpOther			: "<その他>",
 DlgInfoTab			: "情報",
 DlgAlertUrl			: "URLを挿入してください",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;なし&gt;",
+DlgGenNotSet		: "<なし>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "文字表記の方向",
 DlgGenLangDirLtr	: "左から右 (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "このページのアンカー",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "プロトコル",
-DlgLnkProtoOther	: "&lt;その他&gt;",
+DlgLnkProtoOther	: "<その他>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "アンカーを選択",
 DlgLnkAnchorByName	: "アンカー名",
 DlgLnkAnchorById	: "エレメントID",
-DlgLnkNoAnchors		: "&lt;ドキュメントにおいて利用可能なアンカーはありません。&gt;",
+DlgLnkNoAnchors		: "<ドキュメントにおいて利用可能なアンカーはありません。>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail アドレス",
 DlgLnkEMailSubject	: "件名",
 DlgLnkEMailBody		: "本文",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "サーバーに送信",
 
 DlgLnkTarget		: "ターゲット",
-DlgLnkTargetFrame	: "&lt;フレーム&gt;",
-DlgLnkTargetPopup	: "&lt;ポップアップウィンドウ&gt;",
+DlgLnkTargetFrame	: "<フレーム>",
+DlgLnkTargetPopup	: "<ポップアップウィンドウ>",
 DlgLnkTargetBlank	: "新しいウィンドウ (_blank)",
 DlgLnkTargetParent	: "親ウィンドウ (_parent)",
 DlgLnkTargetSelf	: "同じウィンドウ (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "リンクURLを入力してください。",
 DlnLnkMsgNoEMail	: "メールアドレスを入力してください。",
 DlnLnkMsgNoAnchor	: "アンカーを選択してください。",
+DlnLnkMsgInvPopName	: "ポップ・アップ名は英字で始まる文字で指定してくだい。ポップ・アップ名にスペースは含めません",
 
 // Color Dialog
 DlgColorTitle		: "色選択",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "セル内余白",
 DlgTableCellPad		: "セル内間隔",
 DlgTableCaption		: "キャプション",
+DlgTableSummary		: "テーブル目的/構造",
 
 // Table Cell Dialog
 DlgCellTitle		: "セル プロパティ",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "パーセント",
 DlgCellHeight		: "高さ",
 DlgCellWordWrap		: "折り返し",
-DlgCellWordWrapNotSet	: "&lt;なし&gt;",
+DlgCellWordWrapNotSet	: "<なし>",
 DlgCellWordWrapYes	: "Yes",
 DlgCellWordWrapNo	: "No",
 DlgCellHorAlign		: "セル横の整列",
-DlgCellHorAlignNotSet	: "&lt;なし&gt;",
+DlgCellHorAlignNotSet	: "<なし>",
 DlgCellHorAlignLeft	: "å·¦",
 DlgCellHorAlignCenter	: "中央",
 DlgCellHorAlignRight: "右",
 DlgCellVerAlign		: "セル縦の整列",
-DlgCellVerAlignNotSet	: "&lt;なし&gt;",
+DlgCellVerAlignNotSet	: "<なし>",
 DlgCellVerAlignTop	: "上",
 DlgCellVerAlignMiddle	: "中央",
 DlgCellVerAlignBottom	: "下",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "単語単位で一致",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "ブラウザーのセキュリティ設定によりエディタの貼り付け操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+V)を使用してください。",
 PasteErrorCut	: "ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。",
 PasteErrorCopy	: "ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "ワード文章から貼り付け",
 
 DlgPasteMsg2	: "キーボード(<STRONG>Ctrl+V</STRONG>)を使用して、次の入力エリア内で貼って、<STRONG>OK</STRONG>を押してください。",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "FontタグのFace属性を無視します。",
 DlgPasteRemoveStyles	: "スタイル定義を削除します。",
 DlgPasteCleanBox		: "入力エリアクリア",
 
-
 // Color Picker
 ColorAutomatic	: "自動",
 ColorMoreColors	: "その他の色...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "スペルチェッカーがインストールされていません。今すぐダウンロードしますか?",
 
 // Button Dialog
-DlgButtonText	: "テキスト (値)",
-DlgButtonType	: "タイプ",
+DlgButtonText		: "テキスト (値)",
+DlgButtonType		: "タイプ",
+DlgButtonTypeBtn	: "ボタン",
+DlgButtonTypeSbm	: "送信",
+DlgButtonTypeRst	: "リセット",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "名前",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "箇条書き プロパティ",
 NumberedListProp	: "段落番号 プロパティ",
+DlgLstStart			: "開始文字",
 DlgLstType			: "タイプ",
 DlgLstTypeCircle	: "白丸",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "黒丸",
 DlgLstTypeSquare	: "四角",
 DlgLstTypeNumbers	: "アラビア数字 (1, 2, 3)",
 DlgLstTypeLCase		: "英字小文字 (a, b, c)",
@@ -432,10 +451,19 @@
 
 DlgDocPageTitle		: "ページタイトル",
 DlgDocLangDir		: "言語文字表記の方向",
-DlgDocLangDirLTR	: "左から右に文字表記します(LTR)",
-DlgDocLangDirRTL	: "右から左に文字表記します(RTL)",
+DlgDocLangDirLTR	: "左から右に表記(LTR)",
+DlgDocLangDirRTL	: "右から左に表記(RTL)",
 DlgDocLangCode		: "言語コード",
 DlgDocCharSet		: "文字セット符号化",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
 DlgDocCharSetOther	: "他の文字セット符号化",
 
 DlgDocDocType		: "文書タイプヘッダー",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "エディターで使用するテンプレートを選択してください。<br>(現在のエディタの内容は失われます):",
 DlgTemplatesLoading	: "テンプレート一覧読み込み中. しばらくお待ちください...",
 DlgTemplatesNoTpl	: "(テンプレートが定義されていません)",
+DlgTemplatesReplace	: "現在のエディタの内容と置換えをします",
 
 // About Dialog
 DlgAboutAboutTab	: "バージョン情報",
 DlgAboutBrowserInfoTab	: "ブラウザ情報",
+DlgAboutLicenseTab	: "ライセンス",
 DlgAboutVersion		: "バージョン",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
 DlgAboutInfo		: "より詳しい情報はこちらで"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/km.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/km.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/km.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Khmer 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			: "ចំលងដាក់ពី Word",
+Print				: "បោះពុម្ភ",
+SelectAll			: "ជ្រើសរើសទាំងអស់",
+RemoveFormat		: "លប់ចោល ការរចនា",
+InsertLinkLbl		: "ឈ្នាប់",
+InsertLink			: "បន្ថែម/កែប្រែ ឈ្នាប់",
+RemoveLink			: "លប់ឈ្នាប់",
+Anchor				: "បន្ថែម/កែប្រែ យុថ្កា",
+InsertImageLbl		: "រូបភាព",
+InsertImage			: "បន្ថែម/កែប្រែ រូបភាព",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "បន្ថែម/កែប្រែ Flash",
+InsertTableLbl		: "តារាង",
+InsertTable			: "បន្ថែម/កែប្រែ តារាង",
+InsertLineLbl		: "បន្ទាត់",
+InsertLine			: "បន្ថែមបន្ទាត់ផ្តេក",
+InsertSpecialCharLbl: "អក្សរពិសេស",
+InsertSpecialChar	: "បន្ថែមអក្សរពិសេស",
+InsertSmileyLbl		: "រូបភាព",
+InsertSmiley		: "បន្ថែម រូបភាព",
+About				: "អំពី FCKeditor",
+Bold				: "អក្សរដិតធំ",
+Italic				: "អក្សរផ្តេក",
+Underline			: "ដិតបន្ទាត់ពីក្រោមអក្សរ",
+StrikeThrough		: "ដិតបន្ទាត់ពាក់កណ្តាលអក្សរ",
+Subscript			: "អក្សរតូចក្រោម",
+Superscript			: "អក្សរតូចលើ",
+LeftJustify			: "តំរឹមឆ្វេង",
+CenterJustify		: "តំរឹមកណ្តាល",
+RightJustify		: "តំរឹមស្តាំ",
+BlockJustify		: "តំរឹមសងខាង",
+DecreaseIndent		: "បន្ថយការចូលបន្ទាត់",
+IncreaseIndent		: "បន្ថែមការចូលបន្ទាត់",
+Undo				: "សារឡើងវិញ",
+Redo				: "ធ្វើឡើងវិញ",
+NumberedListLbl		: "បញ្ជីជាអក្សរ",
+NumberedList		: "បន្ថែម/លប់ បញ្ជីជាអក្សរ",
+BulletedListLbl		: "បញ្ជីជារង្វង់មូល",
+BulletedList		: "បន្ថែម/លប់ បញ្ជីជារង្វង់មូល",
+ShowTableBorders	: "បង្ហាញស៊ុមតារាង",
+ShowDetails			: "បង្ហាញពិស្តារ",
+Style				: "ម៉ូត",
+FontFormat			: "រចនា",
+Font				: "ហ្វុង",
+FontSize			: "ទំហំ",
+TextColor			: "ពណ៌អក្សរ",
+BGColor				: "ពណ៌ផ្ទៃខាងក្រោយ",
+Source				: "កូត",
+Find				: "ស្វែងរក",
+Replace				: "ជំនួស",
+SpellCheck			: "ពិនិត្យអក្ខរាវិរុទ្ធ",
+UniversalKeyboard	: "ក្តារពុម្ភអក្សរសកល",
+PageBreakLbl		: "ការផ្តាច់ទំព័រ",
+PageBreak			: "បន្ថែម ការផ្តាច់ទំព័រ",
+
+Form			: "បែបបទ",
+Checkbox		: "ប្រអប់ជ្រើសរើស",
+RadioButton		: "ប៉ូតុនរង្វង់មូល",
+TextField		: "ជួរសរសេរអត្ថបទ",
+Textarea		: "តំបន់សរសេរអត្ថបទ",
+HiddenField		: "ជួរលាក់",
+Button			: "ប៉ូតុន",
+SelectionField	: "ជួរជ្រើសរើស",
+ImageButton		: "ប៉ូតុនរូបភាព",
+
+FitWindow		: "Maximize the editor size",	//MISSING
+
+// Context Menu
+EditLink			: "កែប្រែឈ្នាប់",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
+InsertRow			: "បន្ថែមជួរផ្តេក",
+DeleteRows			: "លប់ជួរផ្តេក",
+InsertColumn		: "បន្ថែមជួរឈរ",
+DeleteColumns		: "លប់ជួរឈរ",
+InsertCell			: "បន្ថែម សែល",
+DeleteCells			: "លប់សែល",
+MergeCells			: "បញ្ជូលសែល",
+SplitCell			: "ផ្តាច់សែល",
+TableDelete			: "លប់តារាង",
+CellProperties		: "ការកំណត់សែល",
+TableProperties		: "ការកំណត់តារាង",
+ImageProperties		: "ការកំណត់រូបភាព",
+FlashProperties		: "ការកំណត់ Flash",
+
+AnchorProp			: "ការកំណត់យុថ្កា",
+ButtonProp			: "ការកំណត់ ប៉ូតុន",
+CheckboxProp		: "ការកំណត់ប្រអប់ជ្រើសរើស",
+HiddenFieldProp		: "ការកំណត់ជួរលាក់",
+RadioButtonProp		: "ការកំណត់ប៉ូតុនរង្វង់",
+ImageButtonProp		: "ការកំណត់ប៉ូតុនរូបភាព",
+TextFieldProp		: "ការកំណត់ជួរអត្ថបទ",
+SelectionFieldProp	: "ការកំណត់ជួរជ្រើសរើស",
+TextareaProp		: "ការកំណត់កន្លែងសរសេរអត្ថបទ",
+FormProp			: "ការកំណត់បែបបទ",
+
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...",
+Done				: "ចប់រួចរាល់",
+PasteWordConfirm	: "អត្ថបទដែលលោកអ្នកបំរុងចំលងដាក់ ហាក់បីដូចជាត្រូវចំលងមកពីកម្មវិធី​Word​។ តើលោកអ្នកចង់សំអាតមុនចំលងអត្ថបទដាក់ទេ?",
+NotCompatiblePaste	: "ពាក្យបញ្ជានេះប្រើបានតែជាមួយ Internet Explorer កំរិត 5.5 រឺ លើសនេះ ។ តើលោកអ្នកចង់ចំលងដាក់ដោយមិនចាំបាច់សំអាតទេ?",
+UnknownToolbarItem	: "វត្ថុលើរបាឧបរកណ៍ មិនស្គាល់ \"%1\"",
+UnknownCommand		: "ឈ្មោះពាក្យបញ្ជា មិនស្គាល់ \"%1\"",
+NotImplemented		: "ពាក្យបញ្ជា មិនបានអនុវត្ត",
+UnknownToolbarSet	: "របាឧបរកណ៍ \"%1\" ពុំមាន ។",
+NoActiveX			: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​អាចធ្វើអោយលោកអ្នកមិនអាចប្រើមុខងារខ្លះរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។ លោកអ្នកត្រូវកំណត់អោយ \"ActiveX និង​កម្មវិធីជំនួយក្នុង (plug-ins)\" អោយដំណើរការ ។ លោកអ្នកអាចជួបប្រទះនឹង បញ្ហា ព្រមជាមួយនឹងការបាត់បង់មុខងារណាមួយរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។",
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "វីនដូវមិនអាចបើកបានទេ ។ សូមពិនិត្យចំពោះកម្មវិធីបិទ វីនដូវលោត (popup) ថាតើវាដំណើរការរឺទេ ។",
+
+// Dialogs
+DlgBtnOK			: "យល់ព្រម",
+DlgBtnCancel		: "មិនយល់ព្រម",
+DlgBtnClose			: "បិទ",
+DlgBtnBrowseServer	: "មើល",
+DlgAdvancedTag		: "កំរិតខ្ពស់",
+DlgOpOther			: "<ផ្សេងទៅត>",
+DlgInfoTab			: "ពត៌មាន",
+DlgAlertUrl			: "សូមសរសេរ URL",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<មិនមែន>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "ទិសដៅភាសា",
+DlgGenLangDirLtr	: "ពីឆ្វេងទៅស្តាំ(LTR)",
+DlgGenLangDirRtl	: "ពីស្តាំទៅឆ្វេង(RTL)",
+DlgGenLangCode		: "លេខកូតភាសា",
+DlgGenAccessKey		: "ឃី សំរាប់ចូល",
+DlgGenName			: "ឈ្មោះ",
+DlgGenTabIndex		: "លេខ Tab",
+DlgGenLongDescr		: "អធិប្បាយ URL វែង",
+DlgGenClass			: "Stylesheet Classes",
+DlgGenTitle			: "ចំណងជើង ប្រឹក្សា",
+DlgGenContType		: "ប្រភេទអត្ថបទ ប្រឹក្សា",
+DlgGenLinkCharset	: "លេខកូតអក្សររបស់ឈ្នាប់",
+DlgGenStyle			: "ម៉ូត",
+
+// Image Dialog
+DlgImgTitle			: "ការកំណត់រូបភាព",
+DlgImgInfoTab		: "ពត៌មានអំពីរូបភាព",
+DlgImgBtnUpload		: "បញ្ជូនទៅកាន់ម៉ាស៊ីនផ្តល់សេវា",
+DlgImgURL			: "URL",
+DlgImgUpload		: "ទាញយក",
+DlgImgAlt			: "អត្ថបទជំនួស",
+DlgImgWidth			: "ទទឹង",
+DlgImgHeight		: "កំពស់",
+DlgImgLockRatio		: "អត្រាឡុក",
+DlgBtnResetSize		: "កំណត់ទំហំឡើងវិញ",
+DlgImgBorder		: "ស៊ុម",
+DlgImgHSpace		: "គំលាតទទឹង",
+DlgImgVSpace		: "គំលាតបណ្តោយ",
+DlgImgAlign			: "កំណត់ទីតាំង",
+DlgImgAlignLeft		: "ខាងឆ្វង",
+DlgImgAlignAbsBottom: "Abs Bottom",	//MISSING
+DlgImgAlignAbsMiddle: "Abs Middle",	//MISSING
+DlgImgAlignBaseline	: "បន្ទាត់ជាមូលដ្ឋាន",
+DlgImgAlignBottom	: "ខាងក្រោម",
+DlgImgAlignMiddle	: "កណ្តាល",
+DlgImgAlignRight	: "ខាងស្តាំ",
+DlgImgAlignTextTop	: "លើអត្ថបទ",
+DlgImgAlignTop		: "ខាងលើ",
+DlgImgPreview		: "មើលសាកល្បង",
+DlgImgAlertUrl		: "សូមសរសេរងាស័យដ្ឋានរបស់រូបភាព",
+DlgImgLinkTab		: "ឈ្នាប់",
+
+// Flash Dialog
+DlgFlashTitle		: "ការកំណត់ Flash",
+DlgFlashChkPlay		: "លេងដោយស្វ័យប្រវត្ត",
+DlgFlashChkLoop		: "ចំនួនដង",
+DlgFlashChkMenu		: "បង្ហាញ មឺនុយរបស់ Flash",
+DlgFlashScale		: "ទំហំ",
+DlgFlashScaleAll	: "បង្ហាញទាំងអស់",
+DlgFlashScaleNoBorder	: "មិនបង្ហាញស៊ុម",
+DlgFlashScaleFit	: "ត្រូវល្មម",
+
+// Link Dialog
+DlgLnkWindowTitle	: "ឈ្នាប់",
+DlgLnkInfoTab		: "ពត៌មានអំពីឈ្នាប់",
+DlgLnkTargetTab		: "គោលដៅ",
+
+DlgLnkType			: "ប្រភេទឈ្នាប់",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "យុថ្កានៅក្នុងទំព័រនេះ",
+DlgLnkTypeEMail		: "អ៊ីមែល",
+DlgLnkProto			: "ប្រូតូកូល",
+DlgLnkProtoOther	: "<ផ្សេងទៀត>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "ជ្រើសរើសយុថ្កា",
+DlgLnkAnchorByName	: "តាមឈ្មោះរបស់យុថ្កា",
+DlgLnkAnchorById	: "តាម Id",
+DlgLnkNoAnchors		: "<ពុំមានយុថ្កានៅក្នុងឯកសារនេះទេ>",		//REVIEW : Change < and > with ( and )
+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	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "ជ្រើសរើស ពណ៌",
+DlgColorBtnClear	: "លប់",
+DlgColorHighlight	: "ផាត់ពណ៌",
+DlgColorSelected	: "បានជ្រើសរើស",
+
+// Smiley Dialog
+DlgSmileyTitle		: "បញ្ជូលរូបភាព",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "តូអក្សរពិសេស",
+
+// Table Dialog
+DlgTableTitle		: "ការកំណត់ តារាង",
+DlgTableRows		: "ជួរផ្តេក",
+DlgTableColumns		: "ជួរឈរ",
+DlgTableBorder		: "ទំហំស៊ុម",
+DlgTableAlign		: "ការកំណត់ទីតាំង",
+DlgTableAlignNotSet	: "<មិនកំណត់>",
+DlgTableAlignLeft	: "ខាងឆ្វេង",
+DlgTableAlignCenter	: "កណ្តាល",
+DlgTableAlignRight	: "ខាងស្តាំ",
+DlgTableWidth		: "ទទឹង",
+DlgTableWidthPx		: "ភីកសែល",
+DlgTableWidthPc		: "ភាគរយ",
+DlgTableHeight		: "កំពស់",
+DlgTableCellSpace	: "គំលាតសែល",
+DlgTableCellPad		: "គែមសែល",
+DlgTableCaption		: "ចំណងជើង",
+DlgTableSummary		: "សេចក្តីសង្ខេប",
+
+// Table Cell Dialog
+DlgCellTitle		: "ការកំណត់ សែល",
+DlgCellWidth		: "ទទឹង",
+DlgCellWidthPx		: "ភីកសែល",
+DlgCellWidthPc		: "ភាគរយ",
+DlgCellHeight		: "កំពស់",
+DlgCellWordWrap		: "បង្ហាញអត្ថបទទាំងអស់",
+DlgCellWordWrapNotSet	: "<មិនកំណត់>",
+DlgCellWordWrapYes	: "បាទ(ចា)",
+DlgCellWordWrapNo	: "ទេ",
+DlgCellHorAlign		: "តំរឹមផ្តេក",
+DlgCellHorAlignNotSet	: "<មិនកំណត់>",
+DlgCellHorAlignLeft	: "ខាងឆ្វេង",
+DlgCellHorAlignCenter	: "កណ្តាល",
+DlgCellHorAlignRight: "Right",	//MISSING
+DlgCellVerAlign		: "តំរឹមឈរ",
+DlgCellVerAlignNotSet	: "<មិនកណត់>",
+DlgCellVerAlignTop	: "ខាងលើ",
+DlgCellVerAlignMiddle	: "កណ្តាល",
+DlgCellVerAlignBottom	: "ខាងក្រោម",
+DlgCellVerAlignBaseline	: "បន្ទាត់ជាមូលដ្ឋាន",
+DlgCellRowSpan		: "បញ្ជូលជួរផ្តេក",
+DlgCellCollSpan		: "បញ្ជូលជួរឈរ",
+DlgCellBackColor	: "ពណ៌ផ្នែកខាងក្រោម",
+DlgCellBorderColor	: "ពណ៌ស៊ុម",
+DlgCellBtnSelect	: "ជ្រើសរើស...",
+
+// Find Dialog
+DlgFindTitle		: "ស្វែងរក",
+DlgFindFindBtn		: "ស្វែងរក",
+DlgFindNotFoundMsg	: "ពាក្យនេះ រកមិនឃើញទេ ។",
+
+// Replace Dialog
+DlgReplaceTitle			: "ជំនួស",
+DlgReplaceFindLbl		: "ស្វែងរកអ្វី:",
+DlgReplaceReplaceLbl	: "ជំនួសជាមួយ:",
+DlgReplaceCaseChk		: "ករណ៉ត្រូវរក",
+DlgReplaceReplaceBtn	: "ជំនួស",
+DlgReplaceReplAllBtn	: "ជំនួសទាំងអស់",
+DlgReplaceWordChk		: "ត្រូវពាក្យទាំងអស់",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl+X) ។",
+PasteErrorCopy	: "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl+C)។",
+
+PasteAsText		: "ចំលងដាក់អត្ថបទធម្មតា",
+PasteFromWord	: "ចំលងពាក្យពីកម្មវិធី Word",
+
+DlgPasteMsg2	: "សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "មិនគិតអំពីប្រភេទពុម្ភអក្សរ",
+DlgPasteRemoveStyles	: "លប់ម៉ូត",
+DlgPasteCleanBox		: "លប់អត្ថបទចេញពីប្រអប់",
+
+// 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	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "ឈ្មោះ",
+DlgCheckboxValue	: "តំលៃ",
+DlgCheckboxSelected	: "បានជ្រើសរើស",
+
+// Form Dialog
+DlgFormName		: "ឈ្មោះ",
+DlgFormAction	: "សកម្មភាព",
+DlgFormMethod	: "វិធី",
+
+// Select Field Dialog
+DlgSelectName		: "ឈ្មោះ",
+DlgSelectValue		: "តំលៃ",
+DlgSelectSize		: "ទំហំ",
+DlgSelectLines		: "បន្ទាត់",
+DlgSelectChkMulti	: "អនុញ្ញាតអោយជ្រើសរើសច្រើន",
+DlgSelectOpAvail	: "ការកំណត់ជ្រើសរើស ដែលអាចកំណត់បាន",
+DlgSelectOpText		: "ពាក្យ",
+DlgSelectOpValue	: "តំលៃ",
+DlgSelectBtnAdd		: "បន្ថែម",
+DlgSelectBtnModify	: "ផ្លាស់ប្តូរ",
+DlgSelectBtnUp		: "លើ",
+DlgSelectBtnDown	: "ក្រោម",
+DlgSelectBtnSetValue : "Set as selected value",	//MISSING
+DlgSelectBtnDelete	: "លប់",
+
+// Textarea Dialog
+DlgTextareaName	: "ឈ្មោះ",
+DlgTextareaCols	: "ជូរឈរ",
+DlgTextareaRows	: "ជូរផ្តេក",
+
+// Text Field Dialog
+DlgTextName			: "ឈ្មោះ",
+DlgTextValue		: "តំលៃ",
+DlgTextCharWidth	: "ទទឹង អក្សរ",
+DlgTextMaxChars		: "អក្សរអតិបរិមា",
+DlgTextType			: "ប្រភេទ",
+DlgTextTypeText		: "ពាក្យ",
+DlgTextTypePass		: "ពាក្យសំងាត់",
+
+// Hidden Field Dialog
+DlgHiddenName	: "ឈ្មោះ",
+DlgHiddenValue	: "តំលៃ",
+
+// Bulleted List Dialog
+BulletedListProp	: "កំណត់បញ្ជីរង្វង់",
+NumberedListProp	: "កំណត់បញ្េជីលេខ",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "ប្រភេទ",
+DlgLstTypeCircle	: "រង្វង់",
+DlgLstTypeDisc		: "Disc",
+DlgLstTypeSquare	: "ការេ",
+DlgLstTypeNumbers	: "លេខ(1, 2, 3)",
+DlgLstTypeLCase		: "អក្សរតូច(a, b, c)",
+DlgLstTypeUCase		: "អក្សរធំ(A, B, C)",
+DlgLstTypeSRoman	: "អក្សរឡាតាំងតូច(i, ii, iii)",
+DlgLstTypeLRoman	: "អក្សរឡាតាំងធំ(I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "ទូទៅ",
+DlgDocBackTab		: "ផ្នែកខាងក្រោយ",
+DlgDocColorsTab		: "ទំព័រ​និង ស៊ុម",
+DlgDocMetaTab		: "ទិន្នន័យមេ",
+
+DlgDocPageTitle		: "ចំណងជើងទំព័រ",
+DlgDocLangDir		: "ទិសដៅសរសេរភាសា",
+DlgDocLangDirLTR	: "ពីឆ្វេងទៅស្ដាំ(LTR)",
+DlgDocLangDirRTL	: "ពីស្ដាំទៅឆ្វេង(RTL)",
+DlgDocLangCode		: "លេខកូតភាសា",
+DlgDocCharSet		: "កំណត់លេខកូតភាសា",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "កំណត់លេខកូតភាសាផ្សេងទៀត",
+
+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	: "សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ<br>(អត្ថបទនឹងបាត់បង់):",
+DlgTemplatesLoading	: "កំពុងអានបញ្ជីឯកសារគំរូ ។ សូមរងចាំ...",
+DlgTemplatesNoTpl	: "(ពុំមានឯកសារគំរូត្រូវបានកំណត់)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "អំពី",
+DlgAboutBrowserInfoTab	: "ព៌តមានកម្មវិធីរុករក",
+DlgAboutLicenseTab	: "License",	//MISSING
+DlgAboutVersion		: "ជំនាន់",
+DlgAboutInfo		: "សំរាប់ព៌តមានផ្សេងទៀត សូមទាក់ទង"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ko.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ko.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ko.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ko.js
- * 	Korean language file.
- * 
- * File Authors:
- * 		Taehwan Kwag (thkwag at nate.com)
- * 		Hyung-chae, Kim (chaeya at gmail.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Korean language file.
  */
 
 var FCKLang =
@@ -86,6 +89,8 @@
 Replace				: "바꾸기",
 SpellCheck			: "철자검사",
 UniversalKeyboard	: "다국어 입력기",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "폼",
 Checkbox		: "체크박스",
@@ -97,8 +102,13 @@
 SelectionField	: "펼침목록",
 ImageButton		: "이미지버튼",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "링크 수정",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "가로줄 삽입",
 DeleteRows			: "가로줄 삭제",
 InsertColumn		: "세로줄 삽입",
@@ -107,6 +117,7 @@
 DeleteCells			: "셀 삭제",
 MergeCells			: "셀 합치기",
 SplitCell			: "셀 나누기",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "셀 속성",
 TableProperties		: "표 속성",
 ImageProperties		: "이미지 속성",
@@ -123,7 +134,7 @@
 TextareaProp		: "입력영역 속성",
 FormProp			: "폼 속성",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "XHTML 처리중. 잠시만 기다려주십시요.",
@@ -134,7 +145,9 @@
 UnknownCommand		: "알수없는 기능입니다. : \"%1\"",
 NotImplemented		: "기능이 실행되지 않았습니다.",
 UnknownToolbarSet	: "툴바 설정이 없습니다. : \"%1\"",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "예",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "닫기",
 DlgBtnBrowseServer	: "서버 보기",
 DlgAdvancedTag		: "자세히",
-DlgOpOther			: "&lt;기타&gt;",
+DlgOpOther			: "<기타>",
 DlgInfoTab			: "ì •ë³´",
 DlgAlertUrl			: "URL을 입력하십시요",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;설정되지 않음&gt;",
+DlgGenNotSet		: "<설정되지 않음>",
 DlgGenId			: "ID",
 DlgGenLangDir		: "쓰기 방향",
 DlgGenLangDirLtr	: "왼쪽에서 오른쪽 (LTR)",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "책갈피",
 DlgLnkTypeEMail		: "이메일",
 DlgLnkProto			: "프로토콜",
-DlgLnkProtoOther	: "&lt;기타&gt;",
+DlgLnkProtoOther	: "<기타>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "책갈피 선택",
 DlgLnkAnchorByName	: "책갈피 이름",
 DlgLnkAnchorById	: "책갈피 ID",
-DlgLnkNoAnchors		: "&lt;문서에 책갈피가 없습니다.&gt;",
+DlgLnkNoAnchors		: "<문서에 책갈피가 없습니다.>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "이메일 주소",
 DlgLnkEMailSubject	: "제목",
 DlgLnkEMailBody		: "ë‚´ìš©",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "서버로 전송",
 
 DlgLnkTarget		: "타겟",
-DlgLnkTargetFrame	: "&lt;프레임&gt;",
-DlgLnkTargetPopup	: "&lt;팝업창&gt;",
+DlgLnkTargetFrame	: "<프레임>",
+DlgLnkTargetPopup	: "<팝업창>",
 DlgLnkTargetBlank	: "새 창 (_blank)",
 DlgLnkTargetParent	: "부모 창 (_parent)",
 DlgLnkTargetSelf	: "현재 창 (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "링크 URL을 입력하십시요.",
 DlnLnkMsgNoEMail	: "이메일주소를 입력하십시요.",
 DlnLnkMsgNoAnchor	: "책갈피명을 입력하십시요.",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "색상 선택",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "셀 간격",
 DlgTableCellPad		: "셀 여백",
 DlgTableCaption		: "캡션",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "셀 설정",
@@ -322,7 +337,6 @@
 DlgReplaceWordChk		: "온전한 단어",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "브라우저의 보안설정때문에 붙여넣기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+V).",
 PasteErrorCut	: "브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).",
 PasteErrorCopy	: "브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요.  (Ctrl+C).",
 
@@ -330,11 +344,11 @@
 PasteFromWord	: "MS Word 형식에서 붙여넣기",
 
 DlgPasteMsg2	: "키보드의 (<STRONG>Ctrl+V</STRONG>) 를 이용해서 상자안에 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "폰트 설정 무시",
 DlgPasteRemoveStyles	: "스타일 정의 제거",
 DlgPasteCleanBox		: "글상자 제거",
 
-
 // Color Picker
 ColorAutomatic	: "기본색상",
 ColorMoreColors	: "색상선택...",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?",
 
 // Button Dialog
-DlgButtonText	: "버튼글자(값)",
-DlgButtonType	: "버튼종류",
+DlgButtonText		: "버튼글자(값)",
+DlgButtonType		: "버튼종류",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "이름",
@@ -415,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "순서없는 목록 속성",
 NumberedListProp	: "순서있는 목록 속성",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "종류",
 DlgLstTypeCircle	: "원(Circle)",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "오른쪽에서 왼쪽 (RTL)",
 DlgDocLangCode		: "언어코드",
 DlgDocCharSet		: "캐릭터셋 인코딩",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "다른 캐릭터셋 인코딩",
 
 DlgDocDocType		: "문서 헤드",
@@ -466,11 +493,12 @@
 DlgTemplatesSelMsg	: "에디터에서 사용할 템플릿을 선택하십시요.<br>(지금까지 작성된 내용은 사라집니다.):",
 DlgTemplatesLoading	: "템플릿 목록을 불러오는중입니다. 잠시만 기다려주십시요.",
 DlgTemplatesNoTpl	: "(템플릿이 없습니다.)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "About",
 DlgAboutBrowserInfoTab	: "브라우저 정보",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "버전",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
 DlgAboutInfo		: "For further information go to"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/lt.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/lt.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/lt.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: lt.js
- * 	Lithuanian language file.
- * 
- * File Authors:
- * 		Tauras Paliulis (tauras.paliulis at tauras.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Lithuanian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Pakeisti",
 SpellCheck			: "Rašybos tikrinimas",
 UniversalKeyboard	: "Universali klaviatūra",
+PageBreakLbl		: "Puslapių skirtukas",
+PageBreak			: "Įterpti puslapių skirtuką",
 
 Form			: "Forma",
 Checkbox		: "Žymimasis langelis",
@@ -96,8 +102,13 @@
 SelectionField	: "Atrankos laukas",
 ImageButton		: "Vaizdinis mygtukas",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Taisyti nuorodÄ…",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Įterpti eilutę",
 DeleteRows			: "Å alinti eilutes",
 InsertColumn		: "Įterpti stulpelį",
@@ -106,6 +117,7 @@
 DeleteCells			: "Å alinti langelius",
 MergeCells			: "Sujungti langelius",
 SplitCell			: "Skaidyti langelius",
+TableDelete			: "Å alinti lentelÄ™",
 CellProperties		: "Langelio savybÄ—s",
 TableProperties		: "LentelÄ—s savybÄ—s",
 ImageProperties		: "Vaizdo savybÄ—s",
@@ -122,7 +134,7 @@
 TextareaProp		: "Teksto srities savybÄ—s",
 FormProp			: "Formos savybÄ—s",
 
-FontFormats			: "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6",
+FontFormats			: "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Apdorojamas XHTML. Prašome palaukti...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nežinomas komandos vardas \"%1\"",
 NotImplemented		: "Komanda nėra įgyvendinta",
 UnknownToolbarSet	: "Mygtukų juostos rinkinys \"%1\" neegzistuoja",
-NoActiveX			: "You 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
+NoActiveX			: "Jūsų naršyklės saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. Jūs turite aktyvuoti opciją \"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.",
+BrowseServerBlocked : "Neįmanoma atidaryti naujo naršyklės lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
+DialogBlocked		: "Neįmanoma atidaryti dialogo lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Uždaryti",
 DlgBtnBrowseServer	: "Naršyti po serverį",
 DlgAdvancedTag		: "Papildomas",
-DlgOpOther			: "&lt;Kita&gt;",
+DlgOpOther			: "<Kita>",
 DlgInfoTab			: "Informacija",
 DlgAlertUrl			: "Prašome įrašyti URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nÄ—ra nustatyta&gt;",
+DlgGenNotSet		: "<nÄ—ra nustatyta>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Teksto kryptis",
 DlgGenLangDirLtr	: "Iš kairės į dešinę (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Žymė šiame puslapyje",
 DlgLnkTypeEMail		: "El.paštas",
 DlgLnkProto			: "Protokolas",
-DlgLnkProtoOther	: "&lt;kitas&gt;",
+DlgLnkProtoOther	: "<kitas>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Pasirinkite žymę",
 DlgLnkAnchorByName	: "Pagal žymės vardą",
 DlgLnkAnchorById	: "Pagal žymės Id",
-DlgLnkNoAnchors		: "&lt;Šiame dokumente žymių nėra&gt;",
+DlgLnkNoAnchors		: "<Šiame dokumente žymių nėra>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "El.pašto adresas",
 DlgLnkEMailSubject	: "Žinutės tema",
 DlgLnkEMailBody		: "Žinutės turinys",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Siųsti į serverį",
 
 DlgLnkTarget		: "Paskirties vieta",
-DlgLnkTargetFrame	: "&lt;kadras&gt;",
-DlgLnkTargetPopup	: "&lt;išskleidžiamas langas&gt;",
+DlgLnkTargetFrame	: "<kadras>",
+DlgLnkTargetPopup	: "<išskleidžiamas langas>",
 DlgLnkTargetBlank	: "Naujas langas (_blank)",
 DlgLnkTargetParent	: "Pirminis langas (_parent)",
 DlgLnkTargetSelf	: "Tas pats langas (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Prašome įvesti nuorodos URL",
 DlnLnkMsgNoEMail	: "Prašome įvesti el.pašto adresą",
 DlnLnkMsgNoAnchor	: "Prašome pasirinkti žymę",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Pasirinkite spalvÄ…",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Tarpas tarp langelių",
 DlgTableCellPad		: "Trapas nuo langelio rÄ—mo iki teksto",
 DlgTableCaption		: "Antraštė",
+DlgTableSummary		: "Santrauka",
 
 // Table Cell Dialog
 DlgCellTitle		: "Langelio savybÄ—s",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Atitikti pilną žodį",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti įdėjimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+V).",
 PasteErrorCut	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).",
 PasteErrorCopy	: "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Įdėti iš Word",
 
 DlgPasteMsg2	: "Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl+V</STRONG>) ir spūstelkite mygtuką <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignoruoti šriftų nustatymus",
 DlgPasteRemoveStyles	: "Pašalinti stilių nustatymus",
 DlgPasteCleanBox		: "Trinti įvedimo lauką",
 
-
 // Color Picker
 ColorAutomatic	: "Automatinis",
 ColorMoreColors	: "Daugiau spalvų...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?",
 
 // Button Dialog
-DlgButtonText	: "Tekstas (Reikšmė)",
-DlgButtonType	: "Tipas",
+DlgButtonText		: "Tekstas (Reikšmė)",
+DlgButtonType		: "Tipas",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Vardas",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Suženklinto sąrašo savybės",
 NumberedListProp	: "Numeruoto sąrašo savybės",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tipas",
 DlgLstTypeCircle	: "Apskritimas",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Diskas",
 DlgLstTypeSquare	: "Kvadratas",
 DlgLstTypeNumbers	: "Skaičiai (1, 2, 3)",
 DlgLstTypeLCase		: "Mažosios raidės (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Iš dešinės į kairę (RTL)",
 DlgDocLangCode		: "Kalbos kodas",
 DlgDocCharSet		: "Simbolių kodavimo lentelė",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Kita simbolių kodavimo lentelė",
 
 DlgDocDocType		: "Dokumento tipo antraštė",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Pasirinkite norimÄ… Å¡ablonÄ…<br>(<b>DÄ—mesio!</b> esamas turinys bus prarastas):",
 DlgTemplatesLoading	: "Įkeliamas šablonų sąrašas. Prašome palaukti...",
 DlgTemplatesNoTpl	: "(Šablonų sąrašas tuščias)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Apie",
 DlgAboutBrowserInfoTab	: "Naršyklės informacija",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "versija",
-DlgAboutLicense		: "Licencijuota pagal GNU mažesnės atsakomybės pagrindinės viešos licencijos sąlygas",
 DlgAboutInfo		: "PapildomÄ… informacijÄ… galima gauti"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/lv.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/lv.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/lv.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Latvian language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Samazināt rīku joslu",
+ToolbarExpand		: "Paplašināt rīku joslu",
+
+// Toolbar Items and Context Menu
+Save				: "Saglabāt",
+NewPage				: "Jauna lapa",
+Preview				: "Pārskatīt",
+Cut					: "Izgriezt",
+Copy				: "Kopēt",
+Paste				: "Ievietot",
+PasteText			: "Ievietot kā vienkāršu tekstu",
+PasteWord			: "Ievietot no Worda",
+Print				: "Drukāt",
+SelectAll			: "Iezīmēt visu",
+RemoveFormat		: "Noņemt stilus",
+InsertLinkLbl		: "Hipersaite",
+InsertLink			: "Ievietot/Labot hipersaiti",
+RemoveLink			: "Noņemt hipersaiti",
+Anchor				: "Ievietot/Labot iezīmi",
+InsertImageLbl		: "Attēls",
+InsertImage			: "Ievietot/Labot Attēlu",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Ievietot/Labot Flash",
+InsertTableLbl		: "Tabula",
+InsertTable			: "Ievietot/Labot Tabulu",
+InsertLineLbl		: "Atdalītājsvītra",
+InsertLine			: "Ievietot horizontālu Atdalītājsvītru",
+InsertSpecialCharLbl: "Īpašs simbols",
+InsertSpecialChar	: "Ievietot speciālo simbolu",
+InsertSmileyLbl		: "Smaidiņi",
+InsertSmiley		: "Ievietot smaidiņu",
+About				: "Īsumā par FCKeditor",
+Bold				: "Treknu Å¡riftu",
+Italic				: "Slīprakstā",
+Underline			: "Apakšsvītra",
+StrikeThrough		: "Pārsvītrots",
+Subscript			: "Zemrakstā",
+Superscript			: "Augšrakstā",
+LeftJustify			: "Izlīdzināt pa kreisi",
+CenterJustify		: "Izlīdzināt pret centru",
+RightJustify		: "Izlīdzināt pa labi",
+BlockJustify		: "Izlīdzināt malas",
+DecreaseIndent		: "Samazināt atkāpi",
+IncreaseIndent		: "Palielināt atkāpi",
+Undo				: "Atcelt",
+Redo				: "Atkārtot",
+NumberedListLbl		: "Numurēts saraksts",
+NumberedList		: "Ievietot/Noņemt numerēto sarakstu",
+BulletedListLbl		: "Izcelts saraksts",
+BulletedList		: "Ievietot/Noņemt izceltu sarakstu",
+ShowTableBorders	: "Parādīt tabulas robežas",
+ShowDetails			: "Parādīt sīkāku informāciju",
+Style				: "Stils",
+FontFormat			: "Formāts",
+Font				: "Å rifts",
+FontSize			: "Izmērs",
+TextColor			: "Teksta krāsa",
+BGColor				: "Fona krāsa",
+Source				: "HTML kods",
+Find				: "Meklēt",
+Replace				: "Nomainīt",
+SpellCheck			: "Pareizrakstības pārbaude",
+UniversalKeyboard	: "Universāla klaviatūra",
+PageBreakLbl		: "Lapas pārtraukums",
+PageBreak			: "Ievietot lapas pārtraukumu",
+
+Form			: "Forma",
+Checkbox		: "Atzīmēšanas kastīte",
+RadioButton		: "Izvēles poga",
+TextField		: "Teksta rinda",
+Textarea		: "Teksta laukums",
+HiddenField		: "Paslēpta teksta rinda",
+Button			: "Poga",
+SelectionField	: "Iezīmēšanas lauks",
+ImageButton		: "Attēlpoga",
+
+FitWindow		: "Maksimizēt redaktora izmēru",
+
+// Context Menu
+EditLink			: "Labot hipersaiti",
+CellCM				: "Å Å«na",
+RowCM				: "Rinda",
+ColumnCM			: "Kolonna",
+InsertRow			: "Ievietot rindu",
+DeleteRows			: "Dzēst rindas",
+InsertColumn		: "Ievietot kolonnu",
+DeleteColumns		: "Dzēst kolonnas",
+InsertCell			: "Ievietot rūtiņu",
+DeleteCells			: "Dzēst rūtiņas",
+MergeCells			: "Apvienot rūtiņas",
+SplitCell			: "Sadalīt rūtiņu",
+TableDelete			: "Dzēst tabulu",
+CellProperties		: "Rūtiņas īpašības",
+TableProperties		: "Tabulas īpašības",
+ImageProperties		: "Attēla īpašības",
+FlashProperties		: "Flash īpašības",
+
+AnchorProp			: "Iezīmes īpašības",
+ButtonProp			: "Pogas īpašības",
+CheckboxProp		: "Atzīmēšanas kastītes īpašības",
+HiddenFieldProp		: "Paslēptās teksta rindas īpašības",
+RadioButtonProp		: "Izvēles poga īpašības",
+ImageButtonProp		: "Attēlpogas īpašības",
+TextFieldProp		: "Teksta rindas  īpašības",
+SelectionFieldProp	: "Iezīmēšanas lauka īpašības",
+TextareaProp		: "Teksta laukuma īpašības",
+FormProp			: "Formas īpašības",
+
+FontFormats			: "Normāls teksts;Formatēts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)",		//REVIEW : Check _getfontformat.html
+
+// Alerts and Messages
+ProcessingXHTML		: "Tiek apstrādāts XHTML. Lūdzu uzgaidiet...",
+Done				: "Darīts",
+PasteWordConfirm	: "Teksta fragments, kas tiek ievietots, izskatās, ka būtu sagatavots Word'ā. Vai vēlaties to apstrādāt pirms ievietošanas?",
+NotCompatiblePaste	: "Šī darbība ir pieejama Internet Explorer'ī, kas jaunāks par 5.5 versiju. Vai vēlaties ievietot bez apstrādes?",
+UnknownToolbarItem	: "Nezināms rīku joslas objekts \"%1\"",
+UnknownCommand		: "Nezināmas darbības nosaukums \"%1\"",
+NotImplemented		: "Darbība netika paveikta",
+UnknownToolbarSet	: "Rīku joslas komplekts \"%1\" neeksistē",
+NoActiveX			: "Interneta pārlūkprogrammas drošības uzstādījumi varētu ietekmēt dažas no redaktora īpašībām. Jābūt aktivizētai sadaļai \"Run ActiveX controls and plug-ins\". Savādāk ir iespējamas kļūdas darbībā un kļūdu paziņojumu parādīšanās.",
+BrowseServerBlocked : "Resursu pārlūks nevar tikt atvērts. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+DialogBlocked		: "Nav iespējams atvērt dialoglogu. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.",
+
+// Dialogs
+DlgBtnOK			: "Darīts!",
+DlgBtnCancel		: "Atcelt",
+DlgBtnClose			: "Aizvērt",
+DlgBtnBrowseServer	: "Skatīt servera saturu",
+DlgAdvancedTag		: "Izvērstais",
+DlgOpOther			: "<Cits>",
+DlgInfoTab			: "Informācija",
+DlgAlertUrl			: "LÅ«dzu, ievietojiet hipersaiti",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<nav iestatīts>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Valodas lasīšanas virziens",
+DlgGenLangDirLtr	: "No kreisās uz labo (LTR)",
+DlgGenLangDirRtl	: "No labās uz kreiso (RTL)",
+DlgGenLangCode		: "Valodas kods",
+DlgGenAccessKey		: "Pieejas kods",
+DlgGenName			: "Nosaukums",
+DlgGenTabIndex		: "Ciļņu indekss",
+DlgGenLongDescr		: "Gara apraksta Hipersaite",
+DlgGenClass			: "Stilu saraksta klases",
+DlgGenTitle			: "Konsultatīvs virsraksts",
+DlgGenContType		: "Konsultatīvs satura tips",
+DlgGenLinkCharset	: "Pievienotā resursa kodu tabula",
+DlgGenStyle			: "Stils",
+
+// Image Dialog
+DlgImgTitle			: "Attēla īpašības",
+DlgImgInfoTab		: "Informācija par attēlu",
+DlgImgBtnUpload		: "Nosūtīt serverim",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Augšupielādēt",
+DlgImgAlt			: "Alternatīvais teksts",
+DlgImgWidth			: "Platums",
+DlgImgHeight		: "Augstums",
+DlgImgLockRatio		: "Nemainīga Augstuma/Platuma attiecība",
+DlgBtnResetSize		: "Atjaunot sākotnējo izmēru",
+DlgImgBorder		: "Rāmis",
+DlgImgHSpace		: "Horizontālā telpa",
+DlgImgVSpace		: "Vertikālā telpa",
+DlgImgAlign			: "Nolīdzināt",
+DlgImgAlignLeft		: "Pa kreisi",
+DlgImgAlignAbsBottom: "Absolūti apakšā",
+DlgImgAlignAbsMiddle: "Absolūti vertikāli centrēts",
+DlgImgAlignBaseline	: "Pamatrindā",
+DlgImgAlignBottom	: "Apakšā",
+DlgImgAlignMiddle	: "Vertikāli centrēts",
+DlgImgAlignRight	: "Pa labi",
+DlgImgAlignTextTop	: "Teksta augšā",
+DlgImgAlignTop		: "Augšā",
+DlgImgPreview		: "Pārskats",
+DlgImgAlertUrl		: "Lūdzu norādīt attēla hipersaiti",
+DlgImgLinkTab		: "Hipersaite",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash īpašības",
+DlgFlashChkPlay		: "Automātiska atskaņošana",
+DlgFlashChkLoop		: "Nepārtraukti",
+DlgFlashChkMenu		: "Atļaut Flash izvēlni",
+DlgFlashScale		: "Mainīt izmēru",
+DlgFlashScaleAll	: "Rādīt visu",
+DlgFlashScaleNoBorder	: "Bez rāmja",
+DlgFlashScaleFit	: "Precīzs izmērs",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Hipersaite",
+DlgLnkInfoTab		: "Hipersaites informācija",
+DlgLnkTargetTab		: "MÄ“rÄ·is",
+
+DlgLnkType			: "Hipersaites tips",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Iezīme šajā lapā",
+DlgLnkTypeEMail		: "E-pasts",
+DlgLnkProto			: "Protokols",
+DlgLnkProtoOther	: "<cits>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Izvēlēties iezīmi",
+DlgLnkAnchorByName	: "Pēc iezīmes nosaukuma",
+DlgLnkAnchorById	: "PÄ“c elementa ID",
+DlgLnkNoAnchors		: "<Šajā dokumentā nav iezīmju>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-pasta adrese",
+DlgLnkEMailSubject	: "Ziņas tēma",
+DlgLnkEMailBody		: "Ziņas saturs",
+DlgLnkUpload		: "Augšupielādēt",
+DlgLnkBtnUpload		: "Nosūtīt serverim",
+
+DlgLnkTarget		: "MÄ“rÄ·is",
+DlgLnkTargetFrame	: "<ietvars>",
+DlgLnkTargetPopup	: "<uznirstošā logā>",
+DlgLnkTargetBlank	: "Jaunā logā (_blank)",
+DlgLnkTargetParent	: "Esošajā logā (_parent)",
+DlgLnkTargetSelf	: "Tajā pašā logā (_self)",
+DlgLnkTargetTop		: "Visredzamākajā logā (_top)",
+DlgLnkTargetFrameName	: "MÄ“rÄ·a ietvara nosaukums",
+DlgLnkPopWinName	: "Uznirstošā loga nosaukums",
+DlgLnkPopWinFeat	: "Uznirstošā loga nosaukums īpašības",
+DlgLnkPopResize		: "Ar maināmu izmēru",
+DlgLnkPopLocation	: "Atrašanās vietas josla",
+DlgLnkPopMenu		: "Izvēlnes josla",
+DlgLnkPopScroll		: "Ritjoslas",
+DlgLnkPopStatus		: "Statusa josla",
+DlgLnkPopToolbar	: "RÄ«ku josla",
+DlgLnkPopFullScrn	: "Pilnā ekrānā (IE)",
+DlgLnkPopDependent	: "Atkarīgs (Netscape)",
+DlgLnkPopWidth		: "Platums",
+DlgLnkPopHeight		: "Augstums",
+DlgLnkPopLeft		: "Kreisā koordināte",
+DlgLnkPopTop		: "Augšējā koordināte",
+
+DlnLnkMsgNoUrl		: "Lūdzu norādi hipersaiti",
+DlnLnkMsgNoEMail	: "Lūdzu norādi e-pasta adresi",
+DlnLnkMsgNoAnchor	: "Lūdzu norādi iezīmi",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
+
+// Color Dialog
+DlgColorTitle		: "Izvēlies krāsu",
+DlgColorBtnClear	: "Dzēst",
+DlgColorHighlight	: "Izcelt",
+DlgColorSelected	: "Iezīmētais",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Ievietot smaidiņu",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Ievietot īpašu simbolu",
+
+// Table Dialog
+DlgTableTitle		: "Tabulas īpašības",
+DlgTableRows		: "Rindas",
+DlgTableColumns		: "Kolonnas",
+DlgTableBorder		: "Rāmja izmērs",
+DlgTableAlign		: "Novietojums",
+DlgTableAlignNotSet	: "<nav norādīts>",
+DlgTableAlignLeft	: "Pa kreisi",
+DlgTableAlignCenter	: "Centrēti",
+DlgTableAlignRight	: "Pa labi",
+DlgTableWidth		: "Platums",
+DlgTableWidthPx		: "pikseļos",
+DlgTableWidthPc		: "procentuāli",
+DlgTableHeight		: "Augstums",
+DlgTableCellSpace	: "Rūtiņu atstatums",
+DlgTableCellPad		: "Rūtiņu nobīde",
+DlgTableCaption		: "Leģenda",
+DlgTableSummary		: "Anotācija",
+
+// Table Cell Dialog
+DlgCellTitle		: "Rūtiņas īpašības",
+DlgCellWidth		: "Platums",
+DlgCellWidthPx		: "pikseļi",
+DlgCellWidthPc		: "procentos",
+DlgCellHeight		: "Augstums",
+DlgCellWordWrap		: "Teksta pārnese",
+DlgCellWordWrapNotSet	: "<nav norādīta>",
+DlgCellWordWrapYes	: "Jā",
+DlgCellWordWrapNo	: "NÄ“",
+DlgCellHorAlign		: "Horizontāla novietojums",
+DlgCellHorAlignNotSet	: "<Nav norādīts>",
+DlgCellHorAlignLeft	: "Pa kreisi",
+DlgCellHorAlignCenter	: "Centrēti",
+DlgCellHorAlignRight: "Pa labi",
+DlgCellVerAlign		: "Vertikālais novietojums",
+DlgCellVerAlignNotSet	: "<nav norādīts>",
+DlgCellVerAlignTop	: "Augša",
+DlgCellVerAlignMiddle	: "Vidus",
+DlgCellVerAlignBottom	: "Apakša",
+DlgCellVerAlignBaseline	: "Pamatrindā",
+DlgCellRowSpan		: "Rindu pārnese",
+DlgCellCollSpan		: "Kolonnu pārnese",
+DlgCellBackColor	: "Fona krāsa",
+DlgCellBorderColor	: "Rāmja krāsa",
+DlgCellBtnSelect	: "Iezīmē...",
+
+// Find Dialog
+DlgFindTitle		: "Meklētājs",
+DlgFindFindBtn		: "Meklēt",
+DlgFindNotFoundMsg	: "Norādītā frāze netika atrasta.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Aizvietošana",
+DlgReplaceFindLbl		: "Meklēt:",
+DlgReplaceReplaceLbl	: "Nomainīt uz:",
+DlgReplaceCaseChk		: "Reģistrjūtīgs",
+DlgReplaceReplaceBtn	: "Aizvietot",
+DlgReplaceReplAllBtn	: "Aizvietot visu",
+DlgReplaceWordChk		: "Jāsakrīt pilnībā",
+
+// Paste Operations / Dialog
+PasteErrorCut	: "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt izgriešanas darbību.  Lūdzu, izmantojiet (Ctrl+X, lai veiktu šo darbību.",
+PasteErrorCopy	: "Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl+C), lai veiktu šo darbību.",
+
+PasteAsText		: "Ievietot kā vienkāršu tekstu",
+PasteFromWord	: "Ievietot no Worda",
+
+DlgPasteMsg2	: "Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignorēt iepriekš norādītos fontus",
+DlgPasteRemoveStyles	: "Noņemt norādītos stilus",
+DlgPasteCleanBox		: "Apstrādāt laukuma saturu",
+
+// Color Picker
+ColorAutomatic	: "Automātiska",
+ColorMoreColors	: "Plašāka palete...",
+
+// Document Properties
+DocProps		: "Dokumenta īpašības",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Iezīmes īpašības",
+DlgAnchorName		: "Iezīmes nosaukums",
+DlgAnchorErrorName	: "Lūdzu norādiet iezīmes nosaukumu",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Netika atrasts vārdnīcā",
+DlgSpellChangeTo		: "Nomainīt uz",
+DlgSpellBtnIgnore		: "Ignorēt",
+DlgSpellBtnIgnoreAll	: "Ignorēt visu",
+DlgSpellBtnReplace		: "Aizvietot",
+DlgSpellBtnReplaceAll	: "Aizvietot visu",
+DlgSpellBtnUndo			: "Atcelt",
+DlgSpellNoSuggestions	: "- Nav ieteikumu -",
+DlgSpellProgress		: "Notiek pareizrakstības pārbaude...",
+DlgSpellNoMispell		: "Pareizrakstības pārbaude pabeigta: kļūdas netika atrastas",
+DlgSpellNoChanges		: "Pareizrakstības pārbaude pabeigta: nekas netika labots",
+DlgSpellOneChange		: "Pareizrakstības pārbaude pabeigta: 1 vārds izmainīts",
+DlgSpellManyChanges		: "Pareizrakstības pārbaude pabeigta: %1 vārdi tika mainīti",
+
+IeSpellDownload			: "Pareizrakstības pārbaudītājs nav pievienots. Vai vēlaties to lejupielādēt tagad?",
+
+// Button Dialog
+DlgButtonText		: "Teksts (vērtība)",
+DlgButtonType		: "Tips",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Nosaukums",
+DlgCheckboxValue	: "Vērtība",
+DlgCheckboxSelected	: "Iezīmēts",
+
+// Form Dialog
+DlgFormName		: "Nosaukums",
+DlgFormAction	: "Darbība",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Nosaukums",
+DlgSelectValue		: "Vērtība",
+DlgSelectSize		: "Izmērs",
+DlgSelectLines		: "rindas",
+DlgSelectChkMulti	: "Atļaut vairākus iezīmējumus",
+DlgSelectOpAvail	: "Pieejamās iespējas",
+DlgSelectOpText		: "Teksts",
+DlgSelectOpValue	: "Vērtība",
+DlgSelectBtnAdd		: "Pievienot",
+DlgSelectBtnModify	: "Veikt izmaiņas",
+DlgSelectBtnUp		: "Augšup",
+DlgSelectBtnDown	: "Lejup",
+DlgSelectBtnSetValue : "Noteikt kā iezīmēto vērtību",
+DlgSelectBtnDelete	: "Dzēst",
+
+// Textarea Dialog
+DlgTextareaName	: "Nosaukums",
+DlgTextareaCols	: "Kolonnas",
+DlgTextareaRows	: "Rindas",
+
+// Text Field Dialog
+DlgTextName			: "Nosaukums",
+DlgTextValue		: "Vērtība",
+DlgTextCharWidth	: "Simbolu platums",
+DlgTextMaxChars		: "Simbolu maksimālais daudzums",
+DlgTextType			: "Tips",
+DlgTextTypeText		: "Teksts",
+DlgTextTypePass		: "Parole",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Nosaukums",
+DlgHiddenValue	: "Vērtība",
+
+// Bulleted List Dialog
+BulletedListProp	: "Aizzīmju saraksta īpašības",
+NumberedListProp	: "Numerētā saraksta īpašības",
+DlgLstStart			: "Start",	//MISSING
+DlgLstType			: "Tips",
+DlgLstTypeCircle	: "Aplis",
+DlgLstTypeDisc		: "Disks",
+DlgLstTypeSquare	: "Kvadrāts",
+DlgLstTypeNumbers	: "Skaitļi (1, 2, 3)",
+DlgLstTypeLCase		: "Maziem burtiem (a, b, c)",
+DlgLstTypeUCase		: "Lieliem burtiem (A, B, C)",
+DlgLstTypeSRoman	: "Maziem romiešu cipariem (i, ii, iii)",
+DlgLstTypeLRoman	: "Lieliem romiešu cipariem (I, II, III)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Vispārīga informācija",
+DlgDocBackTab		: "Fons",
+DlgDocColorsTab		: "Krāsas un robežu nobīdes",
+DlgDocMetaTab		: "META dati",
+
+DlgDocPageTitle		: "Dokumenta virsraksts <Title>",
+DlgDocLangDir		: "Valodas lasīšanas virziens",
+DlgDocLangDirLTR	: "No kreisās uz labo (LTR)",
+DlgDocLangDirRTL	: "No labās uz kreiso (RTL)",
+DlgDocLangCode		: "Valodas kods",
+DlgDocCharSet		: "Simbolu kodējums",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
+DlgDocCharSetOther	: "Cits simbolu kodējums",
+
+DlgDocDocType		: "Dokumenta tips",
+DlgDocDocTypeOther	: "Cits dokumenta tips",
+DlgDocIncXHTML		: "Ietvert XHTML deklarācijas",
+DlgDocBgColor		: "Fona krāsa",
+DlgDocBgImage		: "Fona attēla hipersaite",
+DlgDocBgNoScroll	: "Fona attēls ir fiksēts",
+DlgDocCText			: "Teksts",
+DlgDocCLink			: "Hipersaite",
+DlgDocCVisited		: "Apmeklēta hipersaite",
+DlgDocCActive		: "Aktīva hipersaite",
+DlgDocMargins		: "Lapas robežas",
+DlgDocMaTop			: "Augšā",
+DlgDocMaLeft		: "Pa kreisi",
+DlgDocMaRight		: "Pa labi",
+DlgDocMaBottom		: "Apakšā",
+DlgDocMeIndex		: "Dokumentu aprakstoši atslēgvārdi (atdalīti ar komatu)",
+DlgDocMeDescr		: "Dokumenta apraksts",
+DlgDocMeAuthor		: "Autors",
+DlgDocMeCopy		: "Autortiesības",
+DlgDocPreview		: "Priekšskats",
+
+// Templates Dialog
+Templates			: "Sagataves",
+DlgTemplatesTitle	: "Satura sagataves",
+DlgTemplatesSelMsg	: "Lūdzu, norādiet sagatavi, ko atvērt editorā<br>(patreizējie dati tiks zaudēti):",
+DlgTemplatesLoading	: "Notiek sagatavju saraksta ielāde. Lūdzu, uzgaidiet...",
+DlgTemplatesNoTpl	: "(Nav norādītas sagataves)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
+
+// About Dialog
+DlgAboutAboutTab	: "Par",
+DlgAboutBrowserInfoTab	: "Informācija par pārlūkprogrammu",
+DlgAboutLicenseTab	: "Licence",
+DlgAboutVersion		: "versija",
+DlgAboutInfo		: "Papildus informācija ir pieejama"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/mn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/mn.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/mn.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: mn.js
- * 	Mongolian language file.
- * 
- * File Authors:
- * 		Lkamtseren ODONBAATAR (odonbaatarl at yahoo.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Mongolian language file.
  */
 
 var FCKLang =
@@ -83,8 +87,10 @@
 Source				: "Код",
 Find				: "Хайх",
 Replace				: "Солих",
-SpellCheck			: "Check Spell",	//MISSING
+SpellCheck			: "Check Spelling",	//MISSING
 UniversalKeyboard	: "Universal Keyboard",	//MISSING
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Form",	//MISSING
 Checkbox		: "Checkbox",	//MISSING
@@ -96,8 +102,13 @@
 SelectionField	: "Selection Field",	//MISSING
 ImageButton		: "Image Button",	//MISSING
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Холбоос засварлах",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Мөр оруулах",
 DeleteRows			: "Мөр устгах",
 InsertColumn		: "Багана оруулах",
@@ -106,6 +117,7 @@
 DeleteCells			: "Нүх устгах",
 MergeCells			: "Нүх нэгтэх",
 SplitCell			: "Нүх тусгайрлах",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Хоосон зайн шинж чанар",
 TableProperties		: "Хүснэгт",
 ImageProperties		: "Зураг",
@@ -122,7 +134,7 @@
 TextareaProp		: "Textarea Properties",	//MISSING
 FormProp			: "Form Properties",	//MISSING
 
-FontFormats			: "Хэвийн;Formatted;Хаяг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Хэвийн;Formatted;Хаяг;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "XHTML үйл явц явагдаж байна. Хүлээнэ үү...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "\"%1\" комманд нэр мэдагдэхгүй байна",
 NotImplemented		: "Зөвшөөрөгдөхгүй комманд",
 UnknownToolbarSet	: "Багажны хэсэгт \"%1\" оноох, үүсээгүй байна",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Хаах",
 DlgBtnBrowseServer	: "Browse Server",	//MISSING
 DlgAdvancedTag		: "Нэмэлт",
-DlgOpOther			: "&lt;Other&gt;",	//MISSING
+DlgOpOther			: "<Other>",	//MISSING
 DlgInfoTab			: "Info",	//MISSING
 DlgAlertUrl			: "Please insert the URL",	//MISSING
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;Оноохгүй&gt;",
+DlgGenNotSet		: "<Оноохгүй>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Хэлний чиглэл",
 DlgGenLangDirLtr	: "Зүүнээс баруун (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Энэ хуудасандах холбоос",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Протокол",
-DlgLnkProtoOther	: "&lt;бусад&gt;",
+DlgLnkProtoOther	: "<бусад>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Холбоос сонгох",
 DlgLnkAnchorByName	: "Холбоосын нэрээр",
 DlgLnkAnchorById	: "Элемэнт Id-гаар",
-DlgLnkNoAnchors		: "&lt;Баримт бичиг холбоосгүй байна&gt;",
+DlgLnkNoAnchors		: "<Баримт бичиг холбоосгүй байна>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail Хаяг",
 DlgLnkEMailSubject	: "Message Subject",
 DlgLnkEMailBody		: "Message-ийн агуулга",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Үүнийг серверрүү илгээ",
 
 DlgLnkTarget		: "Байрлал",
-DlgLnkTargetFrame	: "&lt;Агуулах хүрээ&gt;",
-DlgLnkTargetPopup	: "&lt;popup цонх&gt;",
+DlgLnkTargetFrame	: "<Агуулах хүрээ>",
+DlgLnkTargetPopup	: "<popup цонх>",
 DlgLnkTargetBlank	: "Шинэ цонх (_blank)",
 DlgLnkTargetParent	: "Эцэг цонх (_parent)",
 DlgLnkTargetSelf	: "Төстэй цонх (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Линк URL-ээ төрөлжүүлнэ үү",
 DlnLnkMsgNoEMail	: "Е-mail хаягаа төрөлжүүлнэ үү",
 DlnLnkMsgNoAnchor	: "Холбоосоо сонгоно уу",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Өнгө сонгох",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "Багана",
 DlgTableBorder		: "Хүрээний хэмжээ",
 DlgTableAlign		: "Эгнээ",
-DlgTableAlignNotSet	: "&lt;Оноохгүй&gt;",
+DlgTableAlignNotSet	: "<Оноохгүй>",
 DlgTableAlignLeft	: "Зүүн талд",
 DlgTableAlignCenter	: "Төвд",
 DlgTableAlignRight	: "Баруун талд",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Нүх хоорондын зай",
 DlgTableCellPad		: "Нүх доторлох",
 DlgTableCaption		: "Тайлбар",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Хоосон зайн шинж чанар",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "хувь",
 DlgCellHeight		: "Өндөр",
 DlgCellWordWrap		: "Үг таслах",
-DlgCellWordWrapNotSet	: "&lt;Оноохгүй&gt;",
+DlgCellWordWrapNotSet	: "<Оноохгүй>",
 DlgCellWordWrapYes	: "Тийм",
 DlgCellWordWrapNo	: "Үгүй",
 DlgCellHorAlign		: "Босоо эгнээ",
-DlgCellHorAlignNotSet	: "&lt;Оноохгүй&gt;",
+DlgCellHorAlignNotSet	: "<Оноохгүй>",
 DlgCellHorAlignLeft	: "Зүүн",
 DlgCellHorAlignCenter	: "Төв",
 DlgCellHorAlignRight: "Баруун",
 DlgCellVerAlign		: "Хөндлөн эгнээ",
-DlgCellVerAlignNotSet	: "&lt;Оноохгүй&gt;",
+DlgCellVerAlignNotSet	: "<Оноохгүй>",
 DlgCellVerAlignTop	: "Дээд тал",
 DlgCellVerAlignMiddle	: "Дунд",
 DlgCellVerAlignBottom	: "Доод тал",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Тэнцэх бүтэн үг",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар буулгах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+V) товчны хослолыг ашиглана уу.",
 PasteErrorCut	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хослолыг ашиглана уу.",
 PasteErrorCopy	: "Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хослолыг ашиглана уу.",
 
 PasteAsText		: "Plain Text-ээс буулгах",
 PasteFromWord	: "Word-оос буулгах",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
 DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
 DlgPasteCleanBox		: "Clean Up Box",	//MISSING
 
-
 // Color Picker
 ColorAutomatic	: "Автоматаар",
 ColorMoreColors	: "Нэмэлт өнгөнүүд...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Spell checker not installed. Do you want to download it now?",	//MISSING
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",	//MISSING
-DlgButtonType	: "Type",	//MISSING
+DlgButtonText		: "Text (Value)",	//MISSING
+DlgButtonType		: "Type",	//MISSING
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Name",	//MISSING
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Bulleted List Properties",	//MISSING
 NumberedListProp	: "Numbered List Properties",	//MISSING
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Type",	//MISSING
 DlgLstTypeCircle	: "Circle",	//MISSING
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Right to Left (RTL)",	//MISSING
 DlgDocLangCode		: "Language Code",	//MISSING
 DlgDocCharSet		: "Character Set Encoding",	//MISSING
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Other Character Set Encoding",	//MISSING
 
 DlgDocDocType		: "Document Type Heading",	//MISSING
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Templates",	//MISSING
 DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
+DlgTemplatesSelMsg	: "Please select the template to open in the editor<br />(the actual contents will be lost):",	//MISSING
 DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
 DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "About",	//MISSING
 DlgAboutBrowserInfoTab	: "Browser Info",	//MISSING
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "Хувилбар",
-DlgAboutLicense		: "GNU цөөн ерөнхий нийтийн лицензийн ангилалд багтсан зөвшөөрөлтэй",
 DlgAboutInfo		: "Мэдээллээр туслах"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ms.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ms.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ms.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ms.js
- * 	Malay language file.
- * 
- * File Authors:
- * 		Fairul Izham Mohd Mokhlas (eg86 at hotmail.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Malay language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Ganti",
 SpellCheck			: "Semak Ejaan",
 UniversalKeyboard	: "Papan Kekunci Universal",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Borang",
 Checkbox		: "Checkbox",
@@ -96,8 +102,13 @@
 SelectionField	: "Field Pilihan",
 ImageButton		: "Butang Bergambar",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Sunting Sambungan",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Masukkan Baris",
 DeleteRows			: "Buangkan Baris",
 InsertColumn		: "Masukkan Lajur",
@@ -106,6 +117,7 @@
 DeleteCells			: "Buangkan Sel-sel",
 MergeCells			: "Cantumkan Sel-sel",
 SplitCell			: "Bahagikan Sel",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Ciri-ciri Sel",
 TableProperties		: "Ciri-ciri Jadual",
 ImageProperties		: "Ciri-ciri Gambar",
@@ -122,7 +134,7 @@
 TextareaProp		: "Ciri-ciri Textarea",
 FormProp			: "Ciri-ciri Borang",
 
-FontFormats			: "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",
+FontFormats			: "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Memproses XHTML. Sila tunggu...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Arahan tidak diketahui \"%1\"",
 NotImplemented		: "Arahan tidak terdapat didalam sistem",
 UnknownToolbarSet	: "Set toolbar \"%1\" tidak wujud",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Tutup",
 DlgBtnBrowseServer	: "Browse Server",
 DlgAdvancedTag		: "Advanced",
-DlgOpOther			: "&lt;Lain-lain&gt;",
+DlgOpOther			: "<Lain-lain>",
 DlgInfoTab			: "Info",	//MISSING
 DlgAlertUrl			: "Please insert the URL",	//MISSING
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;tidak di set&gt;",
+DlgGenNotSet		: "<tidak di set>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Arah Tulisan",
 DlgGenLangDirLtr	: "Kiri ke Kanan (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Pautan dalam muka surat ini",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;lain-lain&gt;",
+DlgLnkProtoOther	: "<lain-lain>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Sila pilih pautan",
 DlgLnkAnchorByName	: "dengan menggunakan nama pautan",
 DlgLnkAnchorById	: "dengan menggunakan ID elemen",
-DlgLnkNoAnchors		: "&lt;Tiada pautan terdapat dalam dokumen ini&gt;",
+DlgLnkNoAnchors		: "<Tiada pautan terdapat dalam dokumen ini>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Alamat E-Mail",
 DlgLnkEMailSubject	: "Subjek Mesej",
 DlgLnkEMailBody		: "Isi Kandungan Mesej",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Hantar ke Server",
 
 DlgLnkTarget		: "Sasaran",
-DlgLnkTargetFrame	: "&lt;bingkai&gt;",
-DlgLnkTargetPopup	: "&lt;tetingkap popup&gt;",
+DlgLnkTargetFrame	: "<bingkai>",
+DlgLnkTargetPopup	: "<tetingkap popup>",
 DlgLnkTargetBlank	: "Tetingkap Baru (_blank)",
 DlgLnkTargetParent	: "Tetingkap Parent (_parent)",
 DlgLnkTargetSelf	: "Tetingkap yang Sama (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Sila taip sambungan URL",
 DlnLnkMsgNoEMail	: "Sila taip alamat e-mail",
 DlnLnkMsgNoAnchor	: "Sila pilih pautan berkenaaan",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Pilihan Warna",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Ruangan Antara Sel",
 DlgTableCellPad		: "Tambahan Ruang Sel",
 DlgTableCaption		: "Keterangan",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Ciri-ciri Sel",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "peratus",
 DlgCellHeight		: "Tinggi",
 DlgCellWordWrap		: "Mengulung Perkataan",
-DlgCellWordWrapNotSet	: "&lt;Tidak diset&gt;",
+DlgCellWordWrapNotSet	: "<Tidak diset>",
 DlgCellWordWrapYes	: "Ya",
 DlgCellWordWrapNo	: "Tidak",
 DlgCellHorAlign		: "Jajaran Membujur",
-DlgCellHorAlignNotSet	: "&lt;Tidak diset&gt;",
+DlgCellHorAlignNotSet	: "<Tidak diset>",
 DlgCellHorAlignLeft	: "Kiri",
 DlgCellHorAlignCenter	: "Tengah",
 DlgCellHorAlignRight: "Kanan",
 DlgCellVerAlign		: "Jajaran Menegak",
-DlgCellVerAlignNotSet	: "&lt;Tidak diset&gt;",
+DlgCellVerAlignNotSet	: "<Tidak diset>",
 DlgCellVerAlignTop	: "Atas",
 DlgCellVerAlignMiddle	: "Tengah",
 DlgCellVerAlignBottom	: "Bawah",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Padana Keseluruhan perkataan",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Keselamatan perisian browser anda tidak membenarkan operasi tampalan text/imej. Sila gunakan papan kekunci (Ctrl+V).",
 PasteErrorCut	: "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",
 PasteErrorCopy	: "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",
 
 PasteAsText		: "Tampal sebagai text biasa",
 PasteFromWord	: "Tampal dari perisian \"Word\"",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit <strong>OK</strong>.",	//MISSING
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
 DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
 DlgPasteCleanBox		: "Clean Up Box",	//MISSING
 
-
 // Color Picker
 ColorAutomatic	: "Otomatik",
 ColorMoreColors	: "Warna lain-lain...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?",
 
 // Button Dialog
-DlgButtonText	: "Teks (Nilai)",
-DlgButtonType	: "Jenis",
+DlgButtonText		: "Teks (Nilai)",
+DlgButtonType		: "Jenis",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nama",
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Ciri-ciri senarai berpeluru",
 NumberedListProp	: "Ciri-ciri senarai bernombor",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Jenis",
 DlgLstTypeCircle	: "Circle",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Kanan ke Kiri (RTL)",
 DlgDocLangCode		: "Kod Bahasa",
 DlgDocCharSet		: "Enkod Set Huruf",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Enkod Set Huruf yang Lain",
 
 DlgDocDocType		: "Jenis Kepala Dokumen",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):",
 DlgTemplatesLoading	: "Senarai Templat sedang diproses. Sila Tunggu...",
 DlgTemplatesNoTpl	: "(Tiada Templat Disimpan)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Tentang",
 DlgAboutBrowserInfoTab	: "Maklumat Perisian Browser",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "versi",
-DlgAboutLicense		: "Perlesenan dibawah terma GNU Lesser General Public License",
 DlgAboutInfo		: "Untuk maklumat lanjut sila pergi ke"
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/lang/nb.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/nb.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/nb.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,504 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Norwegian Bokmål language file.
+ */
+
+var FCKLang =
+{
+// Language direction : "ltr" (left to right) or "rtl" (right to left).
+Dir					: "ltr",
+
+ToolbarCollapse		: "Skjul verktøylinje",
+ToolbarExpand		: "Vis verktøylinje",
+
+// Toolbar Items and Context Menu
+Save				: "Lagre",
+NewPage				: "Ny Side",
+Preview				: "Forhåndsvis",
+Cut					: "Klipp ut",
+Copy				: "Kopier",
+Paste				: "Lim inn",
+PasteText			: "Lim inn som ren tekst",
+PasteWord			: "Lim inn fra Word",
+Print				: "Skriv ut",
+SelectAll			: "Velg alle",
+RemoveFormat		: "Fjern format",
+InsertLinkLbl		: "Lenke",
+InsertLink			: "Sett inn/Rediger lenke",
+RemoveLink			: "Fjern lenke",
+Anchor				: "Sett inn/Rediger anker",
+InsertImageLbl		: "Bilde",
+InsertImage			: "Sett inn/Rediger bilde",
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Sett inn/Rediger Flash",
+InsertTableLbl		: "Tabell",
+InsertTable			: "Sett inn/Rediger tabell",
+InsertLineLbl		: "Linje",
+InsertLine			: "Sett inn horisontal linje",
+InsertSpecialCharLbl: "Spesielt tegn",
+InsertSpecialChar	: "Sett inn spesielt tegn",
+InsertSmileyLbl		: "Smil",
+InsertSmiley		: "Sett inn smil",
+About				: "Om FCKeditor",
+Bold				: "Fet",
+Italic				: "Kursiv",
+Underline			: "Understrek",
+StrikeThrough		: "Gjennomstrek",
+Subscript			: "Senket skrift",
+Superscript			: "Hevet skrift",
+LeftJustify			: "Venstrejuster",
+CenterJustify		: "Midtjuster",
+RightJustify		: "Høyrejuster",
+BlockJustify		: "Blokkjuster",
+DecreaseIndent		: "Senk nivå",
+IncreaseIndent		: "Øk nivå",
+Undo				: "Angre",
+Redo				: "Gjør om",
+NumberedListLbl		: "Numrert liste",
+NumberedList		: "Sett inn/Fjern numrert liste",
+BulletedListLbl		: "Uordnet liste",
+BulletedList		: "Sett inn/Fjern uordnet liste",
+ShowTableBorders	: "Vis tabellrammer",
+ShowDetails			: "Vis detaljer",
+Style				: "Stil",
+FontFormat			: "Format",
+Font				: "Skrift",
+FontSize			: "Størrelse",
+TextColor			: "Tekstfarge",
+BGColor				: "Bakgrunnsfarge",
+Source				: "Kilde",
+Find				: "Finn",
+Replace				: "Erstatt",
+SpellCheck			: "Stavekontroll",
+UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
+
+Form			: "Skjema",
+Checkbox		: "Sjekkboks",
+RadioButton		: "Radioknapp",
+TextField		: "Tekstfelt",
+Textarea		: "Tekstområde",
+HiddenField		: "Skjult felt",
+Button			: "Knapp",
+SelectionField	: "Dropdown meny",
+ImageButton		: "Bildeknapp",
+
+FitWindow		: "Maksimer størrelsen på redigeringsverktøyet",
+
+// Context Menu
+EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
+InsertRow			: "Sett inn rad",
+DeleteRows			: "Slett rader",
+InsertColumn		: "Sett inn kolonne",
+DeleteColumns		: "Slett kolonner",
+InsertCell			: "Sett inn celle",
+DeleteCells			: "Slett celler",
+MergeCells			: "Slå sammen celler",
+SplitCell			: "Splitt celler",
+TableDelete			: "Slett tabell",
+CellProperties		: "Celleegenskaper",
+TableProperties		: "Tabellegenskaper",
+ImageProperties		: "Bildeegenskaper",
+FlashProperties		: "Flash Egenskaper",
+
+AnchorProp			: "Ankeregenskaper",
+ButtonProp			: "Knappegenskaper",
+CheckboxProp		: "Sjekkboksegenskaper",
+HiddenFieldProp		: "Skjult felt egenskaper",
+RadioButtonProp		: "Radioknappegenskaper",
+ImageButtonProp		: "Bildeknappegenskaper",
+TextFieldProp		: "Tekstfeltegenskaper",
+SelectionFieldProp	: "Dropdown menyegenskaper",
+TextareaProp		: "Tekstfeltegenskaper",
+FormProp			: "Skjemaegenskaper",
+
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",		//REVIEW : Check _getfontformat.html
+
+// 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)",
+UnknownToolbarItem	: "Ukjent menyvalg \"%1\"",
+UnknownCommand		: "Ukjent kommando \"%1\"",
+NotImplemented		: "Kommando ikke ennå 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.",
+
+// Dialogs
+DlgBtnOK			: "OK",
+DlgBtnCancel		: "Avbryt",
+DlgBtnClose			: "Lukk",
+DlgBtnBrowseServer	: "Bla igjennom server",
+DlgAdvancedTag		: "Avansert",
+DlgOpOther			: "<Annet>",
+DlgInfoTab			: "Info",
+DlgAlertUrl			: "Vennligst skriv inn URL'en",
+
+// General Dialogs Labels
+DlgGenNotSet		: "<ikke satt>",
+DlgGenId			: "Id",
+DlgGenLangDir		: "Språkretning",
+DlgGenLangDirLtr	: "Venstre til høyre (VTH)",
+DlgGenLangDirRtl	: "Høyre til venstre (HTV)",
+DlgGenLangCode		: "Språk kode",
+DlgGenAccessKey		: "Aksessknapp",
+DlgGenName			: "Navn",
+DlgGenTabIndex		: "Tab Indeks",
+DlgGenLongDescr		: "Utvidet beskrivelse",
+DlgGenClass			: "Stilarkklasser",
+DlgGenTitle			: "Tittel",
+DlgGenContType		: "Type",
+DlgGenLinkCharset	: "Lenket språkkart",
+DlgGenStyle			: "Stil",
+
+// Image Dialog
+DlgImgTitle			: "Bildeegenskaper",
+DlgImgInfoTab		: "Bildeinformasjon",
+DlgImgBtnUpload		: "Send det til serveren",
+DlgImgURL			: "URL",
+DlgImgUpload		: "Last opp",
+DlgImgAlt			: "Alternativ tekst",
+DlgImgWidth			: "Bredde",
+DlgImgHeight		: "Høyde",
+DlgImgLockRatio		: "LÃ¥s forhold",
+DlgBtnResetSize		: "Tilbakestill størrelse",
+DlgImgBorder		: "Ramme",
+DlgImgHSpace		: "HMarg",
+DlgImgVSpace		: "VMarg",
+DlgImgAlign			: "Juster",
+DlgImgAlignLeft		: "Venstre",
+DlgImgAlignAbsBottom: "Abs bunn",
+DlgImgAlignAbsMiddle: "Abs midten",
+DlgImgAlignBaseline	: "Bunnlinje",
+DlgImgAlignBottom	: "Bunn",
+DlgImgAlignMiddle	: "Midten",
+DlgImgAlignRight	: "Høyre",
+DlgImgAlignTextTop	: "Tekst topp",
+DlgImgAlignTop		: "Topp",
+DlgImgPreview		: "Forhåndsvis",
+DlgImgAlertUrl		: "Vennligst skriv bildeurlen",
+DlgImgLinkTab		: "Lenke",
+
+// Flash Dialog
+DlgFlashTitle		: "Flash Egenskaper",
+DlgFlashChkPlay		: "Auto Spill",
+DlgFlashChkLoop		: "Loop",
+DlgFlashChkMenu		: "Slå på Flash meny",
+DlgFlashScale		: "Skaler",
+DlgFlashScaleAll	: "Vis alt",
+DlgFlashScaleNoBorder	: "Ingen ramme",
+DlgFlashScaleFit	: "Skaler til å passeExact Fit",
+
+// Link Dialog
+DlgLnkWindowTitle	: "Lenke",
+DlgLnkInfoTab		: "Lenkeinfo",
+DlgLnkTargetTab		: "MÃ¥l",
+
+DlgLnkType			: "Lenketype",
+DlgLnkTypeURL		: "URL",
+DlgLnkTypeAnchor	: "Lenke til bokmerke i teksten",
+DlgLnkTypeEMail		: "E-Post",
+DlgLnkProto			: "Protokoll",
+DlgLnkProtoOther	: "<annet>",
+DlgLnkURL			: "URL",
+DlgLnkAnchorSel		: "Velg ett anker",
+DlgLnkAnchorByName	: "Anker etter navn",
+DlgLnkAnchorById	: "Element etter ID",
+DlgLnkNoAnchors		: "<Ingen anker i dokumentet>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-Post Addresse",
+DlgLnkEMailSubject	: "Meldingsemne",
+DlgLnkEMailBody		: "Melding",
+DlgLnkUpload		: "Last opp",
+DlgLnkBtnUpload		: "Send til server",
+
+DlgLnkTarget		: "MÃ¥l",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
+DlgLnkTargetBlank	: "Nytt vindu (_blank)",
+DlgLnkTargetParent	: "Foreldre vindu (_parent)",
+DlgLnkTargetSelf	: "Samme vindu (_self)",
+DlgLnkTargetTop		: "Hele vindu (_top)",
+DlgLnkTargetFrameName	: "MÃ¥lramme",
+DlgLnkPopWinName	: "Popup vindus navn",
+DlgLnkPopWinFeat	: "Popup vindus egenskaper",
+DlgLnkPopResize		: "Endre størrelse",
+DlgLnkPopLocation	: "Adresselinje",
+DlgLnkPopMenu		: "Menylinje",
+DlgLnkPopScroll		: "Scrollbar",
+DlgLnkPopStatus		: "Statuslinje",
+DlgLnkPopToolbar	: "Verktøylinje",
+DlgLnkPopFullScrn	: "Full skjerm (IE)",
+DlgLnkPopDependent	: "Avhenging (Netscape)",
+DlgLnkPopWidth		: "Bredde",
+DlgLnkPopHeight		: "Høyde",
+DlgLnkPopLeft		: "Venstre 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",
+
+// Color Dialog
+DlgColorTitle		: "Velg farge",
+DlgColorBtnClear	: "Tøm",
+DlgColorHighlight	: "Marker",
+DlgColorSelected	: "Velg",
+
+// Smiley Dialog
+DlgSmileyTitle		: "Sett inn smil",
+
+// Special Character Dialog
+DlgSpecialCharTitle	: "Velg spesielt tegn",
+
+// Table Dialog
+DlgTableTitle		: "Tabellegenskaper",
+DlgTableRows		: "Rader",
+DlgTableColumns		: "Kolonner",
+DlgTableBorder		: "Rammestørrelse",
+DlgTableAlign		: "Justering",
+DlgTableAlignNotSet	: "<Ikke satt>",
+DlgTableAlignLeft	: "Venstre",
+DlgTableAlignCenter	: "Midtjuster",
+DlgTableAlignRight	: "Høyre",
+DlgTableWidth		: "Bredde",
+DlgTableWidthPx		: "pixler",
+DlgTableWidthPc		: "prosent",
+DlgTableHeight		: "Høyde",
+DlgTableCellSpace	: "Celle marg",
+DlgTableCellPad		: "Celle polstring",
+DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
+
+// Table Cell Dialog
+DlgCellTitle		: "Celle egenskaper",
+DlgCellWidth		: "Bredde",
+DlgCellWidthPx		: "pixeler",
+DlgCellWidthPc		: "prosent",
+DlgCellHeight		: "Høyde",
+DlgCellWordWrap		: "Tekstbrytning",
+DlgCellWordWrapNotSet	: "<Ikke satt>",
+DlgCellWordWrapYes	: "Ja",
+DlgCellWordWrapNo	: "Nei",
+DlgCellHorAlign		: "Horisontal justering",
+DlgCellHorAlignNotSet	: "<Ikke satt>",
+DlgCellHorAlignLeft	: "Venstre",
+DlgCellHorAlignCenter	: "Midtjuster",
+DlgCellHorAlignRight: "Høyre",
+DlgCellVerAlign		: "Vertikal justering",
+DlgCellVerAlignNotSet	: "<Ikke satt>",
+DlgCellVerAlignTop	: "Topp",
+DlgCellVerAlignMiddle	: "Midten",
+DlgCellVerAlignBottom	: "Bunn",
+DlgCellVerAlignBaseline	: "Bunnlinje",
+DlgCellRowSpan		: "Radspenn",
+DlgCellCollSpan		: "Kolonnespenn",
+DlgCellBackColor	: "Bakgrunnsfarge",
+DlgCellBorderColor	: "Rammefarge",
+DlgCellBtnSelect	: "Velg...",
+
+// Find Dialog
+DlgFindTitle		: "Finn",
+DlgFindFindBtn		: "Finn",
+DlgFindNotFoundMsg	: "Den spesifiserte teksten ble ikke funnet.",
+
+// Replace Dialog
+DlgReplaceTitle			: "Erstatt",
+DlgReplaceFindLbl		: "Finn hva:",
+DlgReplaceReplaceLbl	: "Erstatt med:",
+DlgReplaceCaseChk		: "Riktig case",
+DlgReplaceReplaceBtn	: "Erstatt",
+DlgReplaceReplAllBtn	: "Erstatt alle",
+DlgReplaceWordChk		: "Finn hele ordet",
+
+// 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).",
+
+PasteAsText		: "Lim inn som ren tekst",
+PasteFromWord	: "Lim inn fra word",
+
+DlgPasteMsg2	: "Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Fjern skrifttyper",
+DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
+DlgPasteCleanBox		: "Tøm boksen",
+
+// Color Picker
+ColorAutomatic	: "Automatisk",
+ColorMoreColors	: "Flere farger...",
+
+// Document Properties
+DocProps		: "Dokumentegenskaper",
+
+// Anchor Dialog
+DlgAnchorTitle		: "Ankeregenskaper",
+DlgAnchorName		: "Ankernavn",
+DlgAnchorErrorName	: "Vennligst skriv inn ankernavnet",
+
+// Speller Pages Dialog
+DlgSpellNotInDic		: "Ikke i ordboken",
+DlgSpellChangeTo		: "Endre til",
+DlgSpellBtnIgnore		: "Ignorer",
+DlgSpellBtnIgnoreAll	: "Ignorer alle",
+DlgSpellBtnReplace		: "Erstatt",
+DlgSpellBtnReplaceAll	: "Erstatt alle",
+DlgSpellBtnUndo			: "Angre",
+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å?",
+
+// Button Dialog
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Knapp",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstill",
+
+// Checkbox and Radio Button Dialogs
+DlgCheckboxName		: "Navn",
+DlgCheckboxValue	: "Verdi",
+DlgCheckboxSelected	: "Valgt",
+
+// Form Dialog
+DlgFormName		: "Navn",
+DlgFormAction	: "Handling",
+DlgFormMethod	: "Metode",
+
+// Select Field Dialog
+DlgSelectName		: "Navn",
+DlgSelectValue		: "Verdi",
+DlgSelectSize		: "Størrelse",
+DlgSelectLines		: "Linjer",
+DlgSelectChkMulti	: "Tillat flervalg",
+DlgSelectOpAvail	: "Tilgjenglige alternativer",
+DlgSelectOpText		: "Tekst",
+DlgSelectOpValue	: "Verdi",
+DlgSelectBtnAdd		: "Legg til",
+DlgSelectBtnModify	: "Endre",
+DlgSelectBtnUp		: "Opp",
+DlgSelectBtnDown	: "Ned",
+DlgSelectBtnSetValue : "Sett som valgt",
+DlgSelectBtnDelete	: "Slett",
+
+// Textarea Dialog
+DlgTextareaName	: "Navn",
+DlgTextareaCols	: "Kolonner",
+DlgTextareaRows	: "Rader",
+
+// Text Field Dialog
+DlgTextName			: "Navn",
+DlgTextValue		: "verdi",
+DlgTextCharWidth	: "Tegnbredde",
+DlgTextMaxChars		: "Maks antall tegn",
+DlgTextType			: "Type",
+DlgTextTypeText		: "Tekst",
+DlgTextTypePass		: "Passord",
+
+// Hidden Field Dialog
+DlgHiddenName	: "Navn",
+DlgHiddenValue	: "Verdi",
+
+// Bulleted List Dialog
+BulletedListProp	: "Uordnet listeegenskaper",
+NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",
+DlgLstType			: "Type",
+DlgLstTypeCircle	: "Sirkel",
+DlgLstTypeDisc		: "Hel sirkel",
+DlgLstTypeSquare	: "Firkant",
+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)",
+
+// Document Properties Dialog
+DlgDocGeneralTab	: "Generalt",
+DlgDocBackTab		: "Bakgrunn",
+DlgDocColorsTab		: "Farger og marginer",
+DlgDocMetaTab		: "Meta Data",
+
+DlgDocPageTitle		: "Sidetittel",
+DlgDocLangDir		: "Språkretning",
+DlgDocLangDirLTR	: "Venstre til høyre (LTR)",
+DlgDocLangDirRTL	: "Høyre til venstre (RTL)",
+DlgDocLangCode		: "Språkkode",
+DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Sentraleuropeisk",
+DlgDocCharSetCT		: "Tradisonell kinesisk(Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Gresk",
+DlgDocCharSetJP		: "Japansk",
+DlgDocCharSetKR		: "Koreansk",
+DlgDocCharSetTR		: "Tyrkisk",
+DlgDocCharSetUN		: "Unikode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
+DlgDocCharSetOther	: "Annet tegnsett",
+
+DlgDocDocType		: "Dokumenttype header",
+DlgDocDocTypeOther	: "Annet dokumenttype header",
+DlgDocIncXHTML		: "Inkulder XHTML deklarasjon",
+DlgDocBgColor		: "Bakgrunnsfarge",
+DlgDocBgImage		: "Bakgrunnsbilde url",
+DlgDocBgNoScroll	: "Ikke scroll bakgrunnsbilde",
+DlgDocCText			: "Tekst",
+DlgDocCLink			: "Link",
+DlgDocCVisited		: "Besøkt lenke",
+DlgDocCActive		: "Aktiv lenke",
+DlgDocMargins		: "Sidemargin",
+DlgDocMaTop			: "Topp",
+DlgDocMaLeft		: "Venstre",
+DlgDocMaRight		: "Høyre",
+DlgDocMaBottom		: "Bunn",
+DlgDocMeIndex		: "Dokument nøkkelord (kommaseparert)",
+DlgDocMeDescr		: "Dokumentbeskrivelse",
+DlgDocMeAuthor		: "Forfatter",
+DlgDocMeCopy		: "Kopirett",
+DlgDocPreview		: "Forhåndsvising",
+
+// Templates Dialog
+Templates			: "Maler",
+DlgTemplatesTitle	: "Innholdsmaler",
+DlgTemplatesSelMsg	: "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",
+DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
+DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Erstatt faktisk innold",
+
+// About Dialog
+DlgAboutAboutTab	: "Om",
+DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
+DlgAboutVersion		: "versjon",
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/nl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/nl.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/nl.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: nl.js
- * 	Dutch language file.
- * 
- * File Authors:
- * 		Bram Crins (bcrins at realdesign.nl)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Dutch language file.
  */
 
 var FCKLang =
@@ -32,27 +36,27 @@
 Cut					: "Knippen",
 Copy				: "Kopiëren",
 Paste				: "Plakken",
-PasteText			: "Plakken als pure tekst",
-PasteWord			: "Plakken Word-gegevens",
+PasteText			: "Plakken als platte tekst",
+PasteWord			: "Plakken als Word-gegevens",
 Print				: "Printen",
 SelectAll			: "Alles selecteren",
-RemoveFormat		: "Verwijderen opmaak",
+RemoveFormat		: "Opmaak verwijderen",
 InsertLinkLbl		: "Link",
-InsertLink			: "Invoegen/Wijzigen link",
-RemoveLink			: "Verwijderen link",
+InsertLink			: "Link invoegen/wijzigen",
+RemoveLink			: "Link verwijderen",
 Anchor				: "Interne link",
 InsertImageLbl		: "Afbeelding",
-InsertImage			: "Invoegen/Wijzigen afbeelding",
+InsertImage			: "Afbeelding invoegen/wijzigen",
 InsertFlashLbl		: "Flash",
-InsertFlash			: "Invoegen/Wijzigen Flash",
+InsertFlash			: "Flash invoegen/wijzigen",
 InsertTableLbl		: "Tabel",
-InsertTable			: "Invoegen/Wijzigen tabel",
+InsertTable			: "Tabel invoegen/wijzigen",
 InsertLineLbl		: "Lijn",
 InsertLine			: "Invoegen horizontale lijn",
 InsertSpecialCharLbl: "Speciale tekens",
 InsertSpecialChar	: "Speciaal teken invoegen",
-InsertSmileyLbl		: "Emoticon",
-InsertSmiley		: "Emoticon invoegen",
+InsertSmileyLbl		: "Smiley",
+InsertSmiley		: "Smiley invoegen",
 About				: "Over FCKeditor",
 Bold				: "Vet",
 Italic				: "Schuingedrukt",
@@ -64,40 +68,47 @@
 CenterJustify		: "Centreren",
 RightJustify		: "Rechts uitlijnen",
 BlockJustify		: "Uitvullen",
-DecreaseIndent		: "Oplopenend",
-IncreaseIndent		: "Aflopend",
+DecreaseIndent		: "Inspringen verkleinen",
+IncreaseIndent		: "Inspringen vergroten",
 Undo				: "Ongedaan maken",
-Redo				: "Opnieuw",
+Redo				: "Opnieuw uitvoeren",
 NumberedListLbl		: "Genummerde lijst",
-NumberedList		: "Invoegen/Verwijderen genummerde lijst",
+NumberedList		: "Genummerde lijst invoegen/verwijderen",
 BulletedListLbl		: "Opsomming",
-BulletedList		: "Invoegen/Verwijderen opsomming",
+BulletedList		: "Opsomming invoegen/verwijderen",
 ShowTableBorders	: "Randen tabel weergeven",
 ShowDetails			: "Details weergeven",
 Style				: "Stijl",
 FontFormat			: "Opmaak",
 Font				: "Lettertype",
 FontSize			: "Grootte",
-TextColor			: "Tekst kleur",
-BGColor				: "Achtergrond kleur",
+TextColor			: "Tekstkleur",
+BGColor				: "Achtergrondkleur",
 Source				: "Code",
 Find				: "Zoeken",
 Replace				: "Vervangen",
-SpellCheck			: "Spellings controle",
+SpellCheck			: "Spellingscontrole",
 UniversalKeyboard	: "Universeel toetsenbord",
+PageBreakLbl		: "Pagina-einde",
+PageBreak			: "Pagina-einde invoegen",
 
 Form			: "Formulier",
-Checkbox		: "Aanvink vakje",
-RadioButton		: "Selectie vakje",
+Checkbox		: "Aanvinkvakje",
+RadioButton		: "Selectievakje",
 TextField		: "Tekstveld",
-Textarea		: "Tekstveld (groot)",
+Textarea		: "Tekstvak",
 HiddenField		: "Verborgen veld",
 Button			: "Knop",
 SelectionField	: "Selectieveld",
-ImageButton		: "Grafische knop",
+ImageButton		: "Afbeeldingsknop",
 
+FitWindow		: "De editor maximaliseren",
+
 // Context Menu
 EditLink			: "Link wijzigen",
+CellCM				: "Cel",
+RowCM				: "Rij",
+ColumnCM			: "Kolom",
 InsertRow			: "Rij invoegen",
 DeleteRows			: "Rijen verwijderen",
 InsertColumn		: "Kolom invoegen",
@@ -106,6 +117,7 @@
 DeleteCells			: "Cellen verwijderen",
 MergeCells			: "Cellen samenvoegen",
 SplitCell			: "Cellen splitsen",
+TableDelete			: "Tabel verwijderen",
 CellProperties		: "Eigenschappen cel",
 TableProperties		: "Eigenschappen tabel",
 ImageProperties		: "Eigenschappen afbeelding",
@@ -113,27 +125,29 @@
 
 AnchorProp			: "Eigenschappen interne link",
 ButtonProp			: "Eigenschappen knop",
-CheckboxProp		: "Eigenschappen aanvink vakje",
+CheckboxProp		: "Eigenschappen aanvinkvakje",
 HiddenFieldProp		: "Eigenschappen verborgen veld",
-RadioButtonProp		: "Eigenschappen selectie vakje",
-ImageButtonProp		: "Eigenschappen grafische knop",
+RadioButtonProp		: "Eigenschappen selectievakje",
+ImageButtonProp		: "Eigenschappen afbeeldingsknop",
 TextFieldProp		: "Eigenschappen tekstveld",
 SelectionFieldProp	: "Eigenschappen selectieveld",
-TextareaProp		: "Eigenschappen tekstveld (groot)",
+TextareaProp		: "Eigenschappen tekstvak",
 FormProp			: "Eigenschappen formulier",
 
-FontFormats			: "Normaal;Met opmaak;Adres;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Normaal;Met opmaak;Adres;Kop 1;Kop 2;Kop 3;Kop 4;Kop 5;Kop 6;Normaal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "Verwerken XHTML. Even geduld aub...",
+ProcessingXHTML		: "Bezig met verwerken XHTML. Even geduld aub...",
 Done				: "Klaar",
-PasteWordConfirm	: "De tekst die je plakt lijkt gekopiëerd uit Word. Wil je de tekst opschonen voordat er geplakt wordt?",
-NotCompatiblePaste	: "Deze opdracht is beschikbaar voor Internet Explorer versie 5.5 of hoger. Wil je plakken zonder opschonen?",
-UnknownToolbarItem	: "Onbekende item op menubalk \"%1\"",
-UnknownCommand		: "Onbekende opdracht naam \"%1\"",
+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?",
+UnknownToolbarItem	: "Onbekend item op menubalk \"%1\"",
+UnknownCommand		: "Onbekende opdrachtnaam: \"%1\"",
 NotImplemented		: "Opdracht niet geïmplementeerd.",
 UnknownToolbarSet	: "Menubalk \"%1\" bestaat niet.",
-NoActiveX			: "You 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
+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.",
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,25 +155,25 @@
 DlgBtnClose			: "Afsluiten",
 DlgBtnBrowseServer	: "Bladeren op server",
 DlgAdvancedTag		: "Geavanceerd",
-DlgOpOther			: "&lt;Anders&gt;",
+DlgOpOther			: "<Anders>",
 DlgInfoTab			: "Informatie",
 DlgAlertUrl			: "Geef URL op",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;niet ingevuld&gt;",
+DlgGenNotSet		: "<niet ingevuld>",
 DlgGenId			: "Kenmerk",
-DlgGenLangDir		: "Richting taal",
-DlgGenLangDirLtr	: "Links naar Rechts (LTR)",
-DlgGenLangDirRtl	: "Rechts naar Links (RTL)",
-DlgGenLangCode		: "Code taal",
-DlgGenAccessKey		: "Toegangs toets",
+DlgGenLangDir		: "Schrijfrichting",
+DlgGenLangDirLtr	: "Links naar rechts (LTR)",
+DlgGenLangDirRtl	: "Rechts naar links (RTL)",
+DlgGenLangCode		: "Taalcode",
+DlgGenAccessKey		: "Toegangstoets",
 DlgGenName			: "Naam",
-DlgGenTabIndex		: "Tab Index",
-DlgGenLongDescr		: "Lange omschrijving URL",
-DlgGenClass			: "Stylesheet Klassen",
-DlgGenTitle			: "Advisory titel",
-DlgGenContType		: "Advisory Content type",
-DlgGenLinkCharset	: "Gelinkte bron karakterset",
+DlgGenTabIndex		: "Tabvolgorde",
+DlgGenLongDescr		: "Lange URL-omschrijving",
+DlgGenClass			: "Stylesheet-klassen",
+DlgGenTitle			: "Aanbevolen titel",
+DlgGenContType		: "Aanbevolen content-type",
+DlgGenLinkCharset	: "Karakterset van gelinkte bron",
 DlgGenStyle			: "Stijl",
 
 // Image Dialog
@@ -178,63 +192,63 @@
 DlgImgVSpace		: "VSpace",
 DlgImgAlign			: "Uitlijning",
 DlgImgAlignLeft		: "Links",
-DlgImgAlignAbsBottom: "Abs beneden",
-DlgImgAlignAbsMiddle: "Abs midden",
+DlgImgAlignAbsBottom: "Absoluut-onder",
+DlgImgAlignAbsMiddle: "Absoluut-midden",
 DlgImgAlignBaseline	: "Basislijn",
 DlgImgAlignBottom	: "Beneden",
 DlgImgAlignMiddle	: "Midden",
 DlgImgAlignRight	: "Rechts",
-DlgImgAlignTextTop	: "Tekst boven",
+DlgImgAlignTextTop	: "Boven tekst",
 DlgImgAlignTop		: "Boven",
 DlgImgPreview		: "Voorbeeld",
-DlgImgAlertUrl		: "Geeft de URL van de afbeelding",
+DlgImgAlertUrl		: "Geef de URL van de afbeelding",
 DlgImgLinkTab		: "Link",
 
 // Flash Dialog
 DlgFlashTitle		: "Eigenschappen Flash",
 DlgFlashChkPlay		: "Automatisch afspelen",
 DlgFlashChkLoop		: "Herhalen",
-DlgFlashChkMenu		: "Flaschmenu\'s inschakelen",
-DlgFlashScale		: "Verschalen",
+DlgFlashChkMenu		: "Flashmenu\'s inschakelen",
+DlgFlashScale		: "Schaal",
 DlgFlashScaleAll	: "Alles tonen",
 DlgFlashScaleNoBorder	: "Geen rand",
-DlgFlashScaleFit	: "Precies passen",
+DlgFlashScaleFit	: "Precies passend",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Link",
-DlgLnkInfoTab		: "Informatie link",
+DlgLnkInfoTab		: "Linkomschrijving",
 DlgLnkTargetTab		: "Doel",
 
-DlgLnkType			: "Type link",
+DlgLnkType			: "Linktype",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Interne link in pagina",
-DlgLnkTypeEMail		: "E-Mail",
+DlgLnkTypeEMail		: "E-mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;anders&gt;",
+DlgLnkProtoOther	: "<anders>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Kies een interne link",
 DlgLnkAnchorByName	: "Op naam interne link",
 DlgLnkAnchorById	: "Op kenmerk interne link",
-DlgLnkNoAnchors		: "&lt;Geen interne links in document gevonden.&gt;",
-DlgLnkEMail			: "E-Mail adres",
+DlgLnkNoAnchors		: "(Geen interne links in document gevonden)",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "E-mailadres",
 DlgLnkEMailSubject	: "Onderwerp bericht",
 DlgLnkEMailBody		: "Inhoud bericht",
 DlgLnkUpload		: "Upload",
-DlgLnkBtnUpload		: "Naar de server versturen.",
+DlgLnkBtnUpload		: "Naar de server versturen",
 
 DlgLnkTarget		: "Doel",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;popup window&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<popup window>",
 DlgLnkTargetBlank	: "Nieuw venster (_blank)",
-DlgLnkTargetParent	: "Ouder venster (_parent)",
+DlgLnkTargetParent	: "Origineel venster (_parent)",
 DlgLnkTargetSelf	: "Zelfde venster (_self)",
-DlgLnkTargetTop		: "Browser venster (_top)",
+DlgLnkTargetTop		: "Hele venster (_top)",
 DlgLnkTargetFrameName	: "Naam doelframe",
-DlgLnkPopWinName	: "Naam popup venster",
-DlgLnkPopWinFeat	: "Instellingen popup venster",
+DlgLnkPopWinName	: "Naam popupvenster",
+DlgLnkPopWinFeat	: "Instellingen popupvenster",
 DlgLnkPopResize		: "Grootte wijzigen",
-DlgLnkPopLocation	: "Locatie menu",
-DlgLnkPopMenu		: "Menu balk",
+DlgLnkPopLocation	: "Locatiemenu",
+DlgLnkPopMenu		: "Menubalk",
 DlgLnkPopScroll		: "Schuifbalken",
 DlgLnkPopStatus		: "Statusbalk",
 DlgLnkPopToolbar	: "Menubalk",
@@ -243,11 +257,12 @@
 DlgLnkPopWidth		: "Breedte",
 DlgLnkPopHeight		: "Hoogte",
 DlgLnkPopLeft		: "Positie links",
-DlgLnkPopTop		: "Positie top",
+DlgLnkPopTop		: "Positie boven",
 
-DlnLnkMsgNoUrl		: "Geeft de link van de URL",
-DlnLnkMsgNoEMail	: "Geef een e-mail adres",
+DlnLnkMsgNoUrl		: "Geef de link van de URL",
+DlnLnkMsgNoEMail	: "Geef een e-mailadres",
 DlnLnkMsgNoAnchor	: "Selecteer een interne link",
+DlnLnkMsgInvPopName	: "De naam van de popup moet met een alfa-numerieke waarde beginnen, en mag geen spaties bevatten.",
 
 // Color Dialog
 DlgColorTitle		: "Selecteer kleur",
@@ -256,10 +271,10 @@
 DlgColorSelected	: "Geselecteerd",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Invoegen smiley",
+DlgSmileyTitle		: "Smiley invoegen",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Selecteer speciaal karakter",
+DlgSpecialCharTitle	: "Selecteer speciaal teken",
 
 // Table Dialog
 DlgTableTitle		: "Eigenschappen tabel",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "Kolommen",
 DlgTableBorder		: "Breedte rand",
 DlgTableAlign		: "Uitlijning",
-DlgTableAlignNotSet	: "<Niet ingegven>",
+DlgTableAlignNotSet	: "<Niet ingevoerd>",
 DlgTableAlignLeft	: "Links",
 DlgTableAlignCenter	: "Centreren",
 DlgTableAlignRight	: "Rechts",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Afstand tussen cellen",
 DlgTableCellPad		: "Afstand vanaf rand cel",
 DlgTableCaption		: "Naam",
+DlgTableSummary		: "Samenvatting",
 
 // Table Cell Dialog
 DlgCellTitle		: "Eigenschappen cel",
@@ -286,29 +302,29 @@
 DlgCellWidthPc		: "procent",
 DlgCellHeight		: "Hoogte",
 DlgCellWordWrap		: "Afbreken woorden",
-DlgCellWordWrapNotSet	: "<Niet ingegeven>",
+DlgCellWordWrapNotSet	: "<Niet ingevoerd>",
 DlgCellWordWrapYes	: "Ja",
 DlgCellWordWrapNo	: "Nee",
 DlgCellHorAlign		: "Horizontale uitlijning",
-DlgCellHorAlignNotSet	: "<Niet ingegeven>",
+DlgCellHorAlignNotSet	: "<Niet ingevoerd>",
 DlgCellHorAlignLeft	: "Links",
 DlgCellHorAlignCenter	: "Centreren",
 DlgCellHorAlignRight: "Rechts",
 DlgCellVerAlign		: "Verticale uitlijning",
-DlgCellVerAlignNotSet	: "<Niet ingegeven>",
+DlgCellVerAlignNotSet	: "<Niet ingevoerd>",
 DlgCellVerAlignTop	: "Boven",
 DlgCellVerAlignMiddle	: "Midden",
 DlgCellVerAlignBottom	: "Beneden",
 DlgCellVerAlignBaseline	: "Basislijn",
 DlgCellRowSpan		: "Overkoepeling rijen",
 DlgCellCollSpan		: "Overkoepeling kolommen",
-DlgCellBackColor	: "Kleur achterrond",
-DlgCellBorderColor	: "Kleur rand",
+DlgCellBackColor	: "Achtergrondkleur",
+DlgCellBorderColor	: "Randkleur",
 DlgCellBtnSelect	: "Selecteren...",
 
 // Find Dialog
-DlgFindTitle		: "Vinden",
-DlgFindFindBtn		: "Vinden",
+DlgFindTitle		: "Zoeken",
+DlgFindFindBtn		: "Zoeken",
 DlgFindNotFoundMsg	: "De opgegeven tekst is niet gevonden.",
 
 // Replace Dialog
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Hele woord moet voorkomen",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "De beveiligingsinstelling van de browser verhinderen het automatisch plakken. Gebruik Ctrl+V op het toetsenbord.",
-PasteErrorCut	: "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik Ctrl+X op het toetsenbord.",
-PasteErrorCopy	: "De beveiligingsinstelling van de browser verhinderen het automatisch kopieëren. Gebruik Ctrl+C op het toetsenbord.",
+PasteErrorCut	: "De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.",
+PasteErrorCopy	: "De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.",
 
 PasteAsText		: "Plakken als platte tekst",
-PasteFromWord	: "Plakken van Word-gegevens",
+PasteFromWord	: "Plakken als Word-gegevens",
 
-DlgPasteMsg2	: "Plak de tekst in de volgende box gebruikmakend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en kies <STRONG>OK</STRONG>.",
-DlgPasteIgnoreFont		: "Negeer Font Face definities",
-DlgPasteRemoveStyles	: "Verwijder Styles definities",
-DlgPasteCleanBox		: "Box opschonen",
+DlgPasteMsg2	: "Plak de tekst in het volgende vak gebruik makend van je toetstenbord (<STRONG>Ctrl+V</STRONG>) en klik op <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Negeer \"Font Face\"-definities",
+DlgPasteRemoveStyles	: "Verwijder \"Style\"-definities",
+DlgPasteCleanBox		: "Vak opschonen",
 
-
 // Color Picker
 ColorAutomatic	: "Automatisch",
 ColorMoreColors	: "Meer kleuren...",
@@ -356,16 +371,19 @@
 DlgSpellBtnUndo			: "Ongedaan maken",
 DlgSpellNoSuggestions	: "-Geen suggesties-",
 DlgSpellProgress		: "Bezig met spellingscontrole...",
-DlgSpellNoMispell		: "Klaar met spellingscontrole: Geen fouten gevonden",
-DlgSpellNoChanges		: "Klaar met spellingscontrole: Geen woorden aangepast",
-DlgSpellOneChange		: "Klaar met spellingscontrole: 1 woord aangepast",
+DlgSpellNoMispell		: "Klaar met spellingscontrole: geen fouten gevonden",
+DlgSpellNoChanges		: "Klaar met spellingscontrole: geen woorden aangepast",
+DlgSpellOneChange		: "Klaar met spellingscontrole: één woord aangepast",
 DlgSpellManyChanges		: "Klaar met spellingscontrole: %1 woorden aangepast",
 
-IeSpellDownload			: "Spellingscontrole niet geïnstalleerd. Wil je deze nu downloaden?",
+IeSpellDownload			: "De spellingscontrole niet geïnstalleerd. Wil je deze nu downloaden?",
 
 // Button Dialog
-DlgButtonText	: "Tekst (waarde)",
-DlgButtonType	: "Soort",
+DlgButtonText		: "Tekst (waarde)",
+DlgButtonType		: "Soort",
+DlgButtonTypeBtn	: "Knop",
+DlgButtonTypeSbm	: "Versturen",
+DlgButtonTypeRst	: "Leegmaken",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Naam",
@@ -401,8 +419,8 @@
 // Text Field Dialog
 DlgTextName			: "Naam",
 DlgTextValue		: "Waarde",
-DlgTextCharWidth	: "Breedte karakter",
-DlgTextMaxChars		: "Maximum aantal karakters",
+DlgTextCharWidth	: "Breedte (tekens)",
+DlgTextMaxChars		: "Maximum aantal tekens",
 DlgTextType			: "Soort",
 DlgTextTypeText		: "Tekst",
 DlgTextTypePass		: "Wachtwoord",
@@ -414,46 +432,56 @@
 // Bulleted List Dialog
 BulletedListProp	: "Eigenschappen opsommingslijst",
 NumberedListProp	: "Eigenschappen genummerde opsommingslijst",
+DlgLstStart			: "Start",
 DlgLstType			: "Soort",
 DlgLstTypeCircle	: "Cirkel",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Schijf",
 DlgLstTypeSquare	: "Vierkant",
-DlgLstTypeNumbers	: "Nummerks (1, 2, 3)",
+DlgLstTypeNumbers	: "Nummers (1, 2, 3)",
 DlgLstTypeLCase		: "Kleine letters (a, b, c)",
 DlgLstTypeUCase		: "Hoofdletters (A, B, C)",
-DlgLstTypeSRoman	: "Klein romeins (i, ii, iii)",
-DlgLstTypeLRoman	: "Groot romeins (I, II, III)",
+DlgLstTypeSRoman	: "Klein Romeins (i, ii, iii)",
+DlgLstTypeLRoman	: "Groot Romeins (I, II, III)",
 
 // Document Properties Dialog
 DlgDocGeneralTab	: "Algemeen",
 DlgDocBackTab		: "Achtergrond",
 DlgDocColorsTab		: "Kleuring en marges",
-DlgDocMetaTab		: "Meta data",
+DlgDocMetaTab		: "META-data",
 
-DlgDocPageTitle		: "Titel pagina",
-DlgDocLangDir		: "Richting taal",
+DlgDocPageTitle		: "Paginatitel",
+DlgDocLangDir		: "Schrijfrichting",
 DlgDocLangDirLTR	: "Links naar rechts",
 DlgDocLangDirRTL	: "Rechts naar links",
 DlgDocLangCode		: "Taalcode",
 DlgDocCharSet		: "Karakterset-encoding",
+DlgDocCharSetCE		: "Centraal Europees",
+DlgDocCharSetCT		: "Traditioneel Chinees (Big5)",
+DlgDocCharSetCR		: "Cyriliaans",
+DlgDocCharSetGR		: "Grieks",
+DlgDocCharSetJP		: "Japans",
+DlgDocCharSetKR		: "Koreaans",
+DlgDocCharSetTR		: "Turks",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "West europees",
 DlgDocCharSetOther	: "Andere karakterset-encoding",
 
-DlgDocDocType		: "Opschrift document soort",
-DlgDocDocTypeOther	: "Ander opschrift document soort",
-DlgDocIncXHTML		: "XHTML declaraties meenemen",
-DlgDocBgColor		: "Achtergrond kleur",
+DlgDocDocType		: "Opschrift documentsoort",
+DlgDocDocTypeOther	: "Ander opschrift documentsoort",
+DlgDocIncXHTML		: "XHTML-declaraties meenemen",
+DlgDocBgColor		: "Achtergrondkleur",
 DlgDocBgImage		: "URL achtergrondplaatje",
-DlgDocBgNoScroll	: "Gefixeerde achtergrond",
+DlgDocBgNoScroll	: "Vaste achtergrond",
 DlgDocCText			: "Tekst",
 DlgDocCLink			: "Link",
 DlgDocCVisited		: "Bezochte link",
 DlgDocCActive		: "Active link",
 DlgDocMargins		: "Afstandsinstellingen document",
-DlgDocMaTop			: "Top",
+DlgDocMaTop			: "Boven",
 DlgDocMaLeft		: "Links",
 DlgDocMaRight		: "Rechts",
-DlgDocMaBottom		: "Bodem",
-DlgDocMeIndex		: "Trefwoorden betreffende document (komma gescheiden)",
+DlgDocMaBottom		: "Onder",
+DlgDocMeIndex		: "Trefwoorden betreffende document (kommagescheiden)",
 DlgDocMeDescr		: "Beschrijving document",
 DlgDocMeAuthor		: "Auteur",
 DlgDocMeCopy		: "Copyright",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Sjablonen",
 DlgTemplatesTitle	: "Inhoud sjabonen",
-DlgTemplatesSelMsg	: "Selecteer een sjabloon die in de editor geopend moet worden. (De actuele inhoud gaat verloren.):",
-DlgTemplatesLoading	: "Bezig met laden sjabonen. Even geduld aub...",
-DlgTemplatesNoTpl	: "(Geen sjablonen gedefiniëerd)",
+DlgTemplatesSelMsg	: "Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):",
+DlgTemplatesLoading	: "Bezig met laden sjabonen. Even geduld alstublieft...",
+DlgTemplatesNoTpl	: "(Geen sjablonen gedefinieerd)",
+DlgTemplatesReplace	: "Vervang de huidige inhoud",
 
 // About Dialog
 DlgAboutAboutTab	: "Over",
-DlgAboutBrowserInfoTab	: "Browser informatie",
+DlgAboutBrowserInfoTab	: "Browserinformatie",
+DlgAboutLicenseTab	: "Licentie",
 DlgAboutVersion		: "Versie",
-DlgAboutLicense		: "Gelicenceerd onder de condities van de GNU Lesser General Public License",
 DlgAboutInfo		: "Voor meer informatie ga naar "
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/no.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/no.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/no.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: no.js
- * 	Norwegian language file.
- * 
- * File Authors:
- * 		Martin Kronstad (www.siteman.no) (martin.kronstad at broadpark.no)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Norwegian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Erstatt",
 SpellCheck			: "Stavekontroll",
 UniversalKeyboard	: "Universelt tastatur",
+PageBreakLbl		: "Sideskift",
+PageBreak			: "Sett inn sideskift",
 
 Form			: "Skjema",
 Checkbox		: "Sjekkboks",
@@ -96,8 +102,13 @@
 SelectionField	: "Dropdown meny",
 ImageButton		: "Bildeknapp",
 
+FitWindow		: "Maksimer størrelsen på redigeringsverktøyet",
+
 // Context Menu
 EditLink			: "Rediger lenke",
+CellCM				: "Celle",
+RowCM				: "Rader",
+ColumnCM			: "Kolonne",
 InsertRow			: "Sett inn rad",
 DeleteRows			: "Slett rader",
 InsertColumn		: "Sett inn kolonne",
@@ -106,6 +117,7 @@
 DeleteCells			: "Slett celler",
 MergeCells			: "Slå sammen celler",
 SplitCell			: "Splitt celler",
+TableDelete			: "Slett tabell",
 CellProperties		: "Celleegenskaper",
 TableProperties		: "Tabellegenskaper",
 ImageProperties		: "Bildeegenskaper",
@@ -122,7 +134,7 @@
 TextareaProp		: "Tekstfeltegenskaper",
 FormProp			: "Skjemaegenskaper",
 
-FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",
+FontFormats			: "Normal;Formatert;Adresse;Tittel 1;Tittel 2;Tittel 3;Tittel 4;Tittel 5;Tittel 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Lager XHTML. Vennligst vent...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Ukjent kommando \"%1\"",
 NotImplemented		: "Kommando ikke ennå implimentert",
 UnknownToolbarSet	: "Verktøylinjesett \"%1\" finnes ikke",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Lukk",
 DlgBtnBrowseServer	: "Bla igjennom server",
 DlgAdvancedTag		: "Avansert",
-DlgOpOther			: "&lt;Annet&gt;",
+DlgOpOther			: "<Annet>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Vennligst skriv inn URL'en",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ikke satt&gt;",
+DlgGenNotSet		: "<ikke satt>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Språkretning",
 DlgGenLangDirLtr	: "Venstre til høyre (VTH)",
@@ -207,15 +221,15 @@
 
 DlgLnkType			: "Lenketype",
 DlgLnkTypeURL		: "URL",
-DlgLnkTypeAnchor	: "Bokmerk denne siden",
+DlgLnkTypeAnchor	: "Lenke til bokmerke i teksten",
 DlgLnkTypeEMail		: "E-Post",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;annet&gt;",
+DlgLnkProtoOther	: "<annet>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Velg ett anker",
 DlgLnkAnchorByName	: "Anker etter navn",
 DlgLnkAnchorById	: "Element etter ID",
-DlgLnkNoAnchors		: "&lt;Ingen anker i dokumentet&gt;",
+DlgLnkNoAnchors		: "<Ingen anker i dokumentet>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Post Addresse",
 DlgLnkEMailSubject	: "Meldingsemne",
 DlgLnkEMailBody		: "Melding",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Send til server",
 
 DlgLnkTarget		: "MÃ¥l",
-DlgLnkTargetFrame	: "&lt;ramme&gt;",
-DlgLnkTargetPopup	: "&lt;popup vindu&gt;",
+DlgLnkTargetFrame	: "<ramme>",
+DlgLnkTargetPopup	: "<popup vindu>",
 DlgLnkTargetBlank	: "Nytt vindu (_blank)",
 DlgLnkTargetParent	: "Foreldre vindu (_parent)",
 DlgLnkTargetSelf	: "Samme vindu (_self)",
@@ -248,6 +262,7 @@
 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",
 
 // Color Dialog
 DlgColorTitle		: "Velg farge",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Celle marg",
 DlgTableCellPad		: "Celle polstring",
 DlgTableCaption		: "Tittel",
+DlgTableSummary		: "Sammendrag",
 
 // Table Cell Dialog
 DlgCellTitle		: "Celle egenskaper",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Finn hele ordet",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk innliming av tekst. Vennligst brukt snareveien (Ctrl+V).",
 PasteErrorCut	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst brukt snareveien (Ctrl+X).",
 PasteErrorCopy	: "Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst brukt snareveien (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 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>.",
-DlgPasteIgnoreFont		: "Ignorer fonter",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Fjern skrifttyper",
 DlgPasteRemoveStyles	: "Fjern stildefinisjoner",
 DlgPasteCleanBox		: "Tøm boksen",
 
-
 // Color Picker
 ColorAutomatic	: "Automatisk",
 ColorMoreColors	: "Flere farger...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Stavekontroll ikke installert, vil du laste den ned nå?",
 
 // Button Dialog
-DlgButtonText	: "Tekst",
-DlgButtonType	: "Type",
+DlgButtonText		: "Tekst",
+DlgButtonType		: "Type",
+DlgButtonTypeBtn	: "Knapp",
+DlgButtonTypeSbm	: "Send",
+DlgButtonTypeRst	: "Nullstill",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Navn",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Uordnet listeegenskaper",
 NumberedListProp	: "Ordnet listeegenskaper",
+DlgLstStart			: "Start",
 DlgLstType			: "Type",
 DlgLstTypeCircle	: "Sirkel",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Hel sirkel",
 DlgLstTypeSquare	: "Firkant",
 DlgLstTypeNumbers	: "Numre(1, 2, 3)",
 DlgLstTypeLCase		: "Små bokstaver (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Høyre til venstre (RTL)",
 DlgDocLangCode		: "Språkkode",
 DlgDocCharSet		: "Tegnsett",
+DlgDocCharSetCE		: "Sentraleuropeisk",
+DlgDocCharSetCT		: "Tradisonell kinesisk(Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Gresk",
+DlgDocCharSetJP		: "Japansk",
+DlgDocCharSetKR		: "Koreansk",
+DlgDocCharSetTR		: "Tyrkisk",
+DlgDocCharSetUN		: "Unikode (UTF-8)",
+DlgDocCharSetWE		: "Vesteuropeisk",
 DlgDocCharSetOther	: "Annet tegnsett",
 
 DlgDocDocType		: "Dokumenttype header",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):",
 DlgTemplatesLoading	: "Laster malliste. Vennligst vent...",
 DlgTemplatesNoTpl	: "(Ingen maler definert)",
+DlgTemplatesReplace	: "Erstatt faktisk innold",
 
 // About Dialog
 DlgAboutAboutTab	: "Om",
 DlgAboutBrowserInfoTab	: "Nettleserinfo",
+DlgAboutLicenseTab	: "Lisens",
 DlgAboutVersion		: "versjon",
-DlgAboutLicense		: "Lisensiert under GNU Lesser General Public License",
-DlgAboutInfo		: "Oversatt av Siteman DA<br /><a target=\"_blank\" href=\"http://www.siteman.no\">www.siteman.no</a><br /><br />For mer informasjon gå til"
-}
\ No newline at end of file
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/pl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/pl.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/pl.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: pl.js
- * 	Polish language file.
- * 
- * File Authors:
- * 		Jakub Boesche (jboesche at gazeta.pl)
- * 		Maciej Bochynski (maciej.bochynski at lubman.pl)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Polish language file.
  */
 
 var FCKLang =
@@ -44,8 +47,8 @@
 Anchor				: "Wstaw/edytuj kotwicÄ™",
 InsertImageLbl		: "Obrazek",
 InsertImage			: "Wstaw/edytuj obrazek",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertFlashLbl		: "Flash",
+InsertFlash			: "Dodaj/Edytuj element Flash",
 InsertTableLbl		: "Tabela",
 InsertTable			: "Wstaw/edytuj tabelÄ™",
 InsertLineLbl		: "Linia pozioma",
@@ -86,6 +89,8 @@
 Replace				: "Zamień",
 SpellCheck			: "Sprawdź pisownię",
 UniversalKeyboard	: "Klawiatura Uniwersalna",
+PageBreakLbl		: "Odstęp",
+PageBreak			: "Wstaw odstęp",
 
 Form			: "Formularz",
 Checkbox		: "Checkbox",
@@ -97,8 +102,13 @@
 SelectionField	: "Lista wyboru",
 ImageButton		: "Przycisk obrazek",
 
+FitWindow		: "Maksymalizuj rozmiar edytora",
+
 // Context Menu
 EditLink			: "Edytuj hiperłącze",
+CellCM				: "Komórka",
+RowCM				: "Wiersz",
+ColumnCM			: "Kolumna",
 InsertRow			: "Wstaw wiersz",
 DeleteRows			: "Usuń wiersze",
 InsertColumn		: "Wstaw kolumnÄ™",
@@ -107,10 +117,11 @@
 DeleteCells			: "Usuń komórki",
 MergeCells			: "Połącz komórki",
 SplitCell			: "Podziel komórkę",
+TableDelete			: "Usuń tabelę",
 CellProperties		: "Właściwości komórki",
 TableProperties		: "Właściwości tabeli",
 ImageProperties		: "Właściwości obrazka",
-FlashProperties		: "Flash Properties",	//MISSING
+FlashProperties		: "Właściwości elementu Flash",
 
 AnchorProp			: "Właściwości kotwicy",
 ButtonProp			: "Właściwości przycisku",
@@ -123,7 +134,7 @@
 TextareaProp		: "Właściwości obszaru tekstowego",
 FormProp			: "Właściwości formularza",
 
-FontFormats			: "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6",
+FontFormats			: "Normalny;Tekst sformatowany;Adres;Nagłówek 1;Nagłówek 2;Nagłówek 3;Nagłówek 4;Nagłówek 5;Nagłówek 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Przetwarzanie XHTML. Proszę czekać...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "Nieznana komenda \"%1\"",
 NotImplemented		: "Komenda niezaimplementowana",
 UnknownToolbarSet	: "Pasek narzędzi \"%1\" nie istnieje",
-NoActiveX			: "You 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
+NoActiveX			: "Ustawienia zabezpieczeń twojej przeglądarki mogą ograniczyć niektóre funkcje edytora. Musisz włączyć opcję \"Uruchamianie formantów Activex i dodatków plugin\". W przeciwnym wypadku mogą pojawiać się błędy.",
+BrowseServerBlocked : "Okno menadżera plików nie może zostać otwarte. Upewnij się, że wszystkie blokady popup są wyłączone.",
+DialogBlocked		: "Nie można otworzyć okna dialogowego. Upewnij się, że wszystkie blokady popup są wyłączone.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Zamknij",
 DlgBtnBrowseServer	: "PrzeglÄ…daj",
 DlgAdvancedTag		: "Zaawansowane",
-DlgOpOther			: "&lt;Inny&gt;",
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgOpOther			: "<Inny>",
+DlgInfoTab			: "Informacje",
+DlgAlertUrl			: "Proszę podać URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nieustawione&gt;",
+DlgGenNotSet		: "<nieustawione>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Kierunek tekstu",
 DlgGenLangDirLtr	: "Od lewej do prawej (LTR)",
@@ -189,17 +202,17 @@
 DlgImgAlignTop		: "Do góry",
 DlgImgPreview		: "PodglÄ…d",
 DlgImgAlertUrl		: "Podaj adres obrazka.",
-DlgImgLinkTab		: "Link",	//MISSING
+DlgImgLinkTab		: "Link",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "Właściwości elementu Flash",
+DlgFlashChkPlay		: "Auto Odtwarzanie",
+DlgFlashChkLoop		: "Pętla",
+DlgFlashChkMenu		: "WÅ‚Ä…cz menu",
+DlgFlashScale		: "Skaluj",
+DlgFlashScaleAll	: "Pokaż wszystko",
+DlgFlashScaleNoBorder	: "Bez Ramki",
+DlgFlashScaleFit	: "Dokładne dopasowanie",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Hiperłącze",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "Odnośnik wewnątrz strony",
 DlgLnkTypeEMail		: "Adres e-mail",
 DlgLnkProto			: "Protokół",
-DlgLnkProtoOther	: "&lt;inny&gt;",
+DlgLnkProtoOther	: "<inny>",
 DlgLnkURL			: "Adres URL",
 DlgLnkAnchorSel		: "Wybierz etykietÄ™",
 DlgLnkAnchorByName	: "Wg etykiety",
 DlgLnkAnchorById	: "Wg identyfikatora elementu",
-DlgLnkNoAnchors		: "&lt;W dokumencie nie zdefiniowano żadnych etykiet&gt;",
+DlgLnkNoAnchors		: "<W dokumencie nie zdefiniowano żadnych etykiet>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Adres e-mail",
 DlgLnkEMailSubject	: "Temat",
 DlgLnkEMailBody		: "Treść",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "Wyślij",
 
 DlgLnkTarget		: "Cel",
-DlgLnkTargetFrame	: "&lt;ramka&gt;",
-DlgLnkTargetPopup	: "&lt;wyskakujÄ…ce okno&gt;",
+DlgLnkTargetFrame	: "<ramka>",
+DlgLnkTargetPopup	: "<wyskakujÄ…ce okno>",
 DlgLnkTargetBlank	: "Nowe okno (_blank)",
 DlgLnkTargetParent	: "Okno nadrzędne (_parent)",
 DlgLnkTargetSelf	: "To samo okno (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Podaj adres URL",
 DlnLnkMsgNoEMail	: "Podaj adres e-mail",
 DlnLnkMsgNoAnchor	: "Wybierz etykietÄ™",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Wybierz kolor",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Odstęp pomiędzy komórkami",
 DlgTableCellPad		: "Margines wewnętrzny komórek",
 DlgTableCaption		: "Tytuł",
+DlgTableSummary		: "Podsumowanie",
 
 // Table Cell Dialog
 DlgCellTitle		: "Właściwości komórki",
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "Całe słowa",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wklejanie tekstu. Użyj skrótu klawiszowego Ctrl+V.",
 PasteErrorCut	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.",
 PasteErrorCopy	: "Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.",
 
 PasteAsText		: "Wklej jako czysty tekst",
 PasteFromWord	: "Wklej z Worda",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Ignoruj definicje 'Font Face'",
+DlgPasteRemoveStyles	: "Usuń definicje Stylów",
+DlgPasteCleanBox		: "Wyczyść",
 
-
 // Color Picker
 ColorAutomatic	: "Automatycznie",
 ColorMoreColors	: "Więcej kolorów...",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "Słownik nie jest zainstalowany. Chcesz go ściągnąć?",
 
 // Button Dialog
-DlgButtonText	: "Tekst (Wartość)",
-DlgButtonType	: "Typ",
+DlgButtonText		: "Tekst (Wartość)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nazwa",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Właściwości listy punktowanej",
 NumberedListProp	: "Właściwości listy numerowanej",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Typ",
 DlgLstTypeCircle	: "Koło",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Dysk",
 DlgLstTypeSquare	: "Kwadrat",
 DlgLstTypeNumbers	: "Cyfry (1, 2, 3)",
 DlgLstTypeLCase		: "Małe litery (a, b, c)",
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "Od prawej do lewej (RTL)",
 DlgDocLangCode		: "Kod języka",
 DlgDocCharSet		: "Kodowanie znaków",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Inne kodowanie znaków",
 
 DlgDocDocType		: "Nagłowek typu dokumentu",
@@ -461,16 +488,17 @@
 DlgDocPreview		: "PodglÄ…d",
 
 // Templates Dialog
-Templates			: "Templates",	//MISSING
-DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
-DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
-DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+Templates			: "Sablony",
+DlgTemplatesTitle	: "Szablony zawartości",
+DlgTemplatesSelMsg	: "Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):",
+DlgTemplatesLoading	: "Ładowanie listy szablonów. Proszę czekać...",
+DlgTemplatesNoTpl	: "(Brak zdefiniowanych szablonów)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "O ...",
 DlgAboutBrowserInfoTab	: "O przeglÄ…darce",
+DlgAboutLicenseTab	: "Licencja",
 DlgAboutVersion		: "wersja",
-DlgAboutLicense		: "na licencji GNU Lesser General Public License",
 DlgAboutInfo		: "Więcej informacji uzyskasz pod adresem"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt-br.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt-br.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt-br.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: pt-br.js
- * 	Brazilian Portuguese language file.
- * 
- * File Authors:
- * 		Carlos Alberto Tomatis Loth (carlos.loth at conectait.com.br)
- * 		GibaPhp (www.xoopstotal.com.br)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Brazilian Portuguese language file.
  */
 
 var FCKLang =
@@ -86,6 +89,8 @@
 Replace				: "Substituir",
 SpellCheck			: "Verificar Ortografia",
 UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de Página",
+PageBreak			: "Inserir Quebra de Página",
 
 Form			: "Formulário",
 Checkbox		: "Caixa de Seleção",
@@ -97,8 +102,13 @@
 SelectionField	: "Caixa de Listagem",
 ImageButton		: "Botão de Imagem",
 
+FitWindow		: "Maximizar o tamanho do editor",
+
 // Context Menu
 EditLink			: "Editar Hiperlink",
+CellCM				: "Célula",
+RowCM				: "Linha",
+ColumnCM			: "Coluna",
 InsertRow			: "Inserir Linha",
 DeleteRows			: "Remover Linhas",
 InsertColumn		: "Inserir Coluna",
@@ -107,6 +117,7 @@
 DeleteCells			: "Remover Células",
 MergeCells			: "Mesclar Células",
 SplitCell			: "Dividir Célular",
+TableDelete			: "Apagar Tabela",
 CellProperties		: "Formatar Célula",
 TableProperties		: "Formatar Tabela",
 ImageProperties		: "Formatar Figura",
@@ -123,7 +134,7 @@
 TextareaProp		: "Formatar Área de Texto",
 FormProp			: "Formatar Formulário",
 
-FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",
+FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Processando XHTML. Por favor, aguarde...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "O comando \"%1\" não é reconhecido",
 NotImplemented		: "O comando não foi implementado",
 UnknownToolbarSet	: "A barra de ferramentas \"%1\" não existe",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "Fechar",
 DlgBtnBrowseServer	: "Localizar no Servidor",
 DlgAdvancedTag		: "Avançado",
-DlgOpOther			: "&lt;Outros&gt;",
+DlgOpOther			: "<Outros>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Inserir a URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;não ajustado&gt;",
+DlgGenNotSet		: "<não ajustado>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Direção do idioma",
 DlgGenLangDirLtr	: "Esquerda para Direita (LTR)",
@@ -203,29 +216,29 @@
 
 // Link Dialog
 DlgLnkWindowTitle	: "Hiperlink",
-DlgLnkInfoTab		: "Informações do hiperlink",
-DlgLnkTargetTab		: "Informações de destino",
+DlgLnkInfoTab		: "Informações",
+DlgLnkTargetTab		: "Destino",
 
 DlgLnkType			: "Tipo de hiperlink",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Âncora nesta página",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocolo",
-DlgLnkProtoOther	: "&lt;outro&gt;",
+DlgLnkProtoOther	: "<outro>",
 DlgLnkURL			: "URL do hiperlink",
 DlgLnkAnchorSel		: "Selecione uma âncora",
 DlgLnkAnchorByName	: "Pelo Nome da âncora",
 DlgLnkAnchorById	: "Pelo Id do Elemento",
-DlgLnkNoAnchors		: "&lt;Não há âncoras disponíveis neste documento&gt;",
+DlgLnkNoAnchors		: "(Não há âncoras disponíveis neste documento)",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Endereço E-Mail",
 DlgLnkEMailSubject	: "Assunto da Mensagem",
-DlgLnkEMailBody		: "Corpo da Mesagem",
+DlgLnkEMailBody		: "Corpo da Mensagem",
 DlgLnkUpload		: "Enviar ao Servidor",
 DlgLnkBtnUpload		: "Enviar ao Servidor",
 
 DlgLnkTarget		: "Destino",
-DlgLnkTargetFrame	: "&lt;quadro&gt;",
-DlgLnkTargetPopup	: "&lt;janela popup&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<janela popup>",
 DlgLnkTargetBlank	: "Nova Janela (_blank)",
 DlgLnkTargetParent	: "Janela Pai (_parent)",
 DlgLnkTargetSelf	: "Mesma Janela (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Por favor, digite o endereço do Hiperlink",
 DlnLnkMsgNoEMail	: "Por favor, digite o endereço de e-mail",
 DlnLnkMsgNoAnchor	: "Por favor, selecione uma âncora",
+DlnLnkMsgInvPopName	: "O nome da janela popup deve começar com uma letra ou sublinhado (_) e não pode conter espaços",
 
 // Color Dialog
 DlgColorTitle		: "Selecione uma Cor",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Espaçamento",
 DlgTableCellPad		: "Enchimento",
 DlgTableCaption		: "Legenda",
+DlgTableSummary		: "Resumo",
 
 // Table Cell Dialog
 DlgCellTitle		: "Formatar célula",
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "Coincidir a palavra inteira",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "As configurações de segurança do seu navegador não permitem que o editor excute operações de colar automaticamente. Por favor, utilize o teclado para colar (Ctrl+V).",
-PasteErrorCut	: "As configurações de segurança do seu navegador não permitem que o editor excute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).",
-PasteErrorCopy	: "As configurações de segurança do seu navegador não permitem que o editor excute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).",
+PasteErrorCut	: "As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).",
+PasteErrorCopy	: "As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).",
 
 PasteAsText		: "Colar como Texto sem Formatação",
 PasteFromWord	: "Colar do Word",
 
 DlgPasteMsg2	: "Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorar definições de fonte",
 DlgPasteRemoveStyles	: "Remove definições de estilo",
 DlgPasteCleanBox		: "Limpar Box",
 
-
 // Color Picker
 ColorAutomatic	: "Automático",
 ColorMoreColors	: "Mais Cores...",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?",
 
 // Button Dialog
-DlgButtonText	: "Texto (Valor)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Botão",
+DlgButtonTypeSbm	: "Enviar",
+DlgButtonTypeRst	: "Limpar",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nome",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Formatar Marcadores",
 NumberedListProp	: "Formatar Numeração",
+DlgLstStart			: "Iniciar",
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Círculo",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disco",
 DlgLstTypeSquare	: "Quadrado",
 DlgLstTypeNumbers	: "Números (1, 2, 3)",
 DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "Direita para Esquerda (RTL)",
 DlgDocLangCode		: "Código do Idioma",
 DlgDocCharSet		: "Codificação de Caracteres",
+DlgDocCharSetCE		: "Europa Central",
+DlgDocCharSetCT		: "Chinês Tradicional (Big5)",
+DlgDocCharSetCR		: "Cirílico",
+DlgDocCharSetGR		: "Grego",
+DlgDocCharSetJP		: "Japonês",
+DlgDocCharSetKR		: "Coreano",
+DlgDocCharSetTR		: "Turco",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Europa Ocidental",
 DlgDocCharSetOther	: "Outra Codificação de Caracteres",
 
 DlgDocDocType		: "Cabeçalho Tipo de Documento",
@@ -466,11 +493,12 @@
 DlgTemplatesSelMsg	: "Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):",
 DlgTemplatesLoading	: "Carregando a lista de modelos de layout. Aguarde...",
 DlgTemplatesNoTpl	: "(Não foram definidos modelos de layout)",
+DlgTemplatesReplace	: "Substituir o conteúdo atual",
 
 // About Dialog
 DlgAboutAboutTab	: "Sobre",
 DlgAboutBrowserInfoTab	: "Informações do Navegador",
+DlgAboutLicenseTab	: "Licença",
 DlgAboutVersion		: "versão",
-DlgAboutLicense		: "Licenciado sobre os termos da GNU Lesser General Public License",
 DlgAboutInfo		: "Para maiores informações visite"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/pt.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: pt.js
- * 	Portuguese language file.
- * 
- * File Authors:
- * 		Francisco Pereira (fjpereira at netcabo.pt)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Portuguese language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Substituir",
 SpellCheck			: "Verificação Ortográfica",
 UniversalKeyboard	: "Teclado Universal",
+PageBreakLbl		: "Quebra de Página",
+PageBreak			: "Inserir Quebra de Página",
 
 Form			: "Formulário",
 Checkbox		: "Caixa de Verificação",
@@ -96,8 +102,13 @@
 SelectionField	: "Caixa de Combinação",
 ImageButton		: "Botão de Imagem",
 
+FitWindow		: "Maximizar o tamanho do editor",
+
 // Context Menu
 EditLink			: "Editar Hiperligação",
+CellCM				: "Célula",
+RowCM				: "Linha",
+ColumnCM			: "Coluna",
 InsertRow			: "Inserir Linha",
 DeleteRows			: "Eliminar Linhas",
 InsertColumn		: "Inserir Coluna",
@@ -106,6 +117,7 @@
 DeleteCells			: "Eliminar Célula",
 MergeCells			: "Unir Células",
 SplitCell			: "Dividir Célula",
+TableDelete			: "Eliminar Tabela",
 CellProperties		: "Propriedades da Célula",
 TableProperties		: "Propriedades da Tabela",
 ImageProperties		: "Propriedades da Imagem",
@@ -122,7 +134,7 @@
 TextareaProp		: "Propriedades da Área de Texto",
 FormProp			: "Propriedades do Formulário",
 
-FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",
+FontFormats			: "Normal;Formatado;Endereço;Título 1;Título 2;Título 3;Título 4;Título 5;Título 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "A Processar XHTML. Por favor, espere...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nome de comando desconhecido \"%1\"",
 NotImplemented		: "Comando não implementado",
 UnknownToolbarSet	: "Nome de barra \"%1\" não definido",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Fechar",
 DlgBtnBrowseServer	: "Navegar no Servidor",
 DlgAdvancedTag		: "Avançado",
-DlgOpOther			: "&lt;Outro&gt;",
+DlgOpOther			: "<Outro>",
 DlgInfoTab			: "Informação",
 DlgAlertUrl			: "Por favor introduza o URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;Não definido&gt;",
+DlgGenNotSet		: "<Não definido>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Orientação de idioma",
 DlgGenLangDirLtr	: "Esquerda à Direita (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Referência a esta página",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocolo",
-DlgLnkProtoOther	: "&lt;outro&gt;",
+DlgLnkProtoOther	: "<outro>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Seleccionar una referência",
 DlgLnkAnchorByName	: "Por Nome de Referência",
 DlgLnkAnchorById	: "Por ID de elemento",
-DlgLnkNoAnchors		: "&lt;Não há referências disponíveis no documento&gt;",
+DlgLnkNoAnchors		: "<Não há referências disponíveis no documento>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Endereço de E-Mail",
 DlgLnkEMailSubject	: "Título de Mensagem",
 DlgLnkEMailBody		: "Corpo da Mensagem",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Enviar ao Servidor",
 
 DlgLnkTarget		: "Destino",
-DlgLnkTargetFrame	: "&lt;Frame&gt;",
-DlgLnkTargetPopup	: "&lt;Janela de popup&gt;",
+DlgLnkTargetFrame	: "<Frame>",
+DlgLnkTargetPopup	: "<Janela de popup>",
 DlgLnkTargetBlank	: "Nova Janela(_blank)",
 DlgLnkTargetParent	: "Janela Pai (_parent)",
 DlgLnkTargetSelf	: "Mesma janela (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Por favor introduza a hiperligação URL",
 DlnLnkMsgNoEMail	: "Por favor introduza o endereço de e-mail",
 DlnLnkMsgNoAnchor	: "Por favor seleccione uma referência",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Seleccionar Cor",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Esp. e/células",
 DlgTableCellPad		: "Esp. interior",
 DlgTableCaption		: "Título",
+DlgTableSummary		: "Sumário",
 
 // Table Cell Dialog
 DlgCellTitle		: "Propriedades da Célula",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Coincidir com toda a palavra",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "A configuração de segurança do navegador não permite a execução automática de operações de colar. Por favor use o teclado (Ctrl+V).",
 PasteErrorCut	: "A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).",
 PasteErrorCopy	: "A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Colar do Word",
 
 DlgPasteMsg2	: "Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorar da definições do Tipo de Letra ",
 DlgPasteRemoveStyles	: "Remover as definições de Estilos",
 DlgPasteCleanBox		: "Caixa de Limpeza",
 
-
 // Color Picker
 ColorAutomatic	: "Automático",
 ColorMoreColors	: "Mais Cores...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: " Verificação ortográfica não instalada. Quer descarregar agora?",
 
 // Button Dialog
-DlgButtonText	: "Texto (Valor)",
-DlgButtonType	: "Tipo",
+DlgButtonText		: "Texto (Valor)",
+DlgButtonType		: "Tipo",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nome",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Propriedades da Marca",
 NumberedListProp	: "Propriedades da Numeração",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tipo",
 DlgLstTypeCircle	: "Circulo",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disco",
 DlgLstTypeSquare	: "Quadrado",
 DlgLstTypeNumbers	: "Números (1, 2, 3)",
 DlgLstTypeLCase		: "Letras Minúsculas (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Direita à Esquerda (RTL)",
 DlgDocLangCode		: "Código de Idioma",
 DlgDocCharSet		: "Codificação de Caracteres",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Outra Codificação de Caracteres",
 
 DlgDocDocType		: "Tipo de Cabeçalho do Documento",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):",
 DlgTemplatesLoading	: "A carregar a lista de modelos. Aguarde por favor...",
 DlgTemplatesNoTpl	: "(Sem modelos definidos)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Acerca",
 DlgAboutBrowserInfoTab	: "Informação do Nevegador",
+DlgAboutLicenseTab	: "Licença",
 DlgAboutVersion		: "versão",
-DlgAboutLicense		: "Licenciado segundo os términos de GNU Lesser General Public License",
 DlgAboutInfo		: "Para mais informações por favor dirija-se a"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ro.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ro.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ro.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ro.js
- * 	Romanian language file.
- * 
- * File Authors:
- * 		Adrian Nicoara
- * 		Ionut Traian Popa
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Romanian language file.
  */
 
 var FCKLang =
@@ -86,6 +89,8 @@
 Replace				: "ÃŽnlocuieÅŸte",
 SpellCheck			: "Verifică text",
 UniversalKeyboard	: "Tastatură universală",
+PageBreakLbl		: "Separator de pagină (Page Break)",
+PageBreak			: "Inserează separator de pagină (Page Break)",
 
 Form			: "Formular (Form)",
 Checkbox		: "Bifă (Checkbox)",
@@ -97,16 +102,22 @@
 SelectionField	: "Câmp selecţie (SelectionField)",
 ImageButton		: "Buton imagine (ImageButton)",
 
+FitWindow		: "Maximizează mărimea editorului",
+
 // Context Menu
 EditLink			: "Editează Link",
-InsertRow			: "Inserează Row",
-DeleteRows			: "Åžterge Rows",
-InsertColumn		: "Inserează Column",
-DeleteColumns		: "Åžterge Columns",
-InsertCell			: "Inserează Cell",
+CellCM				: "Celulă",
+RowCM				: "Linie",
+ColumnCM			: "Coloană",
+InsertRow			: "Inserează linie",
+DeleteRows			: "Åžterge linii",
+InsertColumn		: "Inserează coloană",
+DeleteColumns		: "Åžterge celule",
+InsertCell			: "Inserează celulă",
 DeleteCells			: "Åžterge celule",
 MergeCells			: "UneÅŸte celule",
 SplitCell			: "Împarte celulă",
+TableDelete			: "Åžterge tabel",
 CellProperties		: "Proprietăţile celulei",
 TableProperties		: "Proprietăţile tabelului",
 ImageProperties		: "Proprietăţile imaginii",
@@ -123,7 +134,7 @@
 TextareaProp		: "Proprietăţi suprafaţă text (Textarea)",
 FormProp			: "Proprietăţi formular (Form)",
 
-FontFormats			: "Normal;Formatat;Adresa;Titlu 1;Titlu 2;Titlu 3;Titlu 4;Titlu 5;Titlu 6;Paragraf (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html	//MISSING
 
 // Alerts and Messages
 ProcessingXHTML		: "Procesăm XHTML. Vă rugăm aşteptaţi...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "Comanda \"%1\" necunoscută",
 NotImplemented		: "Comandă neimplementată",
 UnknownToolbarSet	: "Grupul din bara cu opţiuni \"%1\" nu există",
-NoActiveX			: "You 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
+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).",
 
 // Dialogs
 DlgBtnOK			: "Bine",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "ÃŽnchidere",
 DlgBtnBrowseServer	: "Răsfoieşte server",
 DlgAdvancedTag		: "Avansat",
-DlgOpOther			: "&lt;Altul&gt;",
+DlgOpOther			: "<Altul>",
 DlgInfoTab			: "Informaţii",
 DlgAlertUrl			: "Vă rugăm să scrieţi URL-ul",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nesetat&gt;",
+DlgGenNotSet		: "<nesetat>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Direcţia cuvintelor",
 DlgGenLangDirLtr	: "stânga-dreapta (LTR)",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "Ancoră în această pagină",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protocol",
-DlgLnkProtoOther	: "&lt;altul&gt;",
+DlgLnkProtoOther	: "<altul>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Selectaţi o ancoră",
 DlgLnkAnchorByName	: "după numele ancorei",
 DlgLnkAnchorById	: "după Id-ul elementului",
-DlgLnkNoAnchors		: "&lt;Nici o ancoră disponibilă în document&gt;",
+DlgLnkNoAnchors		: "<Nicio ancoră disponibilă în document>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Adresă de e-mail",
 DlgLnkEMailSubject	: "Subiectul mesajului",
 DlgLnkEMailBody		: "Conţinutul mesajului",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "Trimite la server",
 
 DlgLnkTarget		: "Ţintă (Target)",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;fereastra popup&gt;",
+DlgLnkTargetFrame	: "<frame>",
+DlgLnkTargetPopup	: "<fereastra popup>",
 DlgLnkTargetBlank	: "Fereastră nouă (_blank)",
 DlgLnkTargetParent	: "Fereastra părinte (_parent)",
 DlgLnkTargetSelf	: "Aceeaşi fereastră (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Vă rugăm să scrieţi URL-ul",
 DlnLnkMsgNoEMail	: "Vă rugăm să scrieţi adresa de e-mail",
 DlnLnkMsgNoAnchor	: "Vă rugăm să selectaţi o ancoră",
+DlnLnkMsgInvPopName	: "Numele 'popup'-ului trebuie să înceapă cu un caracter alfabetic şi trebuie să nu conţină spaţii",
 
 // Color Dialog
 DlgColorTitle		: "Selectează culoare",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "Spaţiu între celule",
 DlgTableCellPad		: "Spaţiu în cadrul celulei",
 DlgTableCaption		: "Titlu (Caption)",
+DlgTableSummary		: "Rezumat",
 
 // Table Cell Dialog
 DlgCellTitle		: "Proprietăţile celulei",
@@ -287,16 +302,16 @@
 DlgCellWidthPc		: "procente",
 DlgCellHeight		: "Înălţime",
 DlgCellWordWrap		: "Desparte cuvintele (Wrap)",
-DlgCellWordWrapNotSet	: "&lt;Nesetat&gt;",
+DlgCellWordWrapNotSet	: "<Nesetat>",
 DlgCellWordWrapYes	: "Da",
 DlgCellWordWrapNo	: "Nu",
 DlgCellHorAlign		: "Aliniament orizontal",
-DlgCellHorAlignNotSet	: "&lt;Nesetat&gt;",
+DlgCellHorAlignNotSet	: "<Nesetat>",
 DlgCellHorAlignLeft	: "Stânga",
 DlgCellHorAlignCenter	: "Centru",
 DlgCellHorAlignRight: "Dreapta",
 DlgCellVerAlign		: "Aliniament vertical",
-DlgCellVerAlignNotSet	: "&lt;Nesetat&gt;",
+DlgCellVerAlignNotSet	: "<Nesetat>",
 DlgCellVerAlignTop	: "Sus",
 DlgCellVerAlignMiddle	: "Mijloc",
 DlgCellVerAlignBottom	: "Jos",
@@ -322,7 +337,6 @@
 DlgReplaceWordChk		: "Doar cuvintele întregi",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de adăugare. Vă rugăm folosiţi tastatura (Ctrl+V).",
 PasteErrorCut	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl+X).",
 PasteErrorCopy	: "Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl+C).",
 
@@ -330,11 +344,11 @@
 PasteFromWord	: "Adaugă din Word",
 
 DlgPasteMsg2	: "Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignoră definiţiile Font Face",
 DlgPasteRemoveStyles	: "Şterge definiţiile stilurilor",
 DlgPasteCleanBox		: "Şterge căsuţa",
 
-
 // Color Picker
 ColorAutomatic	: "Automatic",
 ColorMoreColors	: "Mai multe culori...",
@@ -357,16 +371,19 @@
 DlgSpellBtnUndo			: "Starea anterioară (undo)",
 DlgSpellNoSuggestions	: "- Fără sugestii -",
 DlgSpellProgress		: "Verificarea textului în desfăşurare...",
-DlgSpellNoMispell		: "Verificarea textului terminată: Nici o greşeală găsită",
-DlgSpellNoChanges		: "Verificarea textului terminată: Nici un cuvânt modificat",
+DlgSpellNoMispell		: "Verificarea textului terminată: Nicio greşeală găsită",
+DlgSpellNoChanges		: "Verificarea textului terminată: Niciun cuvânt modificat",
 DlgSpellOneChange		: "Verificarea textului terminată: Un cuvânt modificat",
 DlgSpellManyChanges		: "Verificarea textului terminată: 1% cuvinte modificate",
 
 IeSpellDownload			: "Unealta pentru verificat textul (Spell checker) neinstalată. Doriţi să o descărcaţi acum?",
 
 // Button Dialog
-DlgButtonText	: "Text (Valoare)",
-DlgButtonType	: "Tip",
+DlgButtonText		: "Text (Valoare)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Nume",
@@ -415,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Proprietăţile listei punctate (Bulleted List)",
 NumberedListProp	: "Proprietăţile listei numerotate (Numbered List)",
+DlgLstStart			: "Start",
 DlgLstType			: "Tip",
 DlgLstTypeCircle	: "Cerc",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disc",
 DlgLstTypeSquare	: "Pătrat",
 DlgLstTypeNumbers	: "Numere (1, 2, 3)",
 DlgLstTypeLCase		: "Minuscule-litere mici (a, b, c)",
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "dreapta-stânga (RTL)",
 DlgDocLangCode		: "Codul limbii",
 DlgDocCharSet		: "Encoding setului de caractere",
+DlgDocCharSetCE		: "Central european",
+DlgDocCharSetCT		: "Chinezesc tradiţional (Big5)",
+DlgDocCharSetCR		: "Chirilic",
+DlgDocCharSetGR		: "Grecesc",
+DlgDocCharSetJP		: "Japonez",
+DlgDocCharSetKR		: "Corean",
+DlgDocCharSetTR		: "Turcesc",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Vest european",
 DlgDocCharSetOther	: "Alt encoding al setului de caractere",
 
 DlgDocDocType		: "Document Type Heading",
@@ -465,12 +492,13 @@
 DlgTemplatesTitle	: "Template-uri (şabloane) de conţinut",
 DlgTemplatesSelMsg	: "Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor<br>(conţinutul actual va fi pierdut):",
 DlgTemplatesLoading	: "Se încarcă lista cu template-uri (şabloane). Vă rugăm aşteptaţi...",
-DlgTemplatesNoTpl	: "(Nici un template (ÅŸablon) definit)",
+DlgTemplatesNoTpl	: "(Niciun template (ÅŸablon) definit)",
+DlgTemplatesReplace	: "ÃŽnlocuieÅŸte cuprinsul actual",
 
 // About Dialog
 DlgAboutAboutTab	: "Despre",
 DlgAboutBrowserInfoTab	: "Informaţii browser",
+DlgAboutLicenseTab	: "Licenţă",
 DlgAboutVersion		: "versiune",
-DlgAboutLicense		: "Licenţiat sub termenii GNU Lesser General Public License",
 DlgAboutInfo		: "Pentru informaţii amănunţite, vizitaţi"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/ru.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/ru.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/ru.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: ru.js
- * 	Russian language file.
- * 
- * File Authors:
- * 		Andrey Grebnev (andrey.grebnev at blandware.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Russian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Заменить",
 SpellCheck			: "Проверить орфографию",
 UniversalKeyboard	: "Универсальная клавиатура",
+PageBreakLbl		: "Разрыв страницы",
+PageBreak			: "Вставить разрыв страницы",
 
 Form			: "Форма",
 Checkbox		: "Флаговая кнопка",
@@ -96,8 +102,13 @@
 SelectionField	: "Список",
 ImageButton		: "Кнопка с изображением",
 
+FitWindow		: "Развернуть окно редактора",
+
 // Context Menu
 EditLink			: "Вставить ссылку",
+CellCM				: "Ячейка",
+RowCM				: "Строка",
+ColumnCM			: "Колонка",
 InsertRow			: "Вставить строку",
 DeleteRows			: "Удалить строки",
 InsertColumn		: "Вставить колонку",
@@ -106,6 +117,7 @@
 DeleteCells			: "Удалить ячейки",
 MergeCells			: "Соединить ячейки",
 SplitCell			: "Разбить ячейку",
+TableDelete			: "Удалить таблицу",
 CellProperties		: "Свойства ячейки",
 TableProperties		: "Свойства таблицы",
 ImageProperties		: "Свойства изображения",
@@ -122,7 +134,7 @@
 TextareaProp		: "Свойства текстовой области",
 FormProp			: "Свойства формы",
 
-FontFormats			: "Нормальный;Форматированный;Адрес;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6",
+FontFormats			: "Нормальный;Форматированный;Адрес;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6;Нормальный (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Обработка XHTML. Пожалуйста подождите...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Не известное имя команды \"%1\"",
 NotImplemented		: "Команда не реализована",
 UnknownToolbarSet	: "Панель инструментов \"%1\" не существует",
-NoActiveX			: "You 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
+NoActiveX			: "Настройки безопасности вашего браузера могут ограничивать некоторые свойства редактора. Вы должны включить опцию \"Запускать элементы управления ActiveX и плугины\". Вы можете видеть ошибки и замечать отсутствие возможностей.",
+BrowseServerBlocked : "Ресурсы браузера не могут быть открыты. Проверьте что блокировки всплывающих окон выключены.",
+DialogBlocked		: "Не возможно открыть окно диалога. Проверьте что блокировки всплывающих окон выключены.",
 
 // Dialogs
 DlgBtnOK			: "ОК",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Закрыть",
 DlgBtnBrowseServer	: "Просмотреть на сервере",
 DlgAdvancedTag		: "Расширенный",
-DlgOpOther			: "&lt;Другое&gt;",
+DlgOpOther			: "<Другое>",
 DlgInfoTab			: "Информация",
 DlgAlertUrl			: "Пожалуйста вставьте URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;не определено&gt;",
+DlgGenNotSet		: "<не определено>",
 DlgGenId			: "Идентификатор",
 DlgGenLangDir		: "Направление языка",
 DlgGenLangDirLtr	: "Слева на право (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Якорь на эту страницу",
 DlgLnkTypeEMail		: "Эл. почта",
 DlgLnkProto			: "Протокол",
-DlgLnkProtoOther	: "&lt;другое&gt;",
+DlgLnkProtoOther	: "<другое>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Выберите якорь",
 DlgLnkAnchorByName	: "По имени якоря",
 DlgLnkAnchorById	: "По идентификатору элемента",
-DlgLnkNoAnchors		: "&lt;Нет якорей доступных в этом документе&gt;",
+DlgLnkNoAnchors		: "<Нет якорей доступных в этом документе>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Адрес эл. почты",
 DlgLnkEMailSubject	: "Заголовок сообщения",
 DlgLnkEMailBody		: "Тело сообщения",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Послать на сервер",
 
 DlgLnkTarget		: "Цель",
-DlgLnkTargetFrame	: "&lt;фрейм&gt;",
-DlgLnkTargetPopup	: "&lt;всплывающее окно&gt;",
+DlgLnkTargetFrame	: "<фрейм>",
+DlgLnkTargetPopup	: "<всплывающее окно>",
 DlgLnkTargetBlank	: "Новое окно (_blank)",
 DlgLnkTargetParent	: "Родительское окно (_parent)",
 DlgLnkTargetSelf	: "Тоже окно (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Пожалуйста введите URL ссылки",
 DlnLnkMsgNoEMail	: "Пожалуйста введите адрес эл. почты",
 DlnLnkMsgNoAnchor	: "Пожалуйста выберете якорь",
+DlnLnkMsgInvPopName	: "Название вспывающего окна должно начинаться буквы и не может содержать пробелов",
 
 // Color Dialog
 DlgColorTitle		: "Выберите цвет",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Промежуток (spacing)",
 DlgTableCellPad		: "Отступ (padding)",
 DlgTableCaption		: "Заголовок",
+DlgTableSummary		: "Резюме",
 
 // Table Cell Dialog
 DlgCellTitle		: "Свойства ячейки",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Совпадение целых слов",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вставки. Пожалуйста используйте клавиатуру для этого (Ctrl+V).",
 PasteErrorCut	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вырезания. Пожалуйста используйте клавиатуру для этого (Ctrl+X).",
 PasteErrorCopy	: "Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Пожалуйста используйте клавиатуру для этого (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Вставить из Word",
 
 DlgPasteMsg2	: "Пожалуйста вставьте текст в прямоугольник используя сочетание клавиш (<STRONG>Ctrl+V</STRONG>) и нажмите <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Игнорировать определения гарнитуры",
 DlgPasteRemoveStyles	: "Убрать определения стилей",
 DlgPasteCleanBox		: "Очистить",
 
-
 // Color Picker
 ColorAutomatic	: "Автоматический",
 ColorMoreColors	: "Цвета...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Модуль проверки орфографии не установлен. Хотите скачать его сейчас?",
 
 // Button Dialog
-DlgButtonText	: "Текст (Значение)",
-DlgButtonType	: "Тип",
+DlgButtonText		: "Текст (Значение)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Кнопка",
+DlgButtonTypeSbm	: "Отправить",
+DlgButtonTypeRst	: "Сбросить",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Имя",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Свойства маркированного списка",
 NumberedListProp	: "Свойства нумерованного списка",
+DlgLstStart			: "Начало",
 DlgLstType			: "Тип",
 DlgLstTypeCircle	: "Круг",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Диск",
 DlgLstTypeSquare	: "Квадрат",
 DlgLstTypeNumbers	: "Номера (1, 2, 3)",
 DlgLstTypeLCase		: "Буквы нижнего регистра (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Справа на лево (RTL)",
 DlgDocLangCode		: "Код языка",
 DlgDocCharSet		: "Кодировка набора символов",
+DlgDocCharSetCE		: "Центрально-европейская",
+DlgDocCharSetCT		: "Китайская традиционная (Big5)",
+DlgDocCharSetCR		: "Кириллица",
+DlgDocCharSetGR		: "Греческая",
+DlgDocCharSetJP		: "Японская",
+DlgDocCharSetKR		: "Корейская",
+DlgDocCharSetTR		: "Турецкая",
+DlgDocCharSetUN		: "Юникод (UTF-8)",
+DlgDocCharSetWE		: "Западно-европейская",
 DlgDocCharSetOther	: "Другая кодировка набора символов",
 
 DlgDocDocType		: "Заголовок типа документа",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Пожалуйста выберете шаблон для открытия в редакторе<br>(текущее содержимое будет потеряно):",
 DlgTemplatesLoading	: "Загрузка списка шаблонов. Пожалуйста подождите...",
 DlgTemplatesNoTpl	: "(Ни одного шаблона не определено)",
+DlgTemplatesReplace	: "Заменить текущее содержание",
 
 // About Dialog
 DlgAboutAboutTab	: "О программе",
 DlgAboutBrowserInfoTab	: "Информация браузера",
+DlgAboutLicenseTab	: "Лицензия",
 DlgAboutVersion		: "Версия",
-DlgAboutLicense		: "Лицензировано в соответствии с условиями GNU Lesser General Public License",
 DlgAboutInfo		: "Для большей информации, посетите"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/sk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/sk.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/sk.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sk.js
- * 	Slovak language file.
- * 
- * File Authors:
- * 		Samuel Szabo (samuel at nanete.sk)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Slovak language file.
  */
 
 var FCKLang =
@@ -42,14 +46,14 @@
 RemoveLink			: "Odstrániť odkaz",
 Anchor				: "Vložiť/zmeniť kotvu",
 InsertImageLbl		: "Obrázok",
-InsertImage			: "Vložiť/zmeniť obrazok",
+InsertImage			: "Vložiť/zmeniť obrázok",
 InsertFlashLbl		: "Flash",
 InsertFlash			: "Vložiť/zmeniť Flash",
 InsertTableLbl		: "Tabuľka",
-InsertTable			: "Vložiť/zmeniť tabulku",
+InsertTable			: "Vložiť/zmeniť tabuľku",
 InsertLineLbl		: "ÄŒiara",
-InsertLine			: "Vložiť vodorovnú čiara",
-InsertSpecialCharLbl: "Speciálne znaky",
+InsertLine			: "Vložiť vodorovnú čiaru",
+InsertSpecialCharLbl: "Špeciálne znaky",
 InsertSpecialChar	: "Vložiť špeciálne znaky",
 InsertSmileyLbl		: "Smajlíky",
 InsertSmiley		: "Vložiť smajlíka",
@@ -77,7 +81,7 @@
 Style				: "Štýl",
 FontFormat			: "Formát",
 Font				: "Písmo",
-FontSize			: "Veľkost",
+FontSize			: "Veľkosť",
 TextColor			: "Farba textu",
 BGColor				: "Farba pozadia",
 Source				: "Zdroj",
@@ -85,6 +89,8 @@
 Replace				: "Nahradiť",
 SpellCheck			: "Kontrola pravopisu",
 UniversalKeyboard	: "Univerzálna klávesnica",
+PageBreakLbl		: "Oddeľovač stránky",
+PageBreak			: "Vložiť oddeľovač stránky",
 
 Form			: "Formulár",
 Checkbox		: "Zaškrtávacie políčko",
@@ -92,40 +98,46 @@
 TextField		: "Textové pole",
 Textarea		: "Textová oblasť",
 HiddenField		: "Skryté pole",
-Button			: "Tlačítko",
+Button			: "Tlačíidlo",
 SelectionField	: "Rozbaľovací zoznam",
-ImageButton		: "Obrázkové tlačítko",
+ImageButton		: "Obrázkové tlačidlo",
 
+FitWindow		: "Maximalizovať veľkosť okna editora",
+
 // Context Menu
 EditLink			: "Zmeniť odkaz",
+CellCM				: "Bunka",
+RowCM				: "Riadok",
+ColumnCM			: "Stĺpec",
 InsertRow			: "Vložiť riadok",
-DeleteRows			: "Zmazať riadok",
+DeleteRows			: "Vymazať riadok",
 InsertColumn		: "Vložiť stĺpec",
 DeleteColumns		: "Zmazať stĺpec",
 InsertCell			: "Vložiť bunku",
-DeleteCells			: "Zmazať bunky",
+DeleteCells			: "Vymazať bunky",
 MergeCells			: "Zlúčiť bunky",
 SplitCell			: "Rozdeliť bunku",
+TableDelete			: "Vymazať tabuľku",
 CellProperties		: "Vlastnosti bunky",
-TableProperties		: "Vlastnosti tabulky",
-ImageProperties		: "Vlastnosti obrázka",
+TableProperties		: "Vlastnosti tabuľky",
+ImageProperties		: "Vlastnosti obrázku",
 FlashProperties		: "Vlastnosti Flashu",
 
 AnchorProp			: "Vlastnosti kotvy",
-ButtonProp			: "Vlastnosti tlačítka",
+ButtonProp			: "Vlastnosti tlačidla",
 CheckboxProp		: "Vlastnosti zaškrtávacieho políčka",
 HiddenFieldProp		: "Vlastnosti skrytého poľa",
 RadioButtonProp		: "Vlastnosti prepínača",
-ImageButtonProp		: "Vlastnosti obrázkového tlačítka",
-TextFieldProp		: "Vlastnosti textového pola",
+ImageButtonProp		: "Vlastnosti obrázkového tlačidla",
+TextFieldProp		: "Vlastnosti textového poľa",
 SelectionFieldProp	: "Vlastnosti rozbaľovacieho zoznamu",
-TextareaProp		: "Vlastnosti textové oblasti",
+TextareaProp		: "Vlastnosti textovej oblasti",
 FormProp			: "Vlastnosti formulára",
 
-FontFormats			: "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6",
+FontFormats			: "Normálny;Formátovaný;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Odsek (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "Prebieha spracovanie XHTML. Prosím čakejte...",
+ProcessingXHTML		: "Prebieha spracovanie XHTML. Čakajte prosím...",
 Done				: "Dokončené.",
 PasteWordConfirm	: "Vyzerá to tak, že vkladaný text je kopírovaný z Wordu. Chcete ho pred vložením vyčistiť?",
 NotCompatiblePaste	: "Tento príkaz je dostupný len v prehliadači Internet Explorer verzie 5.5 alebo vyššej. Chcete vložiť text bez vyčistenia?",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Neznámy príkaz \"%1\"",
 NotImplemented		: "Príkaz nie je implementovaný",
 UnknownToolbarSet	: "Panel nástrojov \"%1\" neexistuje",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,16 +155,16 @@
 DlgBtnClose			: "Zavrieť",
 DlgBtnBrowseServer	: "Prechádzať server",
 DlgAdvancedTag		: "Rozšírené",
-DlgOpOther			: "&lt;Ďalšie&gt;",
+DlgOpOther			: "<Ďalšie>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Prosím vložte URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nenastavené&gt;",
+DlgGenNotSet		: "<nenastavené>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Orientácia jazyka",
 DlgGenLangDirLtr	: "Zľava doprava (LTR)",
-DlgGenLangDirRtl	: "Zprava doľava (RTL)",
+DlgGenLangDirRtl	: "Sprava doľava (RTL)",
 DlgGenLangCode		: "Kód jazyka",
 DlgGenAccessKey		: "Prístupový kľúč",
 DlgGenName			: "Meno",
@@ -177,7 +191,7 @@
 DlgImgHSpace		: "H-medzera",
 DlgImgVSpace		: "V-medzera",
 DlgImgAlign			: "Zarovnanie",
-DlgImgAlignLeft		: "Vľevo",
+DlgImgAlignLeft		: "Vľavo",
 DlgImgAlignAbsBottom: "Úplne dole",
 DlgImgAlignAbsMiddle: "Do stredu",
 DlgImgAlignBaseline	: "Na základňu",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Kotva v tejto stránke",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;iný&gt;",
+DlgLnkProtoOther	: "<iný>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Vybrať kotvu",
 DlgLnkAnchorByName	: "Podľa mena kotvy",
 DlgLnkAnchorById	: "Podľa Id objektu",
-DlgLnkNoAnchors		: "&lt;V stránke žiadna kotva nie je definovaná&gt;",
+DlgLnkNoAnchors		: "<V stránke nie je definovaná žiadna kotva>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mailová adresa",
 DlgLnkEMailSubject	: "Predmet správy",
 DlgLnkEMailBody		: "Telo správy",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Odoslať na server",
 
 DlgLnkTarget		: "Cieľ",
-DlgLnkTargetFrame	: "&lt;rámec&gt;",
-DlgLnkTargetPopup	: "&lt;vyskakovacie okno&gt;",
+DlgLnkTargetFrame	: "<rámec>",
+DlgLnkTargetPopup	: "<vyskakovacie okno>",
 DlgLnkTargetBlank	: "Nové okno (_blank)",
 DlgLnkTargetParent	: "Rodičovské okno (_parent)",
 DlgLnkTargetSelf	: "Rovnaké okno (_self)",
@@ -232,8 +246,8 @@
 DlgLnkTargetFrameName	: "Meno rámu cieľa",
 DlgLnkPopWinName	: "Názov vyskakovacieho okna",
 DlgLnkPopWinFeat	: "Vlastnosti vyskakovacieho okna",
-DlgLnkPopResize		: "Měnitelná velikost",
-DlgLnkPopLocation	: "Panel umístění",
+DlgLnkPopResize		: "Meniteľná veľkosť",
+DlgLnkPopLocation	: "Panel umiestnenia",
 DlgLnkPopMenu		: "Panel ponuky",
 DlgLnkPopScroll		: "Posuvníky",
 DlgLnkPopStatus		: "Stavový riadok",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Zadajte prosím URL odkazu",
 DlnLnkMsgNoEMail	: "Zadajte prosím e-mailovú adresu",
 DlnLnkMsgNoAnchor	: "Vyberte prosím kotvu",
+DlnLnkMsgInvPopName	: "Názov vyskakovacieho okna sa musá začínať písmenom a nemôže obsahovať medzery",
 
 // Color Dialog
 DlgColorTitle		: "Výber farby",
@@ -259,7 +274,7 @@
 DlgSmileyTitle		: "Vkladanie smajlíkov",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Výber speciálneho znaku",
+DlgSpecialCharTitle	: "Výber špeciálneho znaku",
 
 // Table Dialog
 DlgTableTitle		: "Vlastnosti tabuľky",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Vzdialenosť buniek",
 DlgTableCellPad		: "Odsadenie obsahu",
 DlgTableCaption		: "Popis",
+DlgTableSummary		: "Prehľad",
 
 // Table Cell Dialog
 DlgCellTitle		: "Vlastnosti bunky",
@@ -286,7 +302,7 @@
 DlgCellWidthPc		: "percent",
 DlgCellHeight		: "Výška",
 DlgCellWordWrap		: "Zalamovannie",
-DlgCellWordWrapNotSet	: "<nenanstavené>",
+DlgCellWordWrapNotSet	: "<nenastavené>",
 DlgCellWordWrapYes	: "Áno",
 DlgCellWordWrapNo	: "Nie",
 DlgCellHorAlign		: "Vodorovné zarovnanie",
@@ -294,7 +310,7 @@
 DlgCellHorAlignLeft	: "Vľavo",
 DlgCellHorAlignCenter	: "Na stred",
 DlgCellHorAlignRight: "Vpravo",
-DlgCellVerAlign		: "Zvyslé zarovnanie",
+DlgCellVerAlign		: "Zvislé zarovnanie",
 DlgCellVerAlignNotSet	: "<nenastavené>",
 DlgCellVerAlignTop	: "Nahor",
 DlgCellVerAlignMiddle	: "Doprostred",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "Len celé slová",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Bezpečnostné nastavenie Vášho prohehliadača nedovoľujú editoru spustiť funkciu pre vloženie textu zo schránky. Prosím vložte text zo schránky pomocou klávesnice (Ctrl+V).",
-PasteErrorCut	: "Bezpečnostné nastavenie Vášho prohehliadač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 prohehliadača nedovoľujú editoru spustiť funkciu pre kopírovánie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl+C).",
+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).",
 
 PasteAsText		: "Vložiť ako čistý text",
 PasteFromWord	: "Vložiť text z Wordu",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",
+DlgPasteMsg2	: "Prosím vložte nasledovný rámček použitím klávesnice (<STRONG>Ctrl+V</STRONG>) a stlačte <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorovať nastavenia typu písma",
 DlgPasteRemoveStyles	: "Odstrániť formátovanie",
 DlgPasteCleanBox		: "Vyčistiť schránku",
 
-
 // Color Picker
 ColorAutomatic	: "Automaticky",
 ColorMoreColors	: "Viac farieb...",
@@ -356,7 +371,7 @@
 DlgSpellBtnUndo			: "Späť",
 DlgSpellNoSuggestions	: "- Žiadny návrh -",
 DlgSpellProgress		: "Prebieha kontrola pravopisu...",
-DlgSpellNoMispell		: "Kontrola pravopisu dokončená: bez chyb",
+DlgSpellNoMispell		: "Kontrola pravopisu dokončená: bez chýb",
 DlgSpellNoChanges		: "Kontrola pravopisu dokončená: žiadne slová nezmenené",
 DlgSpellOneChange		: "Kontrola pravopisu dokončená: zmenené jedno slovo",
 DlgSpellManyChanges		: "Kontrola pravopisu dokončená: zmenených %1 slov",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Kontrola pravopisu nie je naištalovaná. Chcete ju hneď stiahnuť?",
 
 // Button Dialog
-DlgButtonText	: "Text",
-DlgButtonType	: "Typ",
+DlgButtonText		: "Text",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Tlačidlo",
+DlgButtonTypeSbm	: "Odoslať",
+DlgButtonTypeRst	: "Vymazať",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Názov",
@@ -388,8 +406,8 @@
 DlgSelectOpValue	: "Hodnota",
 DlgSelectBtnAdd		: "Pridať",
 DlgSelectBtnModify	: "Zmeniť",
-DlgSelectBtnUp		: "Nahor",
-DlgSelectBtnDown	: "Dolu",
+DlgSelectBtnUp		: "Hore",
+DlgSelectBtnDown	: "Dole",
 DlgSelectBtnSetValue : "Nastaviť ako vybranú hodnotu",
 DlgSelectBtnDelete	: "Zmazať",
 
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Vlastnosti odrážok",
 NumberedListProp	: "Vlastnosti číslovania",
+DlgLstStart			: "Å tart",
 DlgLstType			: "Typ",
 DlgLstTypeCircle	: "Krúžok",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disk",
 DlgLstTypeSquare	: "Å tvorec",
 DlgLstTypeNumbers	: "Číslovanie (1, 2, 3)",
 DlgLstTypeLCase		: "Malé písmená (a, b, c)",
@@ -432,10 +451,19 @@
 
 DlgDocPageTitle		: "Titulok",
 DlgDocLangDir		: "Orientácie jazyka",
-DlgDocLangDirLTR	: "Zľeva doprava (LTR)",
-DlgDocLangDirRTL	: "Zprava doľava (RTL)",
+DlgDocLangDirLTR	: "Zľava doprava (LTR)",
+DlgDocLangDirRTL	: "Sprava doľava (RTL)",
 DlgDocLangCode		: "Kód jazyka",
 DlgDocCharSet		: "Kódová stránka",
+DlgDocCharSetCE		: "Stredoeurópske",
+DlgDocCharSetCT		: "Čínština tradičná (Big5)",
+DlgDocCharSetCR		: "Cyrillika",
+DlgDocCharSetGR		: "Gréčtina",
+DlgDocCharSetJP		: "Japončina",
+DlgDocCharSetKR		: "Korejčina",
+DlgDocCharSetTR		: "Turečtina",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Západná európa",
 DlgDocCharSetOther	: "Iná kódová stránka",
 
 DlgDocDocType		: "Typ záhlavia dokumentu",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Šablóny",
 DlgTemplatesTitle	: "Šablóny obsahu",
-DlgTemplatesSelMsg	: "Prosím vyberte šablóny ma otvorenie v editore<br>(terajší obsah bude stratený):",
+DlgTemplatesSelMsg	: "Prosím vyberte šablóny na otvorenie v editore<br>(súšasný obsah bude stratený):",
 DlgTemplatesLoading	: "Nahrávam zoznam šablón. Čakajte prosím...",
 DlgTemplatesNoTpl	: "(žiadne šablóny nenájdené)",
+DlgTemplatesReplace	: "Nahradiť aktuálny obsah",
 
 // About Dialog
 DlgAboutAboutTab	: "O aplikáci",
 DlgAboutBrowserInfoTab	: "Informácie o prehliadači",
-DlgAboutVersion		: "verzie",
-DlgAboutLicense		: "Licencované pod pravidlami GNU Lesser General Public License",
+DlgAboutLicenseTab	: "Licencia",
+DlgAboutVersion		: "verzia",
 DlgAboutInfo		: "Viac informácií získate na"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/sl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/sl.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/sl.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sl.js
- * 	Slovenian language file.
- * 
- * File Authors:
- * 		Boris Volarič (vol at rutka.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Slovenian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Zamenjaj",
 SpellCheck			: "Preveri črkovanje",
 UniversalKeyboard	: "Večjezična tipkovnica",
+PageBreakLbl		: "Prelom strani",
+PageBreak			: "Vstavi prelom strani",
 
 Form			: "Obrazec",
 Checkbox		: "Potrditveno polje",
@@ -96,8 +102,13 @@
 SelectionField	: "Spustni seznam",
 ImageButton		: "Gumb s sliko",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Uredi povezavo",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Vstavi vrstico",
 DeleteRows			: "Izbriši vrstice",
 InsertColumn		: "Vstavi stolpec",
@@ -106,6 +117,7 @@
 DeleteCells			: "Izbriši celice",
 MergeCells			: "Združi celice",
 SplitCell			: "Razdeli celico",
+TableDelete			: "Izbriši tabelo",
 CellProperties		: "Lastnosti celice",
 TableProperties		: "Lastnosti tabele",
 ImageProperties		: "Lastnosti slike",
@@ -122,7 +134,7 @@
 TextareaProp		: "Lastnosti vnosnega območja",
 FormProp			: "Lastnosti obrazca",
 
-FontFormats			: "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+FontFormats			: "Navaden;Oblikovan;Napis;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Obdelujem XHTML. Prosim počakajte...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Neznano ime ukaza \"%1\"",
 NotImplemented		: "Ukaz ni izdelan",
 UnknownToolbarSet	: "Skupina orodnih vrstic \"%1\" ne obstoja",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "V redu",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Zapri",
 DlgBtnBrowseServer	: "Prebrskaj na strežniku",
 DlgAdvancedTag		: "Napredno",
-DlgOpOther			: "&lt;Ostalo&gt;",
+DlgOpOther			: "<Ostalo>",
 DlgInfoTab			: "Podatki",
 DlgAlertUrl			: "Prosim vpiši spletni naslov",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ni postavljen&gt;",
+DlgGenNotSet		: "<ni postavljen>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Smer jezika",
 DlgGenLangDirLtr	: "Od leve proti desni (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Zaznamek na tej strani",
 DlgLnkTypeEMail		: "Elektronski naslov",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;drugo&gt;",
+DlgLnkProtoOther	: "<drugo>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Izberi zaznamek",
 DlgLnkAnchorByName	: "Po imenu zaznamka",
 DlgLnkAnchorById	: "Po ID-ju elementa",
-DlgLnkNoAnchors		: "&lt;V tem dokumentu ni zaznamkov&gt;",
+DlgLnkNoAnchors		: "<V tem dokumentu ni zaznamkov>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Elektronski naslov",
 DlgLnkEMailSubject	: "Predmet sporočila",
 DlgLnkEMailBody		: "Vsebina sporočila",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Pošlji na strežnik",
 
 DlgLnkTarget		: "Cilj",
-DlgLnkTargetFrame	: "&lt;okvir&gt;",
-DlgLnkTargetPopup	: "&lt;pojavno okno&gt;",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<pojavno okno>",
 DlgLnkTargetBlank	: "Novo okno (_blank)",
 DlgLnkTargetParent	: "Starševsko okno (_parent)",
 DlgLnkTargetSelf	: "Isto okno (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Vnesite URL povezave",
 DlnLnkMsgNoEMail	: "Vnesite elektronski naslov",
 DlnLnkMsgNoAnchor	: "Izberite zaznamek",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Izberite barvo",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Razmik med celicami",
 DlgTableCellPad		: "Polnilo med celicami",
 DlgTableCaption		: "Naslov",
+DlgTableSummary		: "Povzetek",
 
 // Table Cell Dialog
 DlgCellTitle		: "Lastnosti celice",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Samo cele besede",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega lepljenja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+V).",
 PasteErrorCut	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).",
 PasteErrorCopy	: "Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Prilepi iz Worda",
 
 DlgPasteMsg2	: "Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Prezri obliko pisave",
 DlgPasteRemoveStyles	: "Odstrani nastavitve stila",
 DlgPasteCleanBox		: "Počisti okvir",
 
-
 // Color Picker
 ColorAutomatic	: "Samodejno",
 ColorMoreColors	: "Več barv...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Črkovalnik ni nameščen. Ali ga želite prenesti sedaj?",
 
 // Button Dialog
-DlgButtonText	: "Besedilo (Vrednost)",
-DlgButtonType	: "Tip",
+DlgButtonText		: "Besedilo (Vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Ime",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Lastnosti označenega seznama",
 NumberedListProp	: "Lastnosti oštevilčenega seznama",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tip",
 DlgLstTypeCircle	: "Pikica",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Kroglica",
 DlgLstTypeSquare	: "Kvadratek",
 DlgLstTypeNumbers	: "Å tevilke (1, 2, 3)",
 DlgLstTypeLCase		: "Male črke (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Od desne proti levi (RTL)",
 DlgDocLangCode		: "Oznaka jezika",
 DlgDocCharSet		: "Kodna tabela",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Druga kodna tabela",
 
 DlgDocDocType		: "Glava tipa dokumenta",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):",
 DlgTemplatesLoading	: "Nalagam seznam predlog. Prosim počakajte...",
 DlgTemplatesNoTpl	: "(Ni pripravljenih predlog)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Vizitka",
 DlgAboutBrowserInfoTab	: "Informacije o brskalniku",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "različica",
-DlgAboutLicense		: "Pravica za uporabo pod pogoji GNU Lesser General Public License",
 DlgAboutInfo		: "Za več informacij obiščite"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr-latn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr-latn.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr-latn.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sr-latn.js
- * 	Serbian (Latin) language file.
- * 
- * File Authors:
- * 		Zoran Subic (zoran at tf.zr.ac.yu)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Serbian (Latin) language file.
  */
 
 var FCKLang =
@@ -80,11 +84,13 @@
 FontSize			: "Veličina fonta",
 TextColor			: "Boja teksta",
 BGColor				: "Boja pozadine",
-Source				: "K&ocirc;d",
+Source				: "Kôd",
 Find				: "Pretraga",
 Replace				: "Zamena",
 SpellCheck			: "Proveri spelovanje",
 UniversalKeyboard	: "Univerzalna tastatura",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Forma",
 Checkbox		: "Polje za potvrdu",
@@ -96,8 +102,13 @@
 SelectionField	: "Izborno polje",
 ImageButton		: "Dugme sa slikom",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Izmeni link",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Unesi red",
 DeleteRows			: "Obriši redove",
 InsertColumn		: "Unesi kolonu",
@@ -106,6 +117,7 @@
 DeleteCells			: "Obriši ćelije",
 MergeCells			: "Spoj celije",
 SplitCell			: "Razdvoji celije",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Osobine celije",
 TableProperties		: "Osobine tabele",
 ImageProperties		: "Osobine slike",
@@ -122,7 +134,7 @@
 TextareaProp		: "Osobine zone teksta",
 FormProp			: "Osobine forme",
 
-FontFormats			: "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",
+FontFormats			: "Normal;Formatirano;Adresa;Naslov 1;Naslov 2;Naslov 3;Naslov 4;Naslov 5;Naslov 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Obradujem XHTML. Malo strpljenja...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Nepoznata naredba \"%1\"",
 NotImplemented		: "Naredba nije implementirana",
 UnknownToolbarSet	: "Toolbar \"%1\" ne postoji",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,17 +155,17 @@
 DlgBtnClose			: "Zatvori",
 DlgBtnBrowseServer	: "Pretraži server",
 DlgAdvancedTag		: "Napredni tagovi",
-DlgOpOther			: "&lt;Ostali&gt;",
+DlgOpOther			: "<Ostali>",
 DlgInfoTab			: "Info",
 DlgAlertUrl			: "Molimo Vas, unesite URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;nije postavljeno&gt;",
+DlgGenNotSet		: "<nije postavljeno>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Smer jezika",
 DlgGenLangDirLtr	: "S leva na desno (LTR)",
 DlgGenLangDirRtl	: "S desna na levo (RTL)",
-DlgGenLangCode		: "K&ocirc;d jezika",
+DlgGenLangCode		: "Kôd jezika",
 DlgGenAccessKey		: "Pristupni taster",
 DlgGenName			: "Naziv",
 DlgGenTabIndex		: "Tab indeks",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Sidro na ovoj stranici",
 DlgLnkTypeEMail		: "E-Mail",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;drugo&gt;",
+DlgLnkProtoOther	: "<drugo>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Odaberi sidro",
 DlgLnkAnchorByName	: "Po nazivu sidra",
 DlgLnkAnchorById	: "Po Id-ju elementa",
-DlgLnkNoAnchors		: "&lt;Nema dostupnih sidra&gt;",
+DlgLnkNoAnchors		: "<Nema dostupnih sidra>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Mail adresa",
 DlgLnkEMailSubject	: "Naslov",
 DlgLnkEMailBody		: "Sadržaj poruke",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Pošalji na server",
 
 DlgLnkTarget		: "Meta",
-DlgLnkTargetFrame	: "&lt;okvir&gt;",
-DlgLnkTargetPopup	: "&lt;popup prozor&gt;",
+DlgLnkTargetFrame	: "<okvir>",
+DlgLnkTargetPopup	: "<popup prozor>",
 DlgLnkTargetBlank	: "Novi prozor (_blank)",
 DlgLnkTargetParent	: "Roditeljski prozor (_parent)",
 DlgLnkTargetSelf	: "Isti prozor (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Unesite URL linka",
 DlnLnkMsgNoEMail	: "Otkucajte adresu elektronske pote",
 DlnLnkMsgNoAnchor	: "Odaberite sidro",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Odaberite boju",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "Kolona",
 DlgTableBorder		: "Veličina okvira",
 DlgTableAlign		: "Ravnanje",
-DlgTableAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgTableAlignNotSet	: "<nije postavljeno>",
 DlgTableAlignLeft	: "Levo",
 DlgTableAlignCenter	: "Sredina",
 DlgTableAlignRight	: "Desno",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Ćelijski prostor",
 DlgTableCellPad		: "Razmak ćelija",
 DlgTableCaption		: "Naslov tabele",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Osobine ćelije",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "procenata",
 DlgCellHeight		: "Visina",
 DlgCellWordWrap		: "Deljenje reči",
-DlgCellWordWrapNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellWordWrapNotSet	: "<nije postavljeno>",
 DlgCellWordWrapYes	: "Da",
 DlgCellWordWrapNo	: "Ne",
 DlgCellHorAlign		: "Vodoravno ravnanje",
-DlgCellHorAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellHorAlignNotSet	: "<nije postavljeno>",
 DlgCellHorAlignLeft	: "Levo",
 DlgCellHorAlignCenter	: "Sredina",
 DlgCellHorAlignRight: "Desno",
 DlgCellVerAlign		: "Vertikalno ravnanje",
-DlgCellVerAlignNotSet	: "&lt;nije postavljeno&gt;",
+DlgCellVerAlignNotSet	: "<nije postavljeno>",
 DlgCellVerAlignTop	: "Gornje",
 DlgCellVerAlignMiddle	: "Sredina",
 DlgCellVerAlignBottom	: "Donje",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Uporedi cele reci",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog lepljenja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+V).",
 PasteErrorCut	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+X).",
 PasteErrorCopy	: "Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Zalepi iz Worda",
 
 DlgPasteMsg2	: "Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignoriši definicije fontova",
 DlgPasteRemoveStyles	: "Ukloni definicije stilova",
 DlgPasteCleanBox		: "Obriši sve",
 
-
 // Color Picker
 ColorAutomatic	: "Automatski",
 ColorMoreColors	: "Više boja...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?",
 
 // Button Dialog
-DlgButtonText	: "Tekst (vrednost)",
-DlgButtonType	: "Tip",
+DlgButtonText		: "Tekst (vrednost)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Naziv",
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Osobine nenabrojive liste",
 NumberedListProp	: "Osobine nabrojive liste",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Tip",
 DlgLstTypeCircle	: "Krug",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Zdesna nalevo (RTL)",
 DlgDocLangCode		: "Å ifra jezika",
 DlgDocCharSet		: "Kodiranje skupa karaktera",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Ostala kodiranja skupa karaktera",
 
 DlgDocDocType		: "Zaglavlje tipa dokumenta",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):",
 DlgTemplatesLoading	: "Učitavam listu obrazaca. Malo strpljenja...",
 DlgTemplatesNoTpl	: "(Nema definisanih obrazaca)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "O editoru",
 DlgAboutBrowserInfoTab	: "Informacije o pretraživacu",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "verzija",
-DlgAboutLicense		: "Licencirano pod uslovima GNU Lesser General Public License",
 DlgAboutInfo		: "Za više informacija posetite"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/sr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sr.js
- * 	Serbian (Cyrillic) language file.
- * 
- * File Authors:
- * 		Zoran Subić (zoran at tf.zr.ac.yu)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Serbian (Cyrillic) language file.
  */
 
 var FCKLang =
@@ -80,11 +84,13 @@
 FontSize			: "Величина фонта",
 TextColor			: "Боја текста",
 BGColor				: "Боја позадине",
-Source				: "K&ocirc;д",
+Source				: "Kôд",
 Find				: "Претрага",
 Replace				: "Замена",
 SpellCheck			: "Провери спеловање",
 UniversalKeyboard	: "Универзална тастатура",
+PageBreakLbl		: "Page Break",	//MISSING
+PageBreak			: "Insert Page Break",	//MISSING
 
 Form			: "Форма",
 Checkbox		: "Поље за потврду",
@@ -96,8 +102,13 @@
 SelectionField	: "Изборно поље",
 ImageButton		: "Дугме са сликом",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Промени линк",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Унеси ред",
 DeleteRows			: "Обриши редове",
 InsertColumn		: "Унеси колону",
@@ -106,6 +117,7 @@
 DeleteCells			: "Обриши ћелије",
 MergeCells			: "Спој ћелије",
 SplitCell			: "Раздвоји ћелије",
+TableDelete			: "Delete Table",	//MISSING
 CellProperties		: "Особине ћелије",
 TableProperties		: "Особине табеле",
 ImageProperties		: "Особине слике",
@@ -122,7 +134,7 @@
 TextareaProp		: "Особине зоне текста",
 FormProp			: "Особине форме",
 
-FontFormats			: "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",
+FontFormats			: "Normal;Formatirano;Adresa;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Обрађујем XHTML. Maлo стрпљења...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Непозната наредба \"%1\"",
 NotImplemented		: "Наредба није имплементирана",
 UnknownToolbarSet	: "Toolbar \"%1\" не постоји",
-NoActiveX			: "You 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
+NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
+BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
+DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -141,17 +155,17 @@
 DlgBtnClose			: "Затвори",
 DlgBtnBrowseServer	: "Претражи сервер",
 DlgAdvancedTag		: "Напредни тагови",
-DlgOpOther			: "&lt;Остали&gt;",
+DlgOpOther			: "<Остали>",
 DlgInfoTab			: "Инфо",
 DlgAlertUrl			: "Молимо Вас, унесите УРЛ",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;није постављено&gt;",
+DlgGenNotSet		: "<није постављено>",
 DlgGenId			: "Ид",
 DlgGenLangDir		: "Смер језика",
 DlgGenLangDirLtr	: "С лева на десно (LTR)",
 DlgGenLangDirRtl	: "С десна на лево (RTL)",
-DlgGenLangCode		: "K&ocirc;д језика",
+DlgGenLangCode		: "Kôд језика",
 DlgGenAccessKey		: "Приступни тастер",
 DlgGenName			: "Назив",
 DlgGenTabIndex		: "Таб индекс",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Сидро на овој страници",
 DlgLnkTypeEMail		: "Eлектронска пошта",
 DlgLnkProto			: "Протокол",
-DlgLnkProtoOther	: "&lt;друго&gt;",
+DlgLnkProtoOther	: "<друго>",
 DlgLnkURL			: "УРЛ",
 DlgLnkAnchorSel		: "Одабери сидро",
 DlgLnkAnchorByName	: "По називу сидра",
 DlgLnkAnchorById	: "Пo Ид-jу елемента",
-DlgLnkNoAnchors		: "&lt;Нема доступних сидра&gt;",
+DlgLnkNoAnchors		: "<Нема доступних сидра>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Адреса електронске поште",
 DlgLnkEMailSubject	: "Наслов",
 DlgLnkEMailBody		: "Садржај поруке",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Пошаљи на сервер",
 
 DlgLnkTarget		: "Meтa",
-DlgLnkTargetFrame	: "&lt;оквир&gt;",
-DlgLnkTargetPopup	: "&lt;искачући прозор&gt;",
+DlgLnkTargetFrame	: "<оквир>",
+DlgLnkTargetPopup	: "<искачући прозор>",
 DlgLnkTargetBlank	: "Нови прозор (_blank)",
 DlgLnkTargetParent	: "Родитељски прозор (_parent)",
 DlgLnkTargetSelf	: "Исти прозор (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Унесите УРЛ линка",
 DlnLnkMsgNoEMail	: "Откуцајте адресу електронске поште",
 DlnLnkMsgNoAnchor	: "Одаберите сидро",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Одаберите боју",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Ћелијски простор",
 DlgTableCellPad		: "Размак ћелија",
 DlgTableCaption		: "Наслов табеле",
+DlgTableSummary		: "Summary",	//MISSING
 
 // Table Cell Dialog
 DlgCellTitle		: "Особине ћелије",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Упореди целе речи",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског лепљења текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+V).",
 PasteErrorCut	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+X).",
 PasteErrorCopy	: "Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Залепи из Worda",
 
 DlgPasteMsg2	: "Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Игнориши Font Face дефиниције",
 DlgPasteRemoveStyles	: "Уклони дефиниције стилова",
 DlgPasteCleanBox		: "Обриши све",
 
-
 // Color Picker
 ColorAutomatic	: "Аутоматски",
 ColorMoreColors	: "Више боја...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Провера спеловања није инсталирана. Да ли желите да је скинете са Интернета?",
 
 // Button Dialog
-DlgButtonText	: "Текст (вредност)",
-DlgButtonType	: "Tип",
+DlgButtonText		: "Текст (вредност)",
+DlgButtonType		: "Tип",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Назив",
@@ -414,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "Особине Bulleted листе",
 NumberedListProp	: "Особине набројиве листе",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Тип",
 DlgLstTypeCircle	: "Круг",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Здесна налево (RTL)",
 DlgDocLangCode		: "Шифра језика",
 DlgDocCharSet		: "Кодирање скупа карактера",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Остала кодирања скупа карактера",
 
 DlgDocDocType		: "Заглавље типа документа",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):",
 DlgTemplatesLoading	: "Учитавам листу образаца. Мало стрпљења...",
 DlgTemplatesNoTpl	: "(Нема дефинисаних образаца)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "О едитору",
 DlgAboutBrowserInfoTab	: "Информације о претраживачу",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "верзија",
-DlgAboutLicense		: "Лиценцирано под условима GNU Lesser General Public License",
 DlgAboutInfo		: "За више информација посетите"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/sv.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/sv.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/sv.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: sv.js
- * 	Swedish language file.
- * 
- * File Authors:
- * 		Kristoffer Malvefors (kristoffer at intema.ws)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Swedish language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Ersätt",
 SpellCheck			: "Stavningskontroll",
 UniversalKeyboard	: "Universellt tangentbord",
+PageBreakLbl		: "Sidbrytning",
+PageBreak			: "Infoga sidbrytning",
 
 Form			: "Formulär",
 Checkbox		: "Kryssruta",
@@ -96,8 +102,13 @@
 SelectionField	: "Flervalslista",
 ImageButton		: "Bildknapp",
 
+FitWindow		: "Maximize the editor size",	//MISSING
+
 // Context Menu
 EditLink			: "Redigera länk",
+CellCM				: "Cell",	//MISSING
+RowCM				: "Row",	//MISSING
+ColumnCM			: "Column",	//MISSING
 InsertRow			: "Infoga rad",
 DeleteRows			: "Radera rad",
 InsertColumn		: "Infoga kolumn",
@@ -106,6 +117,7 @@
 DeleteCells			: "Radera celler",
 MergeCells			: "Sammanfoga celler",
 SplitCell			: "Separera celler",
+TableDelete			: "Radera tabell",
 CellProperties		: "Cellegenskaper",
 TableProperties		: "Tabellegenskaper",
 ImageProperties		: "Bildegenskaper",
@@ -122,7 +134,7 @@
 TextareaProp		: "Egenskaper för textruta",
 FormProp			: "Egenskaper för formulär",
 
-FontFormats			: "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6",
+FontFormats			: "Normal;Formaterad;Adress;Rubrik 1;Rubrik 2;Rubrik 3;Rubrik 4;Rubrik 5;Rubrik 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Bearbetar XHTML. Var god vänta...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Okänt kommando \"%1\"",
 NotImplemented		: "Kommandot finns ej",
 UnknownToolbarSet	: "Verktygsfält \"%1\" finns ej",
-NoActiveX			: "You 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
+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.",
 
 // Dialogs
 DlgBtnOK			: "OK",
@@ -146,7 +160,7 @@
 DlgAlertUrl			: "Var god och ange en URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ej angivet&gt;",
+DlgGenNotSet		: "<ej angivet>",
 DlgGenId			: "Id",
 DlgGenLangDir		: "Språkriktning",
 DlgGenLangDirLtr	: "Vänster till Höger (VTH)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Ankare i sidan",
 DlgLnkTypeEMail		: "E-post",
 DlgLnkProto			: "Protokoll",
-DlgLnkProtoOther	: "&lt;övrigt&gt;",
+DlgLnkProtoOther	: "<övrigt>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Välj ett ankare",
 DlgLnkAnchorByName	: "efter ankarnamn",
 DlgLnkAnchorById	: "efter objektid",
-DlgLnkNoAnchors		: "&lt;Inga ankare kunde hittas&gt;",
+DlgLnkNoAnchors		: "<Inga ankare kunde hittas>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-postadress",
 DlgLnkEMailSubject	: "Ämne",
 DlgLnkEMailBody		: "Innehåll",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Skicka till servern",
 
 DlgLnkTarget		: "MÃ¥l",
-DlgLnkTargetFrame	: "&lt;ram&gt;",
-DlgLnkTargetPopup	: "&lt;popup-fönster&gt;",
+DlgLnkTargetFrame	: "<ram>",
+DlgLnkTargetPopup	: "<popup-fönster>",
 DlgLnkTargetBlank	: "Nytt fönster (_blank)",
 DlgLnkTargetParent	: "Föregående Window (_parent)",
 DlgLnkTargetSelf	: "Detta fönstret (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Var god ange länkens URL",
 DlnLnkMsgNoEMail	: "Var god ange E-postadress",
 DlnLnkMsgNoAnchor	: "Var god ange ett ankare",
+DlnLnkMsgInvPopName	: "The popup name must begin with an alphabetic character and must not contain spaces",	//MISSING
 
 // Color Dialog
 DlgColorTitle		: "Välj färg",
@@ -256,7 +271,7 @@
 DlgColorSelected	: "Vald",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Infoga en smiley",
+DlgSmileyTitle		: "Infoga smiley",
 
 // Special Character Dialog
 DlgSpecialCharTitle	: "Välj utökat tecken",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Cellavstånd",
 DlgTableCellPad		: "Cellutfyllnad",
 DlgTableCaption		: "Rubrik",
+DlgTableSummary		: "Sammanfattning",
 
 // Table Cell Dialog
 DlgCellTitle		: "Cellegenskaper",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Inkludera hela ord",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klistra in. Använd (Ctrl+V) istället.",
 PasteErrorCut	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl+X) istället.",
 PasteErrorCopy	: "Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl+C) istället",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Klistra in från Word",
 
 DlgPasteMsg2	: "Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ignorera typsnittsdefinitioner",
 DlgPasteRemoveStyles	: "Radera Stildefinitioner",
 DlgPasteCleanBox		: "Töm rutans innehåll",
 
-
 // Color Picker
 ColorAutomatic	: "Automatisk",
 ColorMoreColors	: "Fler färger...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Stavningskontrollen är ej installerad. Vill du göra det nu?",
 
 // Button Dialog
-DlgButtonText	: "Text (Värde)",
-DlgButtonType	: "Typ",
+DlgButtonText		: "Text (Värde)",
+DlgButtonType		: "Typ",
+DlgButtonTypeBtn	: "Button",	//MISSING
+DlgButtonTypeSbm	: "Submit",	//MISSING
+DlgButtonTypeRst	: "Reset",	//MISSING
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Namn",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "Egenskaper för punktlista",
 NumberedListProp	: "Egenskaper för numrerad lista",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "Typ",
 DlgLstTypeCircle	: "Cirkel",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Punkt",
 DlgLstTypeSquare	: "Ruta",
 DlgLstTypeNumbers	: "Nummer (1, 2, 3)",
 DlgLstTypeLCase		: "Gemener (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Höger till Vänster",
 DlgDocLangCode		: "Språkkod",
 DlgDocCharSet		: "Teckenuppsättningar",
+DlgDocCharSetCE		: "Central European",	//MISSING
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",	//MISSING
+DlgDocCharSetCR		: "Cyrillic",	//MISSING
+DlgDocCharSetGR		: "Greek",	//MISSING
+DlgDocCharSetJP		: "Japanese",	//MISSING
+DlgDocCharSetKR		: "Korean",	//MISSING
+DlgDocCharSetTR		: "Turkish",	//MISSING
+DlgDocCharSetUN		: "Unicode (UTF-8)",	//MISSING
+DlgDocCharSetWE		: "Western European",	//MISSING
 DlgDocCharSetOther	: "Övriga teckenuppsättningar",
 
 DlgDocDocType		: "Sidhuvud",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):",
 DlgTemplatesLoading	: "Laddar mallar. Var god vänta...",
 DlgTemplatesNoTpl	: "(Ingen mall är vald)",
+DlgTemplatesReplace	: "Replace actual contents",	//MISSING
 
 // About Dialog
 DlgAboutAboutTab	: "Om",
-DlgAboutBrowserInfoTab	: "Webläsarinfo",
+DlgAboutBrowserInfoTab	: "Webläsare",
+DlgAboutLicenseTab	: "License",	//MISSING
 DlgAboutVersion		: "version",
-DlgAboutLicense		: "Licensierad under villkoren av GNU Lesser General Public License",
 DlgAboutInfo		: "För mer information se"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/th.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/th.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/th.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: th.js
- * 	Thai language file.
- * 
- * File Authors:
- * 		Audy Charin Arsakit (arsakit at gmail.com)
- * 		Joy Piyanoot Promnuan (piyanoot at gmail.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Thai language file.
  */
 
 var FCKLang =
@@ -44,8 +47,8 @@
 Anchor				: "แทรก/แก้ไข Anchor",
 InsertImageLbl		: "รูปภาพ",
 InsertImage			: "แทรก/แก้ไข รูปภาพ",
-InsertFlashLbl		: "Flash",	//MISSING
-InsertFlash			: "Insert/Edit Flash",	//MISSING
+InsertFlashLbl		: "ไฟล์ Flash",
+InsertFlash			: "แทรก/แก้ไข ไฟล์ Flash",
 InsertTableLbl		: "ตาราง",
 InsertTable			: "แทรก/แก้ไข ตาราง",
 InsertLineLbl		: "เส้นคั่นบรรทัด",
@@ -86,6 +89,8 @@
 Replace				: "ค้นหาและแทนที่",
 SpellCheck			: "ตรวจการสะกดคำ",
 UniversalKeyboard	: "คีย์บอร์ดหลากภาษา",
+PageBreakLbl		: "ใส่ตัวแบ่งหน้า Page Break",
+PageBreak			: "แทรกตัวแบ่งหน้า Page Break",
 
 Form			: "แบบฟอร์ม",
 Checkbox		: "เช็คบ๊อก",
@@ -97,8 +102,13 @@
 SelectionField	: "แถบตัวเลือก",
 ImageButton		: "ปุ่มแบบรูปภาพ",
 
+FitWindow		: "ขยายขนาดตัวอีดิตเตอร์",
+
 // Context Menu
 EditLink			: "แก้ไข ลิงค์",
+CellCM				: "ช่องตาราง",
+RowCM				: "แถว",
+ColumnCM			: "คอลัมน์",
 InsertRow			: "แทรกแถว",
 DeleteRows			: "ลบแถว",
 InsertColumn		: "แทรกสดมน์",
@@ -107,10 +117,11 @@
 DeleteCells			: "ลบช่อง",
 MergeCells			: "ผสานช่อง",
 SplitCell			: "แยกช่อง",
+TableDelete			: "ลบตาราง",
 CellProperties		: "คุณสมบัติของช่อง",
 TableProperties		: "คุณสมบัติของตาราง",
 ImageProperties		: "คุณสมบัติของรูปภาพ",
-FlashProperties		: "Flash Properties",	//MISSING
+FlashProperties		: "คุณสมบัติของไฟล์ Flash",
 
 AnchorProp			: "รายละเอียด Anchor",
 ButtonProp			: "รายละเอียดของ ปุ่ม",
@@ -123,7 +134,7 @@
 TextareaProp		: "คุณสมบัติของ เท็กแอเรีย",
 FormProp			: "คุณสมบัติของ แบบฟอร์ม",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "โปรแกรมกำลังทำงานด้วยเทคโนโลยี XHTML กรุณารอสักครู่...",
@@ -134,7 +145,9 @@
 UnknownCommand		: "ไม่สามารถระบุชื่อคำสั่งได้ \"%1\"",
 NotImplemented		: "ไม่สามารถใช้งานคำสั่งได้",
 UnknownToolbarSet	: "ไม่มีการติดตั้งชุดคำสั่งในแถบเครื่องมือ \"%1\" กรุณาติดต่อผู้ดูแลระบบ",
-NoActiveX			: "You 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
+NoActiveX			: "โปรแกรมท่องอินเตอร์เน็ตของท่านไม่อนุญาติให้อีดิตเตอร์ทำงาน \"Run ActiveX controls and plug-ins\". หากไม่อนุญาติให้ใช้งาน ActiveX controls ท่านจะไม่สามารถใช้งานได้อย่างเต็มประสิทธิภาพ.",
+BrowseServerBlocked : "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ กรุณาปิดเครื่องมือป้องกันป๊อบอัพในโปรแกรมท่องอินเตอร์เน็ตของท่านด้วย",
+DialogBlocked		: "เปิดหน้าต่างป๊อบอัพเพื่อทำงานต่อไม่ได้ กรุณาปิดเครื่องมือป้องกันป๊อบอัพในโปรแกรมท่องอินเตอร์เน็ตของท่านด้วย",
 
 // Dialogs
 DlgBtnOK			: "ตกลง",
@@ -142,12 +155,12 @@
 DlgBtnClose			: "ปิด",
 DlgBtnBrowseServer	: "เปิดหน้าต่างจัดการไฟล์อัพโหลด",
 DlgAdvancedTag		: "ขั้นสูง",
-DlgOpOther			: "&lt;อื่นๆ&gt;",
-DlgInfoTab			: "Info",	//MISSING
-DlgAlertUrl			: "Please insert the URL",	//MISSING
+DlgOpOther			: "<อื่นๆ>",
+DlgInfoTab			: "อินโฟ",
+DlgAlertUrl			: "กรุณาระบุ URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;ไม่ระบุ&gt;",
+DlgGenNotSet		: "<ไม่ระบุ>",
 DlgGenId			: "ไอดี",
 DlgGenLangDir		: "การเขียน-อ่านภาษา",
 DlgGenLangDirLtr	: "จากซ้ายไปขวา (LTR)",
@@ -189,17 +202,17 @@
 DlgImgAlignTop		: "บนสุด",
 DlgImgPreview		: "หน้าเอกสารตัวอย่าง",
 DlgImgAlertUrl		: "กรุณาระบุที่อยู่อ้างอิงออนไลน์ของไฟล์รูปภาพ (URL)",
-DlgImgLinkTab		: "Link",	//MISSING
+DlgImgLinkTab		: "ลิ้งค์",
 
 // Flash Dialog
-DlgFlashTitle		: "Flash Properties",	//MISSING
-DlgFlashChkPlay		: "Auto Play",	//MISSING
-DlgFlashChkLoop		: "Loop",	//MISSING
-DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
-DlgFlashScale		: "Scale",	//MISSING
-DlgFlashScaleAll	: "Show all",	//MISSING
-DlgFlashScaleNoBorder	: "No Border",	//MISSING
-DlgFlashScaleFit	: "Exact Fit",	//MISSING
+DlgFlashTitle		: "คุณสมบัติของไฟล์ Flash",
+DlgFlashChkPlay		: "เล่นอัตโนมัติ Auto Play",
+DlgFlashChkLoop		: "เล่นวนรอบ Loop",
+DlgFlashChkMenu		: "ให้ใช้งานเมนูของ Flash",
+DlgFlashScale		: "อัตราส่วน Scale",
+DlgFlashScaleAll	: "แสดงให้เห็นทั้งหมด Show all",
+DlgFlashScaleNoBorder	: "ไม่แสดงเส้นขอบ No Border",
+DlgFlashScaleFit	: "แสดงให้พอดีกับพื้นที่ Exact Fit",
 
 // Link Dialog
 DlgLnkWindowTitle	: "ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ",
@@ -211,12 +224,12 @@
 DlgLnkTypeAnchor	: "จุดเชื่อมโยง (Anchor)",
 DlgLnkTypeEMail		: "ส่งอีเมล์ (E-Mail)",
 DlgLnkProto			: "โปรโตคอล",
-DlgLnkProtoOther	: "&lt;อื่นๆ&gt;",
+DlgLnkProtoOther	: "<อื่นๆ>",
 DlgLnkURL			: "ที่อยู่อ้างอิงออนไลน์ (URL)",
 DlgLnkAnchorSel		: "ระบุข้อมูลของจุดเชื่อมโยง (Anchor)",
 DlgLnkAnchorByName	: "ชื่อ",
 DlgLnkAnchorById	: "ไอดี",
-DlgLnkNoAnchors		: "&lt;ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้&gt;",
+DlgLnkNoAnchors		: "(ยังไม่มีจุดเชื่อมโยงภายในหน้าเอกสารนี้)",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "อีเมล์ (E-Mail)",
 DlgLnkEMailSubject	: "หัวเรื่อง",
 DlgLnkEMailBody		: "ข้อความ",
@@ -224,8 +237,8 @@
 DlgLnkBtnUpload		: "บันทึกไฟล์ไว้บนเซิร์ฟเวอร์",
 
 DlgLnkTarget		: "การเปิดหน้าลิงค์",
-DlgLnkTargetFrame	: "&lt;เปิดในเฟรม&gt;",
-DlgLnkTargetPopup	: "&lt;เปิดหน้าจอเล็ก (Pop-up)&gt;",
+DlgLnkTargetFrame	: "<เปิดในเฟรม>",
+DlgLnkTargetPopup	: "<เปิดหน้าจอเล็ก (Pop-up)>",
 DlgLnkTargetBlank	: "เปิดหน้าจอใหม่ (_blank)",
 DlgLnkTargetParent	: "เปิดในหน้าหลัก (_parent)",
 DlgLnkTargetSelf	: "เปิดในหน้าปัจจุบัน (_self)",
@@ -249,6 +262,7 @@
 DlnLnkMsgNoUrl		: "กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)",
 DlnLnkMsgNoEMail	: "กรุณาระบุอีเมล์ (E-mail)",
 DlnLnkMsgNoAnchor	: "กรุณาระบุจุดเชื่อมโยง (Anchor)",
+DlnLnkMsgInvPopName	: "ชื่อของหน้าต่างป๊อบอัพ จะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น และต้องไม่มีช่องว่างในชื่อ",
 
 // Color Dialog
 DlgColorTitle		: "เลือกสี",
@@ -257,7 +271,7 @@
 DlgColorSelected	: "สีที่เลือก",
 
 // Smiley Dialog
-DlgSmileyTitle		: "แทรกสัญักษณ์สื่ออารมณ์",
+DlgSmileyTitle		: "แทรกสัญลักษณ์สื่ออารมณ์",
 
 // Special Character Dialog
 DlgSpecialCharTitle	: "แทรกตัวอักษรพิเศษ",
@@ -279,6 +293,7 @@
 DlgTableCellSpace	: "ระยะแนวนอนน",
 DlgTableCellPad		: "ระยะแนวตั้ง",
 DlgTableCaption		: "หัวเรื่องของตาราง",
+DlgTableSummary		: "สรุปความ",
 
 // Table Cell Dialog
 DlgCellTitle		: "คุณสมบัติของ ช่อง",
@@ -287,16 +302,16 @@
 DlgCellWidthPc		: "เปอร์เซ็น",
 DlgCellHeight		: "สูง",
 DlgCellWordWrap		: "ตัดบรรทัดอัตโนมัติ",
-DlgCellWordWrapNotSet	: "&lt;ไม่ระบุ&gt;",
+DlgCellWordWrapNotSet	: "<ไม่ระบุ>",
 DlgCellWordWrapYes	: "ใ่ช่",
 DlgCellWordWrapNo	: "ไม่",
 DlgCellHorAlign		: "การจัดวางแนวนอน",
-DlgCellHorAlignNotSet	: "&lt;ไม่ระบุ&gt;",
+DlgCellHorAlignNotSet	: "<ไม่ระบุ>",
 DlgCellHorAlignLeft	: "ชิดซ้าย",
 DlgCellHorAlignCenter	: "กึ่งกลาง",
 DlgCellHorAlignRight: "ชิดขวา",
 DlgCellVerAlign		: "การจัดวางแนวตั้ง",
-DlgCellVerAlignNotSet	: "&lt;ไม่ระบุ&gt;",
+DlgCellVerAlignNotSet	: "<ไม่ระบุ>",
 DlgCellVerAlignTop	: "บนสุด",
 DlgCellVerAlignMiddle	: "กึ่งกลาง",
 DlgCellVerAlignBottom	: "ล่างสุด",
@@ -322,19 +337,18 @@
 DlgReplaceWordChk		: "ต้องตรงกันทุกคำ",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "ไม่สามารถวางข้อความที่สำเนามาได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว V พร้อมกัน).",
 PasteErrorCut	: "ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว X พร้อมกัน).",
 PasteErrorCopy	: "ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว C พร้อมกัน).",
 
 PasteAsText		: "วางแบบตัวอักษรธรรมดา",
 PasteFromWord	: "วางแบบตัวอักษรจากโปรแกรมเวิร์ด",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
-DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
-DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
-DlgPasteCleanBox		: "Clean Up Box",	//MISSING
+DlgPasteMsg2	: "กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "ไม่สนใจ Font Face definitions",
+DlgPasteRemoveStyles	: "ลบ Styles definitions",
+DlgPasteCleanBox		: "ล้างข้อมูลใน Box",
 
-
 // Color Picker
 ColorAutomatic	: "สีอัตโนมัติ",
 ColorMoreColors	: "เลือกสีอื่นๆ...",
@@ -365,8 +379,11 @@
 IeSpellDownload			: "ไม่ได้ติดตั้งระบบตรวจสอบคำสะกด. ต้องการติดตั้งไหมครับ?",
 
 // Button Dialog
-DlgButtonText	: "ข้อความ (ค่าตัวแปร)",
-DlgButtonType	: "ข้อความ",
+DlgButtonText		: "ข้อความ (ค่าตัวแปร)",
+DlgButtonType		: "ข้อความ",
+DlgButtonTypeBtn	: "Button",
+DlgButtonTypeSbm	: "Submit",
+DlgButtonTypeRst	: "Reset",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "ชื่อ",
@@ -415,6 +432,7 @@
 // Bulleted List Dialog
 BulletedListProp	: "คุณสมบัติของ บูลเล็ตลิสต์",
 NumberedListProp	: "คุณสมบัติของ นัมเบอร์ลิสต์",
+DlgLstStart			: "Start",	//MISSING
 DlgLstType			: "ชนิด",
 DlgLstTypeCircle	: "รูปวงกลม",
 DlgLstTypeDisc		: "Disc",	//MISSING
@@ -437,6 +455,15 @@
 DlgDocLangDirRTL	: "จากขวาไปซ้าย (RTL)",
 DlgDocLangCode		: "รหัสภาษา",
 DlgDocCharSet		: "ชุดตัวอักษร",
+DlgDocCharSetCE		: "Central European",
+DlgDocCharSetCT		: "Chinese Traditional (Big5)",
+DlgDocCharSetCR		: "Cyrillic",
+DlgDocCharSetGR		: "Greek",
+DlgDocCharSetJP		: "Japanese",
+DlgDocCharSetKR		: "Korean",
+DlgDocCharSetTR		: "Turkish",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Western European",
 DlgDocCharSetOther	: "ชุดตัวอักษรอื่นๆ",
 
 DlgDocDocType		: "ประเภทของเอกสาร",
@@ -461,16 +488,17 @@
 DlgDocPreview		: "ตัวอย่างหน้าเอกสาร",
 
 // Templates Dialog
-Templates			: "Templates",	//MISSING
-DlgTemplatesTitle	: "Content Templates",	//MISSING
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",	//MISSING
-DlgTemplatesLoading	: "Loading templates list. Please wait...",	//MISSING
-DlgTemplatesNoTpl	: "(No templates defined)",	//MISSING
+Templates			: "เทมเพลต",
+DlgTemplatesTitle	: "เทมเพลตของส่วนเนื้อหาเว็บไซต์",
+DlgTemplatesSelMsg	: "กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์<br />(เนื้อหาส่วนนี้จะหายไป):",
+DlgTemplatesLoading	: "กำลังโหลดรายการเทมเพลตทั้งหมด...",
+DlgTemplatesNoTpl	: "(ยังไม่มีการกำหนดเทมเพลต)",
+DlgTemplatesReplace	: "แทนที่เนื้อหาเว็บไซต์ที่เลือก",
 
 // About Dialog
 DlgAboutAboutTab	: "เกี่ยวกับโปรแกรม",
 DlgAboutBrowserInfoTab	: "โปรแกรมท่องเว็บที่ท่านใช้",
+DlgAboutLicenseTab	: "ลิขสิทธิ์",
 DlgAboutVersion		: "รุ่น",
-DlgAboutLicense		: "สงวนลิขสิทธิ์ โดยนโยบายลิขสิทธิ์แบบ GNU Lesser General Public License",
-DlgAboutInfo		: "ข้อมูลเพิ่มเติมภาษาไทยติดต่อ</BR>นาย ชรินทร์ อาษากิจ (อู้ด)</BR><A HREF='mailto:arsakit at gmail.com'>arsakit at gmail.com</A> tel. (+66) 06-9241924</BR>หรือดาวน์โหลดรุ่นภาษาไทยได้ที่เว็บไซต์</BR><A HREF='http://www.thaimall4u.com'>www.Thaimall4u.com</A></BR>ข้อมูลเพิ่มเติมภาษาอังกฤษ กรุณาไปที่นี่"
-}
\ No newline at end of file
+DlgAboutInfo		: "For further information go to"	//MISSING
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/tr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/tr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/tr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: tr.js
- * 	Turkish language file.
- * 
- * File Authors:
- * 		Bogac Guven (bogacmx at yahoo.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Turkish language file.
  */
 
 var FCKLang =
@@ -22,24 +26,24 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Araç Çubugunu Kapat",
-ToolbarExpand		: "Araç Çubugunu Aç",
+ToolbarCollapse		: "Araç Çubuğunu Kapat",
+ToolbarExpand		: "Araç Çubuğunu Aç",
 
 // Toolbar Items and Context Menu
 Save				: "Kaydet",
 NewPage				: "Yeni Sayfa",
-Preview				: "Ön Izleme",
+Preview				: "Ön İzleme",
 Cut					: "Kes",
 Copy				: "Kopyala",
-Paste				: "Yapistir",
-PasteText			: "Düzyazi Olarak Yapistir",
-PasteWord			: "Word'den Yapistir",
-Print				: "Yazdir",
+Paste				: "Yapıştır",
+PasteText			: "Düzyazı Olarak Yapıştır",
+PasteWord			: "Word'den Yapıştır",
+Print				: "Yazdır",
 SelectAll			: "Tümünü Seç",
-RemoveFormat		: "Biçimi Kaldir",
+RemoveFormat		: "Biçimi Kaldır",
 InsertLinkLbl		: "Köprü",
 InsertLink			: "Köprü Ekle/Düzenle",
-RemoveLink			: "Köprü Kaldir",
+RemoveLink			: "Köprü Kaldır",
 Anchor				: "Çapa Ekle/Düzenle",
 InsertImageLbl		: "Resim",
 InsertImage			: "Resim Ekle/Düzenle",
@@ -47,154 +51,164 @@
 InsertFlash			: "Flash Ekle/Düzenle",
 InsertTableLbl		: "Tablo",
 InsertTable			: "Tablo Ekle/Düzenle",
-InsertLineLbl		: "Satir",
-InsertLine			: "Yatay Satir Ekle",
+InsertLineLbl		: "Satır",
+InsertLine			: "Yatay Satır Ekle",
 InsertSpecialCharLbl: "Özel Karakter",
 InsertSpecialChar	: "Özel Karakter Ekle",
-InsertSmileyLbl		: "Ifade",
-InsertSmiley		: "Ifade Ekle",
-About				: "FCKeditor Hakkinda",
-Bold				: "Kalin",
-Italic				: "Italik",
-Underline			: "Alti Çizgili",
+InsertSmileyLbl		: "Ä°fade",
+InsertSmiley		: "Ä°fade Ekle",
+About				: "FCKeditor Hakkında",
+Bold				: "Kalın",
+Italic				: "Ä°talik",
+Underline			: "Altı Çizgili",
 StrikeThrough		: "Üstü Çizgili",
 Subscript			: "Alt Simge",
 Superscript			: "Ãœst Simge",
-LeftJustify			: "Sola Dayali",
-CenterJustify		: "Ortalanmis",
-RightJustify		: "Saga Dayali",
-BlockJustify		: "Iki Kenara Yaslanmis",
+LeftJustify			: "Sola Dayalı",
+CenterJustify		: "Ortalanmış",
+RightJustify		: "Sağa Dayalı",
+BlockJustify		: "İki Kenara Yaslanmış",
 DecreaseIndent		: "Sekme Azalt",
-IncreaseIndent		: "Sekme Arttir",
+IncreaseIndent		: "Sekme Arttır",
 Undo				: "Geri Al",
 Redo				: "Tekrarla",
-NumberedListLbl		: "Numarali Liste",
-NumberedList		: "Numarali Liste Ekle/Kaldir",
+NumberedListLbl		: "Numaralı Liste",
+NumberedList		: "Numaralı Liste Ekle/Kaldır",
 BulletedListLbl		: "Simgeli Liste",
-BulletedList		: "Simgeli Liste Ekle/Kaldir",
-ShowTableBorders	: "Tablo Kenarlarini Göster",
-ShowDetails			: "Detaylari Göster",
-Style				: "Stil",
+BulletedList		: "Simgeli Liste Ekle/Kaldır",
+ShowTableBorders	: "Tablo Kenarlarını Göster",
+ShowDetails			: "Detayları Göster",
+Style				: "Biçem",
 FontFormat			: "Biçim",
-Font				: "Yazi Tipi",
+Font				: "Yazı Türü",
 FontSize			: "Boyut",
-TextColor			: "Yazi Rengi",
+TextColor			: "Yazı Rengi",
 BGColor				: "Arka Renk",
 Source				: "Kaynak",
 Find				: "Bul",
-Replace				: "Degistir",
-SpellCheck			: "Yazim Denetimi",
+Replace				: "DeÄŸiÅŸtir",
+SpellCheck			: "Yazım Denetimi",
 UniversalKeyboard	: "Evrensel Klavye",
+PageBreakLbl		: "Sayfa sonu",
+PageBreak			: "Sayfa Sonu Ekle",
 
 Form			: "Form",
 Checkbox		: "Onay Kutusu",
-RadioButton		: "Seçenek Dügmesi",
-TextField		: "Metin Girisi",
-Textarea		: "Çok Satirli Metin",
+RadioButton		: "Seçenek Düğmesi",
+TextField		: "Metin GiriÅŸi",
+Textarea		: "Çok Satırlı Metin",
 HiddenField		: "Gizli Veri",
-Button			: "Dügme",
-SelectionField	: "Seçim Mönüsü",
-ImageButton		: "Resimli Dügme",
+Button			: "Düğme",
+SelectionField	: "Seçim Menüsü",
+ImageButton		: "Resimli Düğme",
 
+FitWindow		: "Düzenleyici boyutunu büyüt",
+
 // Context Menu
 EditLink			: "Köprü Düzenle",
-InsertRow			: "Satir Ekle",
-DeleteRows			: "Satir Sil",
+CellCM				: "Hücre",
+RowCM				: "Satır",
+ColumnCM			: "Sütun",
+InsertRow			: "Satır Ekle",
+DeleteRows			: "Satır Sil",
 InsertColumn		: "Sütun Ekle",
 DeleteColumns		: "Sütun Sil",
 InsertCell			: "Hücre Ekle",
 DeleteCells			: "Hücre Sil",
-MergeCells			: "Hücreleri Birlestir",
+MergeCells			: "Hücreleri Birleştir",
 SplitCell			: "Hücre Böl",
+TableDelete			: "Tabloyu Sil",
 CellProperties		: "Hücre Özellikleri",
 TableProperties		: "Tablo Özellikleri",
 ImageProperties		: "Resim Özellikleri",
 FlashProperties		: "Flash Özellikleri",
 
 AnchorProp			: "Çapa Özellikleri",
-ButtonProp			: "Dügme Özellikleri",
+ButtonProp			: "Düğme Özellikleri",
 CheckboxProp		: "Onay Kutusu Özellikleri",
 HiddenFieldProp		: "Gizli Veri Özellikleri",
-RadioButtonProp		: "Seçenek Dügmesi Özellikleri",
-ImageButtonProp		: "Resimli Dügme Özellikleri",
-TextFieldProp		: "Metin Girisi Özellikleri",
-SelectionFieldProp	: "Seçim Mönüsü Özellikleri",
-TextareaProp		: "Çok Satirli Metin Özellikleri",
+RadioButtonProp		: "Seçenek Düğmesi Özellikleri",
+ImageButtonProp		: "Resimli Düğme Özellikleri",
+TextFieldProp		: "Metin Girişi Özellikleri",
+SelectionFieldProp	: "Seçim Menüsü Özellikleri",
+TextareaProp		: "Çok Satırlı Metin Özellikleri",
 FormProp			: "Form Özellikleri",
 
-FontFormats			: "Normal;Biçimli;Adres;Baslik 1;Baslik 2;Baslik 3;Baslik 4;Baslik 5;Baslik 6;Paragraf (DIV)",
+FontFormats			: "Normal;Biçimli;Adres;Başlık 1;Başlık 2;Başlık 3;Başlık 4;Başlık 5;Başlık 6;Paragraf (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "XHTML isleniyor. Lütfen bekleyin...",
+ProcessingXHTML		: "XHTML işleniyor. Lütfen bekleyin...",
 Done				: "Bitti",
-PasteWordConfirm	: "Yapistirdiginiz yazi Word'den gelmise benziyor. Yapistirmadan önce silmek ister misiniz?",
-NotCompatiblePaste	: "Bu komut Internet Explorer 5.5 ve ileriki sürümleri için mevcuttur. Temizlenmeden yapistirilmasini ister misiniz ?",
-UnknownToolbarItem	: "Bilinmeyen araç çubugu ögesi \"%1\"",
+PasteWordConfirm	: "Yapıştırdığınız yazı Word'den gelmişe benziyor. Yapıştırmadan önce gereksiz eklentileri silmek ister misiniz?",
+NotCompatiblePaste	: "Bu komut Internet Explorer 5.5 ve ileriki sürümleri için mevcuttur. Temizlenmeden yapıştırılmasını ister misiniz ?",
+UnknownToolbarItem	: "Bilinmeyen araç çubugu öğesi \"%1\"",
 UnknownCommand		: "Bilinmeyen komut \"%1\"",
-NotImplemented		: "Komut uyarlanamadi",
-UnknownToolbarSet	: "\"%1\" araç çubugu ögesi mevcut degil",
-NoActiveX			: "You 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
+NotImplemented		: "Komut uyarlanamadı",
+UnknownToolbarSet	: "\"%1\" araç çubuğu öğesi mevcut değil",
+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.",
 
 // Dialogs
 DlgBtnOK			: "Tamam",
-DlgBtnCancel		: "Iptal",
+DlgBtnCancel		: "Ä°ptal",
 DlgBtnClose			: "Kapat",
 DlgBtnBrowseServer	: "Sunucuyu Gez",
-DlgAdvancedTag		: "Gelismis",
-DlgOpOther			: "&lt;Diger&gt;",
+DlgAdvancedTag		: "GeliÅŸmiÅŸ",
+DlgOpOther			: "<DiÄŸer>",
 DlgInfoTab			: "Bilgi",
 DlgAlertUrl			: "Lütfen URL girin",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;tanimlanmamis&gt;",
+DlgGenNotSet		: "<tanımlanmamış>",
 DlgGenId			: "Kimlik",
-DlgGenLangDir		: "Lisan Yönü",
-DlgGenLangDirLtr	: "Soldan Saga (LTR)",
-DlgGenLangDirRtl	: "Sagdan Sola (RTL)",
-DlgGenLangCode		: "Lisan Kodlamasi",
-DlgGenAccessKey		: "Erisim Tusu",
-DlgGenName			: "Isim",
-DlgGenTabIndex		: "Sekme Indeksi",
-DlgGenLongDescr		: "Uzun Tanimli URL",
-DlgGenClass			: "Stil Klaslari",
-DlgGenTitle			: "Danisma Basligi",
-DlgGenContType		: "Danisma Içerik Türü",
-DlgGenLinkCharset	: "Bagli Kaynak Karakter Gurubu",
-DlgGenStyle			: "Stil",
+DlgGenLangDir		: "Dil Yönü",
+DlgGenLangDirLtr	: "Soldan SaÄŸa (LTR)",
+DlgGenLangDirRtl	: "SaÄŸdan Sola (RTL)",
+DlgGenLangCode		: "Dil Kodlaması",
+DlgGenAccessKey		: "EriÅŸim TuÅŸu",
+DlgGenName			: "Ad",
+DlgGenTabIndex		: "Sekme Ä°ndeksi",
+DlgGenLongDescr		: "Uzun Tanımlı URL",
+DlgGenClass			: "Biçem Sayfası Sınıfları",
+DlgGenTitle			: "Danışma Başlığı",
+DlgGenContType		: "Danışma İçerik Türü",
+DlgGenLinkCharset	: "Bağlı Kaynak Karakter Gurubu",
+DlgGenStyle			: "Biçem",
 
 // Image Dialog
 DlgImgTitle			: "Resim Özellikleri",
 DlgImgInfoTab		: "Resim Bilgisi",
 DlgImgBtnUpload		: "Sunucuya Yolla",
 DlgImgURL			: "URL",
-DlgImgUpload		: "Karsiya Yükle",
-DlgImgAlt			: "Alternatif Yazi",
-DlgImgWidth			: "Genislik",
+DlgImgUpload		: "Karşıya Yükle",
+DlgImgAlt			: "Alternatif Yazı",
+DlgImgWidth			: "GeniÅŸlik",
 DlgImgHeight		: "Yükseklik",
-DlgImgLockRatio		: "Orani Kilitle",
-DlgBtnResetSize		: "Boyutu Basa Döndür",
+DlgImgLockRatio		: "Oranı Kilitle",
+DlgBtnResetSize		: "Boyutu Başa Döndür",
 DlgImgBorder		: "Kenar",
-DlgImgHSpace		: "Yatay Bosluk",
-DlgImgVSpace		: "Dikey Bosluk",
+DlgImgHSpace		: "Yatay BoÅŸluk",
+DlgImgVSpace		: "Dikey BoÅŸluk",
 DlgImgAlign			: "Hizalama",
 DlgImgAlignLeft		: "Sol",
-DlgImgAlignAbsBottom: "Tam Alti",
-DlgImgAlignAbsMiddle: "Tam Ortasi",
+DlgImgAlignAbsBottom: "Tam Altı",
+DlgImgAlignAbsMiddle: "Tam Ortası",
 DlgImgAlignBaseline	: "Taban Çizgisi",
 DlgImgAlignBottom	: "Alt",
 DlgImgAlignMiddle	: "Orta",
-DlgImgAlignRight	: "Sag",
-DlgImgAlignTextTop	: "Yazi Tepeye",
+DlgImgAlignRight	: "SaÄŸ",
+DlgImgAlignTextTop	: "Yazı Tepeye",
 DlgImgAlignTop		: "Tepe",
-DlgImgPreview		: "Ön Izleme",
-DlgImgAlertUrl		: "Lütfen resimin URL'sini yaziniz",
+DlgImgPreview		: "Ön İzleme",
+DlgImgAlertUrl		: "Lütfen resmin URL'sini yazınız",
 DlgImgLinkTab		: "Köprü",
 
 // Flash Dialog
 DlgFlashTitle		: "Flash Özellikleri",
 DlgFlashChkPlay		: "Otomatik Oynat",
 DlgFlashChkLoop		: "Döngü",
-DlgFlashChkMenu		: "Flash Mönüsünü Kullan",
+DlgFlashChkMenu		: "Flash Menüsünü Kullan",
 DlgFlashScale		: "Boyutlandır",
 DlgFlashScaleAll	: "Hepsini Göster",
 DlgFlashScaleNoBorder	: "Kenar Yok",
@@ -210,97 +224,99 @@
 DlgLnkTypeAnchor	: "Bu sayfada çapa",
 DlgLnkTypeEMail		: "E-Posta",
 DlgLnkProto			: "Protokol",
-DlgLnkProtoOther	: "&lt;diger&gt;",
+DlgLnkProtoOther	: "<diÄŸer>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Çapa Seç",
-DlgLnkAnchorByName	: "Çapa Ismi ile",
-DlgLnkAnchorById	: "Eleman Id ile",
-DlgLnkNoAnchors		: "&lt;Bu dokümanda hiç çapa yok&gt;",
+DlgLnkAnchorByName	: "Çapa Adı ile",
+DlgLnkAnchorById	: "Eleman Kimlik Numarası ile",
+DlgLnkNoAnchors		: "<Bu belgede hiç çapa yok>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "E-Posta Adresi",
-DlgLnkEMailSubject	: "Mesaj Konusu",
-DlgLnkEMailBody		: "Mesaj Vücudu",
-DlgLnkUpload		: "Karsiya Yükle",
+DlgLnkEMailSubject	: "Ä°leti Konusu",
+DlgLnkEMailBody		: "İleti Gövdesi",
+DlgLnkUpload		: "Karşıya Yükle",
 DlgLnkBtnUpload		: "Sunucuya Gönder",
 
 DlgLnkTarget		: "Hedef",
-DlgLnkTargetFrame	: "&lt;çerçeve&gt;",
-DlgLnkTargetPopup	: "&lt;yeni açilan pencere&gt;",
+DlgLnkTargetFrame	: "<çerçeve>",
+DlgLnkTargetPopup	: "<yeni açılan pencere>",
 DlgLnkTargetBlank	: "Yeni Pencere(_blank)",
 DlgLnkTargetParent	: "Anne Pencere (_parent)",
 DlgLnkTargetSelf	: "Kendi Penceresi (_self)",
 DlgLnkTargetTop		: "En Ãœst Pencere (_top)",
-DlgLnkTargetFrameName	: "Hedef Çerçeve Ismi",
-DlgLnkPopWinName	: "Yeni Açilan Pencere Ismi",
-DlgLnkPopWinFeat	: "Yeni Açilan Pencere Özellikleri",
-DlgLnkPopResize		: "Boyutlandirilabilir",
-DlgLnkPopLocation	: "Yer Çubugu",
-DlgLnkPopMenu		: "Mönü Çubugu",
-DlgLnkPopScroll		: "Kaydirma Çubuklari",
-DlgLnkPopStatus		: "Statü Çubugu",
-DlgLnkPopToolbar	: "Araç Çubugu",
+DlgLnkTargetFrameName	: "Hedef Çerçeve Adı",
+DlgLnkPopWinName	: "Yeni Açılan Pencere Adı",
+DlgLnkPopWinFeat	: "Yeni Açılan Pencere Özellikleri",
+DlgLnkPopResize		: "Boyutlandırılabilir",
+DlgLnkPopLocation	: "Yer Çubuğu",
+DlgLnkPopMenu		: "Menü Çubuğu",
+DlgLnkPopScroll		: "Kaydırma Çubukları",
+DlgLnkPopStatus		: "Durum Çubuğu",
+DlgLnkPopToolbar	: "Araç Çubuğu",
 DlgLnkPopFullScrn	: "Tam Ekran (IE)",
-DlgLnkPopDependent	: "Bagli-Dependent- (Netscape)",
-DlgLnkPopWidth		: "Genislik",
+DlgLnkPopDependent	: "Bağımlı (Netscape)",
+DlgLnkPopWidth		: "GeniÅŸlik",
 DlgLnkPopHeight		: "Yükseklik",
-DlgLnkPopLeft		: "Sola Göre Pozisyon",
-DlgLnkPopTop		: "Yukariya Göre Pozisyon",
+DlgLnkPopLeft		: "Sola Göre Konum",
+DlgLnkPopTop		: "Yukarıya Göre Konum",
 
-DlnLnkMsgNoUrl		: "Lütfen köprü URL'sini yazin",
-DlnLnkMsgNoEMail	: "Lütfen E-posta adresini yazin",
+DlnLnkMsgNoUrl		: "Lütfen köprü URL'sini yazın",
+DlnLnkMsgNoEMail	: "Lütfen E-posta adresini yazın",
 DlnLnkMsgNoAnchor	: "Lütfen bir çapa seçin",
+DlnLnkMsgInvPopName	: "Açılır pencere adı abecesel bir karakterle başlamalı ve boşluk içermemelidir",
 
 // Color Dialog
 DlgColorTitle		: "Renk Seç",
 DlgColorBtnClear	: "Temizle",
-DlgColorHighlight	: "Belirle",
-DlgColorSelected	: "Seçilmis",
+DlgColorHighlight	: "Vurgula",
+DlgColorSelected	: "Seçilmiş",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Ifade Ekle",
+DlgSmileyTitle		: "Ä°fade Ekle",
 
 // Special Character Dialog
 DlgSpecialCharTitle	: "Özel Karakter Seç",
 
 // Table Dialog
 DlgTableTitle		: "Tablo Özellikleri",
-DlgTableRows		: "Satirlar",
+DlgTableRows		: "Satırlar",
 DlgTableColumns		: "Sütunlar",
-DlgTableBorder		: "Kenar Kalinligi",
+DlgTableBorder		: "Kenar Kalınlığı",
 DlgTableAlign		: "Hizalama",
-DlgTableAlignNotSet	: "<Tanimlanmamis>",
+DlgTableAlignNotSet	: "<Tanımlanmamış>",
 DlgTableAlignLeft	: "Sol",
 DlgTableAlignCenter	: "Merkez",
-DlgTableAlignRight	: "Sag",
-DlgTableWidth		: "Genislik",
+DlgTableAlignRight	: "SaÄŸ",
+DlgTableWidth		: "GeniÅŸlik",
 DlgTableWidthPx		: "piksel",
 DlgTableWidthPc		: "yüzde",
 DlgTableHeight		: "Yükseklik",
-DlgTableCellSpace	: "Izgara kalinligi",
-DlgTableCellPad		: "Izgara yazi arasi",
-DlgTableCaption		: "Baslik",
+DlgTableCellSpace	: "Izgara kalınlığı",
+DlgTableCellPad		: "Izgara yazı arası",
+DlgTableCaption		: "Başlık",
+DlgTableSummary		: "Özet",
 
 // Table Cell Dialog
 DlgCellTitle		: "Hücre Özellikleri",
-DlgCellWidth		: "Genislik",
+DlgCellWidth		: "GeniÅŸlik",
 DlgCellWidthPx		: "piksel",
 DlgCellWidthPc		: "yüzde",
 DlgCellHeight		: "Yükseklik",
-DlgCellWordWrap		: "Sözcük Kaydir",
-DlgCellWordWrapNotSet	: "&lt;Tanimlanmamis&gt;",
+DlgCellWordWrap		: "Sözcük Kaydır",
+DlgCellWordWrapNotSet	: "<Tanımlanmamış>",
 DlgCellWordWrapYes	: "Evet",
-DlgCellWordWrapNo	: "Hayir",
+DlgCellWordWrapNo	: "Hayır",
 DlgCellHorAlign		: "Yatay Hizalama",
-DlgCellHorAlignNotSet	: "&lt;Tanimlanmamis&gt;",
+DlgCellHorAlignNotSet	: "<Tanımlanmamış>",
 DlgCellHorAlignLeft	: "Sol",
 DlgCellHorAlignCenter	: "Merkez",
-DlgCellHorAlignRight: "Sag",
+DlgCellHorAlignRight: "SaÄŸ",
 DlgCellVerAlign		: "Dikey Hizalama",
-DlgCellVerAlignNotSet	: "&lt;Tanimlanmamis&gt;",
+DlgCellVerAlignNotSet	: "<Tanımlanmamış>",
 DlgCellVerAlignTop	: "Tepe",
 DlgCellVerAlignMiddle	: "Orta",
 DlgCellVerAlignBottom	: "Alt",
 DlgCellVerAlignBaseline	: "Taban Çizgisi",
-DlgCellRowSpan		: "Satir Kapla",
+DlgCellRowSpan		: "Satır Kapla",
 DlgCellCollSpan		: "Sütun Kapla",
 DlgCellBackColor	: "Arka Plan Rengi",
 DlgCellBorderColor	: "Kenar Rengi",
@@ -309,167 +325,180 @@
 // Find Dialog
 DlgFindTitle		: "Bul",
 DlgFindFindBtn		: "Bul",
-DlgFindNotFoundMsg	: "Belirtilen yazi bulunamadi.",
+DlgFindNotFoundMsg	: "Belirtilen yazı bulunamadı.",
 
 // Replace Dialog
-DlgReplaceTitle			: "Degistir",
+DlgReplaceTitle			: "DeÄŸiÅŸtir",
 DlgReplaceFindLbl		: "Aranan:",
-DlgReplaceReplaceLbl	: "Bunla degistir:",
-DlgReplaceCaseChk		: "Büyük/küçük harf duyarli",
-DlgReplaceReplaceBtn	: "Degistir",
-DlgReplaceReplAllBtn	: "Tümünü Degistir",
-DlgReplaceWordChk		: "Kelimenin tamami uysun",
+DlgReplaceReplaceLbl	: "Bununla deÄŸiÅŸtir:",
+DlgReplaceCaseChk		: "Büyük/küçük harf duyarlı",
+DlgReplaceReplaceBtn	: "DeÄŸiÅŸtir",
+DlgReplaceReplAllBtn	: "Tümünü Değiştir",
+DlgReplaceWordChk		: "Kelimenin tamamı uysun",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Gezgin yaziliminizin güvenlik ayarlari editörün otomatik yapistirma islemine izin vermiyor. Islem için (Ctrl+V) tuslarini kullanin.",
-PasteErrorCut	: "Gezgin yaziliminizin güvenlik ayarlari editörün otomatik kesme islemine izin vermiyor. Islem için (Ctrl+X) tuslarini kullanin.",
-PasteErrorCopy	: "Gezgin yaziliminizin güvenlik ayarlari editörün otomatik kopyalama islemine izin vermiyor. Islem için (Ctrl+C) tuslarini kullanin.",
+PasteErrorCut	: "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl+X) tuşlarını kullanın.",
+PasteErrorCopy	: "Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl+C) tuşlarını kullanın.",
 
-PasteAsText		: "Düz Metin Olarak Yapistir",
-PasteFromWord	: "Word'den yapistir",
+PasteAsText		: "Düz Metin Olarak Yapıştır",
+PasteFromWord	: "Word'den yapıştır",
 
-DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
+DlgPasteMsg2	: "Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Yazı Tipi tanımlarını yoksay",
-DlgPasteRemoveStyles	: "Sitil Tanımlarını çıkar",
+DlgPasteRemoveStyles	: "Biçem Tanımlarını çıkar",
 DlgPasteCleanBox		: "Temizlik Kutusu",
 
-
 // Color Picker
 ColorAutomatic	: "Otomatik",
-ColorMoreColors	: "Diger renkler...",
+ColorMoreColors	: "DiÄŸer renkler...",
 
 // Document Properties
-DocProps		: "Doküman Özellikleri",
+DocProps		: "Belge Özellikleri",
 
 // Anchor Dialog
 DlgAnchorTitle		: "Çapa Özellikleri",
-DlgAnchorName		: "Çapa Ismi",
-DlgAnchorErrorName	: "Lütfen çapa için isim giriniz",
+DlgAnchorName		: "Çapa Adı",
+DlgAnchorErrorName	: "Lütfen çapa için ad giriniz",
 
 // Speller Pages Dialog
 DlgSpellNotInDic		: "Sözlükte Yok",
-DlgSpellChangeTo		: "Suna degistir:",
+DlgSpellChangeTo		: "Åžuna deÄŸiÅŸtir:",
 DlgSpellBtnIgnore		: "Yoksay",
 DlgSpellBtnIgnoreAll	: "Tümünü Yoksay",
-DlgSpellBtnReplace		: "Degistir",
-DlgSpellBtnReplaceAll	: "Tümünü Degistir",
+DlgSpellBtnReplace		: "DeÄŸiÅŸtir",
+DlgSpellBtnReplaceAll	: "Tümünü Değiştir",
 DlgSpellBtnUndo			: "Geri Al",
 DlgSpellNoSuggestions	: "- Öneri Yok -",
-DlgSpellProgress		: "Yazim denetimi islemde...",
-DlgSpellNoMispell		: "Yazim denetimi tamamlandi: Yanlis yazima raslanmadi",
-DlgSpellNoChanges		: "Yazim denetimi tamamlandi: Hiçbir kelime degistirilmedi",
-DlgSpellOneChange		: "Yazim denetimi tamamlandi: Bir kelime degistirildi",
-DlgSpellManyChanges		: "Yazim denetimi tamamlandi: %1 kelime degistirildi",
+DlgSpellProgress		: "Yazım denetimi işlemde...",
+DlgSpellNoMispell		: "Yazım denetimi tamamlandı: Yanlış yazıma rastlanmadı",
+DlgSpellNoChanges		: "Yazım denetimi tamamlandı: Hiçbir kelime değiştirilmedi",
+DlgSpellOneChange		: "Yazım denetimi tamamlandı: Bir kelime değiştirildi",
+DlgSpellManyChanges		: "Yazım denetimi tamamlandı: %1 kelime değiştirildi",
 
-IeSpellDownload			: "Yazim denetimi yüklenmemis. Simdi yüklemek ister misiniz?",
+IeSpellDownload			: "Yazım denetimi yüklenmemiş. Şimdi yüklemek ister misiniz?",
 
 // Button Dialog
-DlgButtonText	: "Metin (Deger)",
-DlgButtonType	: "Tip",
+DlgButtonText		: "Metin (DeÄŸer)",
+DlgButtonType		: "Tip",
+DlgButtonTypeBtn	: "Düğme",
+DlgButtonTypeSbm	: "Gönder",
+DlgButtonTypeRst	: "Sıfırla",
 
 // Checkbox and Radio Button Dialogs
-DlgCheckboxName		: "Isim",
-DlgCheckboxValue	: "Deger",
+DlgCheckboxName		: "Ad",
+DlgCheckboxValue	: "DeÄŸer",
 DlgCheckboxSelected	: "Seçili",
 
 // Form Dialog
-DlgFormName		: "Isim",
-DlgFormAction	: "Islem",
-DlgFormMethod	: "Metod",
+DlgFormName		: "Ad",
+DlgFormAction	: "Ä°ÅŸlem",
+DlgFormMethod	: "Yöntem",
 
 // Select Field Dialog
-DlgSelectName		: "Isim",
-DlgSelectValue		: "Deger",
+DlgSelectName		: "Ad",
+DlgSelectValue		: "DeÄŸer",
 DlgSelectSize		: "Boyut",
-DlgSelectLines		: "satir",
+DlgSelectLines		: "satır",
 DlgSelectChkMulti	: "Çoklu seçime izin ver",
 DlgSelectOpAvail	: "Mevcut Seçenekler",
 DlgSelectOpText		: "Metin",
-DlgSelectOpValue	: "Deger",
+DlgSelectOpValue	: "DeÄŸer",
 DlgSelectBtnAdd		: "Ekle",
 DlgSelectBtnModify	: "Düzenle",
-DlgSelectBtnUp		: "Yukari",
-DlgSelectBtnDown	: "Asagi",
-DlgSelectBtnSetValue : "Seçili deger olarak ata",
+DlgSelectBtnUp		: "Yukarı",
+DlgSelectBtnDown	: "Aşağı",
+DlgSelectBtnSetValue : "Seçili değer olarak ata",
 DlgSelectBtnDelete	: "Sil",
 
 // Textarea Dialog
-DlgTextareaName	: "Isim",
+DlgTextareaName	: "Ad",
 DlgTextareaCols	: "Sütunlar",
-DlgTextareaRows	: "Satirlar",
+DlgTextareaRows	: "Satırlar",
 
 // Text Field Dialog
-DlgTextName			: "Isim",
-DlgTextValue		: "Deger",
-DlgTextCharWidth	: "Karakter Genisligi",
+DlgTextName			: "Ad",
+DlgTextValue		: "DeÄŸer",
+DlgTextCharWidth	: "Karakter GeniÅŸliÄŸi",
 DlgTextMaxChars		: "En Fazla Karakter",
-DlgTextType			: "Tip",
+DlgTextType			: "Tür",
 DlgTextTypeText		: "Metin",
-DlgTextTypePass		: "Sifre",
+DlgTextTypePass		: "Parola",
 
 // Hidden Field Dialog
-DlgHiddenName	: "Isim",
-DlgHiddenValue	: "Deger",
+DlgHiddenName	: "Ad",
+DlgHiddenValue	: "DeÄŸer",
 
 // Bulleted List Dialog
 BulletedListProp	: "Simgeli Liste Özellikleri",
-NumberedListProp	: "Numarali Liste Özellikleri",
+NumberedListProp	: "Numaralı Liste Özellikleri",
+DlgLstStart			: "Başlangıç",
 DlgLstType			: "Tip",
 DlgLstTypeCircle	: "Çember",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Disk",
 DlgLstTypeSquare	: "Kare",
-DlgLstTypeNumbers	: "Sayilar (1, 2, 3)",
+DlgLstTypeNumbers	: "Sayılar (1, 2, 3)",
 DlgLstTypeLCase		: "Küçük Harfler (a, b, c)",
 DlgLstTypeUCase		: "Büyük Harfler (A, B, C)",
-DlgLstTypeSRoman	: "Küçük Romen Rakamlari (i, ii, iii)",
-DlgLstTypeLRoman	: "Büyük Romen Rakamlari (I, II, III)",
+DlgLstTypeSRoman	: "Küçük Romen Rakamları (i, ii, iii)",
+DlgLstTypeLRoman	: "Büyük Romen Rakamları (I, II, III)",
 
 // Document Properties Dialog
 DlgDocGeneralTab	: "Genel",
 DlgDocBackTab		: "Arka Plan",
-DlgDocColorsTab		: "Renler ve Mesafeler",
-DlgDocMetaTab		: "Tanim Bilgisi (Meta)",
+DlgDocColorsTab		: "Renkler ve Kenar Boşlukları",
+DlgDocMetaTab		: "Tanım Bilgisi (Meta)",
 
-DlgDocPageTitle		: "Sayfa Basligi",
-DlgDocLangDir		: "Lisan Yönü",
-DlgDocLangDirLTR	: "Soldan Saga (LTR)",
-DlgDocLangDirRTL	: "Sagdan Sola (RTL)",
-DlgDocLangCode		: "Lisan Kodu",
-DlgDocCharSet		: "Karakter Kümesi Kodlamasi",
-DlgDocCharSetOther	: "Diger Karakter Kümesi Kodlamasi",
+DlgDocPageTitle		: "Sayfa Başlığı",
+DlgDocLangDir		: "Dil Yönü",
+DlgDocLangDirLTR	: "Soldan SaÄŸa (LTR)",
+DlgDocLangDirRTL	: "SaÄŸdan Sola (RTL)",
+DlgDocLangCode		: "Dil Kodu",
+DlgDocCharSet		: "Karakter Kümesi Kodlaması",
+DlgDocCharSetCE		: "Orta Avrupa",
+DlgDocCharSetCT		: "Geleneksel Çince (Big5)",
+DlgDocCharSetCR		: "Kiril",
+DlgDocCharSetGR		: "Yunanca",
+DlgDocCharSetJP		: "Japonca",
+DlgDocCharSetKR		: "Korece",
+DlgDocCharSetTR		: "Türkçe",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Batı Avrupa",
+DlgDocCharSetOther	: "Diğer Karakter Kümesi Kodlaması",
 
-DlgDocDocType		: "Doküman Türü Basligi",
-DlgDocDocTypeOther	: "Diger Doküman Türü Basligi",
+DlgDocDocType		: "Belge Türü Başlığı",
+DlgDocDocTypeOther	: "Diğer Belge Türü Başlığı",
 DlgDocIncXHTML		: "XHTML Bildirimlerini Dahil Et",
 DlgDocBgColor		: "Arka Plan Rengi",
 DlgDocBgImage		: "Arka Plan Resim URLsi",
 DlgDocBgNoScroll	: "Sabit Arka Plan",
 DlgDocCText			: "Metin",
 DlgDocCLink			: "Köprü",
-DlgDocCVisited		: "Görülmüs Köprü",
-DlgDocCActive		: "Aktif Köprü",
-DlgDocMargins		: "Kenar Bosluklari",
+DlgDocCVisited		: "Ziyaret Edilmiş Köprü",
+DlgDocCActive		: "Etkin Köprü",
+DlgDocMargins		: "Kenar Boşlukları",
 DlgDocMaTop			: "Tepe",
 DlgDocMaLeft		: "Sol",
-DlgDocMaRight		: "Sag",
+DlgDocMaRight		: "SaÄŸ",
 DlgDocMaBottom		: "Alt",
-DlgDocMeIndex		: "Doküman Indeksleme Anahtar Kelimeleri (virgülle ayrilmis)",
-DlgDocMeDescr		: "Doküman Tanimi",
+DlgDocMeIndex		: "Belge Dizinleme Anahtar Kelimeleri (virgülle ayrılmış)",
+DlgDocMeDescr		: "Belge Tanımı",
 DlgDocMeAuthor		: "Yazar",
 DlgDocMeCopy		: "Telif",
-DlgDocPreview		: "Ön Izleme",
+DlgDocPreview		: "Ön İzleme",
 
 // Templates Dialog
-Templates			: "Düzenler",
-DlgTemplatesTitle	: "İçerik Düzenleri",
-DlgTemplatesSelMsg	: "Editörde açmak için lütfen bir düzen seçin.<br>(hali hazırdaki içerik kaybolacaktır.):",
-DlgTemplatesLoading	: "Düzenler listesi yüklenmekte. Lütfen bekleyiniz...",
-DlgTemplatesNoTpl	: "(Belirli bir düzen seçilmedi)",
+Templates			: "Åžablonlar",
+DlgTemplatesTitle	: "İçerik Şablonları",
+DlgTemplatesSelMsg	: "Düzenleyicide açmak için lütfen bir şablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):",
+DlgTemplatesLoading	: "Şablon listesi yüklenmekte. Lütfen bekleyiniz...",
+DlgTemplatesNoTpl	: "(Belirli bir şablon seçilmedi)",
+DlgTemplatesReplace	: "Mevcut içerik ile değiştir",
 
 // About Dialog
-DlgAboutAboutTab	: "Hakkinda",
+DlgAboutAboutTab	: "Hakkında",
 DlgAboutBrowserInfoTab	: "Gezgin Bilgisi",
-DlgAboutVersion		: "versiyon",
-DlgAboutLicense		: "GNU Kisitli Kamu Lisansi (LGPL) kosullari altinda lisanslanmistir",
+DlgAboutLicenseTab	: "Lisans",
+DlgAboutVersion		: "sürüm",
 DlgAboutInfo		: "Daha fazla bilgi için:"
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/uk.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/uk.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/uk.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: uk.js
- * 	Ukrainian language file.
- * 
- * File Authors:
- * 		Alexander Pervak (pervak at gmail.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Ukrainian language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "Заміна",
 SpellCheck			: "Перевірити орфографію",
 UniversalKeyboard	: "Універсальна клавіатура",
+PageBreakLbl		: "Розривши сторінки",
+PageBreak			: "Вставити розривши сторінки",
 
 Form			: "Форма",
 Checkbox		: "Флагова кнопка",
@@ -96,8 +102,13 @@
 SelectionField	: "Список",
 ImageButton		: "Кнопка із зображенням",
 
+FitWindow		: "Розвернути вікно редактора",
+
 // Context Menu
 EditLink			: "Вставити посилання",
+CellCM				: "Осередок",
+RowCM				: "Рядок",
+ColumnCM			: "Колонка",
 InsertRow			: "Вставити строку",
 DeleteRows			: "Видалити строки",
 InsertColumn		: "Вставити колонку",
@@ -106,6 +117,7 @@
 DeleteCells			: "Видалити комірки",
 MergeCells			: "Об'єднати комірки",
 SplitCell			: "Роз'єднати комірку",
+TableDelete			: "Видалити таблицю",
 CellProperties		: "Властивості комірки",
 TableProperties		: "Властивості таблиці",
 ImageProperties		: "Властивості зображення",
@@ -122,7 +134,7 @@
 TextareaProp		: "Властивості текстової області",
 FormProp			: "Властивості форми",
 
-FontFormats			: "Нормальний;Форматований;Адреса;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6",
+FontFormats			: "Нормальний;Форматований;Адреса;Заголовок 1;Заголовок 2;Заголовок 3;Заголовок 4;Заголовок 5;Заголовок 6",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "Обробка XHTML. Зачекайте, будь ласка...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "Невідоме ім'я команди \"%1\"",
 NotImplemented		: "Команда не реалізована",
 UnknownToolbarSet	: "Панель інструментів \"%1\" не існує",
-NoActiveX			: "You 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
+NoActiveX			: "Настройки безпеки вашого браузера можуть обмежувати деякі властивості редактора. Ви повинні включити опцію \"Запускати елементи управління ACTIVEX і плугіни\". Ви можете бачити помилки і помічати відсутність можливостей.",
+BrowseServerBlocked : "Ресурси браузера не можуть бути відкриті. Перевірте що блокування спливаючих вікон вимкнені.",
+DialogBlocked		: "Не можливо відкрити вікно діалогу. Перевірте що блокування спливаючих вікон вимкнені.",
 
 // Dialogs
 DlgBtnOK			: "ОК",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "Зачинити",
 DlgBtnBrowseServer	: "Передивитися на сервері",
 DlgAdvancedTag		: "Розширений",
-DlgOpOther			: "&lt;Інше&gt;",
+DlgOpOther			: "<Інше>",
 DlgInfoTab			: "Інфо",
 DlgAlertUrl			: "Вставте, будь-ласка, URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;не визначено&gt;",
+DlgGenNotSet		: "<не визначено>",
 DlgGenId			: "Ідентифікатор",
 DlgGenLangDir		: "Напрямок мови",
 DlgGenLangDirLtr	: "Зліва на право (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "Якір на цю сторінку",
 DlgLnkTypeEMail		: "Эл. пошта",
 DlgLnkProto			: "Протокол",
-DlgLnkProtoOther	: "&lt;інше&gt;",
+DlgLnkProtoOther	: "<інше>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Оберіть якір",
 DlgLnkAnchorByName	: "За ім'ям якоря",
 DlgLnkAnchorById	: "За ідентифікатором елемента",
-DlgLnkNoAnchors		: "&lt;Немає якорів доступних в цьому документі&gt;",
+DlgLnkNoAnchors		: "<Немає якорів доступних в цьому документі>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "Адреса ел. пошти",
 DlgLnkEMailSubject	: "Тема листа",
 DlgLnkEMailBody		: "Тіло повідомлення",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "Переслати на сервер",
 
 DlgLnkTarget		: "Ціль",
-DlgLnkTargetFrame	: "&lt;фрейм&gt;",
-DlgLnkTargetPopup	: "&lt;спливаюче вікно&gt;",
+DlgLnkTargetFrame	: "<фрейм>",
+DlgLnkTargetPopup	: "<спливаюче вікно>",
 DlgLnkTargetBlank	: "Нове вікно (_blank)",
 DlgLnkTargetParent	: "Батьківське вікно (_parent)",
 DlgLnkTargetSelf	: "Теж вікно (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "Будь ласка, занесіть URL посилання",
 DlnLnkMsgNoEMail	: "Будь ласка, занесіть адрес эл. почты",
 DlnLnkMsgNoAnchor	: "Будь ласка, оберіть якір",
+DlnLnkMsgInvPopName	: "Назва спливаючого вікна повинна починатися букви і не може містити пропусків",
 
 // Color Dialog
 DlgColorTitle		: "Оберіть колір",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "Проміжок (spacing)",
 DlgTableCellPad		: "Відступ (padding)",
 DlgTableCaption		: "Заголовок",
+DlgTableSummary		: "Резюме",
 
 // Table Cell Dialog
 DlgCellTitle		: "Властивості комірки",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "Збіг цілих слів",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вставки. Будь ласка, використовуйте клавіатуру для цього (Ctrl+V).",
 PasteErrorCut	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl+X).",
 PasteErrorCopy	: "Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl+C).",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "Вставити з Word",
 
 DlgPasteMsg2	: "Будь-ласка, вставте з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натисніть <STRONG>OK</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "Ігнорувати налаштування шрифтів",
 DlgPasteRemoveStyles	: "Видалити налаштування стилів",
 DlgPasteCleanBox		: "Очистити область",
 
-
 // Color Picker
 ColorAutomatic	: "Автоматичний",
 ColorMoreColors	: "Кольори...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "Модуль перевірки орфографії не встановлено. Бажаєтн завантажити його зараз?",
 
 // Button Dialog
-DlgButtonText	: "Текст (Значення)",
-DlgButtonType	: "Тип",
+DlgButtonText		: "Текст (Значення)",
+DlgButtonType		: "Тип",
+DlgButtonTypeBtn	: "Кнопка",
+DlgButtonTypeSbm	: "Відправити",
+DlgButtonTypeRst	: "Скинути",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Ім'я",
@@ -414,13 +432,14 @@
 // Bulleted List Dialog
 BulletedListProp	: "Властивості маркованого списка",
 NumberedListProp	: "Властивості нумерованного списка",
+DlgLstStart			: "Початок",
 DlgLstType			: "Тип",
 DlgLstTypeCircle	: "Коло",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "Диск",
 DlgLstTypeSquare	: "Квадрат",
 DlgLstTypeNumbers	: "Номери (1, 2, 3)",
 DlgLstTypeLCase		: "Літери нижнього регістра(a, b, c)",
-DlgLstTypeUCase		: "Літери ВЕРХНЬОГО РЕГІСТРА (A, B, C)",
+DlgLstTypeUCase		: "Букви верхнього регістра (A, B, C)",
 DlgLstTypeSRoman	: "Малі римські літери (i, ii, iii)",
 DlgLstTypeLRoman	: "Великі римські літери (I, II, III)",
 
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "Зправа на лево (RTL)",
 DlgDocLangCode		: "Код мови",
 DlgDocCharSet		: "Кодування набору символів",
+DlgDocCharSetCE		: "Центрально-європейська",
+DlgDocCharSetCT		: "Китайська традиційна (Big5)",
+DlgDocCharSetCR		: "Кирилиця",
+DlgDocCharSetGR		: "Грецька",
+DlgDocCharSetJP		: "Японська",
+DlgDocCharSetKR		: "Корейська",
+DlgDocCharSetTR		: "Турецька",
+DlgDocCharSetUN		: "Юнікод (UTF-8)",
+DlgDocCharSetWE		: "Західно-европейская",
 DlgDocCharSetOther	: "Інше кодування набору символів",
 
 DlgDocDocType		: "Заголовок типу документу",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "Оберіть, будь ласка, шаблон для відкриття в редакторі<br>(поточний зміст буде втрачено):",
 DlgTemplatesLoading	: "Завантаження списку шаблонів. Зачекайте, будь ласка...",
 DlgTemplatesNoTpl	: "(Не визначено жодного шаблону)",
+DlgTemplatesReplace	: "Замінити поточний вміст",
 
 // About Dialog
 DlgAboutAboutTab	: "Про програму",
 DlgAboutBrowserInfoTab	: "Інформація браузера",
+DlgAboutLicenseTab	: "Ліцензія",
 DlgAboutVersion		: "Версія",
-DlgAboutLicense		: "Ліцензовано згідно умовам GNU Lesser General Public License",
 DlgAboutInfo		: "Додаткову інформацію дивіться на "
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/vi.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/vi.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/vi.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: vi.js
- * 	Vietnamese language file.
- * 
- * File Authors:
- * 		Phan Binh Giang (bbbgiang at yahoo.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Vietnamese language file.
  */
 
 var FCKLang =
@@ -22,17 +26,17 @@
 // Language direction : "ltr" (left to right) or "rtl" (right to left).
 Dir					: "ltr",
 
-ToolbarCollapse		: "Collapse Toolbar",
-ToolbarExpand		: "Expand Toolbar",
+ToolbarCollapse		: "Thu gọn Thanh công cụ",
+ToolbarExpand		: "Mở rộng Thanh công cụ",
 
 // Toolbar Items and Context Menu
-Save				: "Ghi",
-NewPage				: "Trang Má»›i",
+Save				: "LÆ°u",
+NewPage				: "Trang má»›i",
 Preview				: "Xem trÆ°á»›c",
 Cut					: "Cắt",
-Copy				: "Sao",
+Copy				: "Sao chép",
 Paste				: "Dán",
-PasteText			: "Dán Ký tự đơn thuần",
+PasteText			: "Dán theo dạng văn bản thuần",
 PasteWord			: "Dán với định dạng Word",
 Print				: "In",
 SelectAll			: "Chọn Tất cả",
@@ -46,94 +50,104 @@
 InsertFlashLbl		: "Flash",
 InsertFlash			: "Chèn/Sửa Flash",
 InsertTableLbl		: "Bảng",
-InsertTable			: "Chèn/Sửa bảng",
-InsertLineLbl		: "Đường phân cách",
-InsertLine			: "Chèn đường phân cách ngang",
-InsertSpecialCharLbl: "Ký tự đặt biệt",
+InsertTable			: "Chèn/Sửa Bảng",
+InsertLineLbl		: "Đường phân cách ngang",
+InsertLine			: "Chèn Đường phân cách ngang",
+InsertSpecialCharLbl: "Ký tự đặc biệt",
 InsertSpecialChar	: "Chèn Ký tự đặc biệt",
-InsertSmileyLbl		: "Hình cảm xúc",
-InsertSmiley		: "Chèn Hình cảm xúc",
+InsertSmileyLbl		: "Hình biểu lộ cảm xúc (mặt cười)",
+InsertSmiley		: "Chèn Hình biểu lộ cảm xúc (mặt cười)",
 About				: "Giới thiệu về FCKeditor",
 Bold				: "Đậm",
 Italic				: "Nghiêng",
 Underline			: "Gạch chân",
-StrikeThrough		: "Gạch ngang",
+StrikeThrough		: "Gạch xuyên ngang",
 Subscript			: "Chỉ số dưới",
 Superscript			: "Chỉ số trên",
-LeftJustify			: "Canh bên Trái",
-CenterJustify		: "Canh Giữa",
-RightJustify		: "Canh bên Phải",
-BlockJustify		: "Canh Hai bên",
-DecreaseIndent		: "Dịch sang Trái",
-IncreaseIndent		: "Dịch sang Phải",
-Undo				: "Phục hồi Lùi",
-Redo				: "Phục hồi Tiến",
-NumberedListLbl		: "Số thứ tự",
-NumberedList		: "Chèn/Xoá Số thứ tự",
-BulletedListLbl		: "Danh sách Bulleted",
-BulletedList		: "Chèn/Xoá Danh sách Bulleted",
-ShowTableBorders	: "Hiện thị Đường viền bảng",
-ShowDetails			: "Hiện thị Chi tiết",
+LeftJustify			: "Canh trái",
+CenterJustify		: "Canh giữa",
+RightJustify		: "Canh phải",
+BlockJustify		: "Canh đều",
+DecreaseIndent		: "Dịch ra ngoài",
+IncreaseIndent		: "Dịch vào trong",
+Undo				: "Khôi phục thao tác",
+Redo				: "Làm lại thao tác",
+NumberedListLbl		: "Danh sách có thứ tự",
+NumberedList		: "Chèn/Xoá Danh sách có thứ tự",
+BulletedListLbl		: "Danh sách không thứ tự",
+BulletedList		: "Chèn/Xoá Danh sách không thứ tự",
+ShowTableBorders	: "Hiển thị Đường viền bảng",
+ShowDetails			: "Hiển thị Chi tiết",
 Style				: "Mẫu",
 FontFormat			: "Định dạng",
-Font				: "Font",
-FontSize			: "Cỡ Chữ",
-TextColor			: "Màu Chữ",
-BGColor				: "Màu Nền",
-Source				: "Mã nguồn",
-Find				: "Tìm",
+Font				: "Phông",
+FontSize			: "Cỡ chữ",
+TextColor			: "Màu chữ",
+BGColor				: "Màu nền",
+Source				: "Mã HTML",
+Find				: "Tìm kiếm",
 Replace				: "Thay thế",
 SpellCheck			: "Kiểm tra Chính tả",
-UniversalKeyboard	: "Bàn phím quốc tế",
+UniversalKeyboard	: "Bàn phím Quốc tế",
+PageBreakLbl		: "Ngắt trang",
+PageBreak			: "Chèn Ngắt trang",
 
-Form			: "Form",
-Checkbox		: "Nốt Kiểm",
-RadioButton		: "Nốt Đài",
-TextField		: "Text Field",
-Textarea		: "Textarea",
-HiddenField		: "Hidden Field",
-Button			: "Button",
-SelectionField	: "Selection Field",
-ImageButton		: "Image Button",
+Form			: "Biểu mẫu",
+Checkbox		: "Nút kiểm",
+RadioButton		: "Nút chọn",
+TextField		: "Trường văn bản",
+Textarea		: "Vùng văn bản",
+HiddenField		: "Trường ẩn",
+Button			: "Nút",
+SelectionField	: "Ô chọn",
+ImageButton		: "Nút hình ảnh",
 
+FitWindow		: "Mở rộng tối đa kích thước trình biên tập",
+
 // Context Menu
 EditLink			: "Sửa Liên kết",
-InsertRow			: "Chèn Dòng",
-DeleteRows			: "Xoá Dòng",
+CellCM				: "Ô",
+RowCM				: "Hàng",
+ColumnCM			: "Cá»™t",
+InsertRow			: "Chèn Hàng",
+DeleteRows			: "Xoá Hàng",
 InsertColumn		: "Chèn Cột",
 DeleteColumns		: "Xoá Cột",
 InsertCell			: "Chèn Ô",
 DeleteCells			: "Xoá Ô",
 MergeCells			: "Trộn Ô",
 SplitCell			: "Chia Ô",
+TableDelete			: "Xóa Bảng",
 CellProperties		: "Thuộc tính Ô",
 TableProperties		: "Thuộc tính Bảng",
 ImageProperties		: "Thuộc tính Hình ảnh",
 FlashProperties		: "Thuộc tính Flash",
 
 AnchorProp			: "Thuộc tính Neo",
-ButtonProp			: "Thuộc tính Button",
-CheckboxProp		: "Thuộc tính Nốt kiểm",
-HiddenFieldProp		: "Thuộc tính Hidden Field",
-RadioButtonProp		: "Thuộc tính Nốt đài",
-ImageButtonProp		: "Thuộc tính Image Button",
-TextFieldProp		: "Thuộc tính Text Field",
-SelectionFieldProp	: "Thuộc tính Selection Field",
-TextareaProp		: "Thuộc tính Textarea",
-FormProp			: "Thuộc tính Form",
+ButtonProp			: "Thuộc tính Nút",
+CheckboxProp		: "Thuộc tính Nút kiểm",
+HiddenFieldProp		: "Thuộc tính Trường ẩn",
+RadioButtonProp		: "Thuộc tính Nút chọn",
+ImageButtonProp		: "Thuộc tính Nút hình ảnh",
+TextFieldProp		: "Thuộc tính Trường văn bản",
+SelectionFieldProp	: "Thuộc tính Ô chọn",
+TextareaProp		: "Thuộc tính Vùng văn bản",
+FormProp			: "Thuộc tính Biểu mẫu",
 
-FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Paragraph (DIV)",
+FontFormats			: "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
-ProcessingXHTML		: "Đang xử lý XHTML. Xin hãy đợi...",
+ProcessingXHTML		: "Đang xử lý XHTML. Vui lòng đợi trong giây lát...",
 Done				: "Đã hoàn thành",
 PasteWordConfirm	: "Văn bản bạn muốn dán có kèm định dạng của Word. Bạn có muốn loại bỏ định dạng Word trước khi dán?",
 NotCompatiblePaste	: "Lệnh này chỉ được hỗ trợ từ trình duyệt Internet Explorer phiên bản 5.5 hoặc mới hơn. Bạn có muốn dán nguyên mẫu?",
-UnknownToolbarItem	: "Không rõ Nốt \"%1\"",
+UnknownToolbarItem	: "Không rõ mục trên thanh công cụ \"%1\"",
 UnknownCommand		: "Không rõ lệnh \"%1\"",
-NotImplemented		: "Lệnh không được thi hành",
+NotImplemented		: "Lệnh không được thực hiện",
 UnknownToolbarSet	: "Thanh công cụ \"%1\" không tồn tại",
-NoActiveX			: "You 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
+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.",
+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.",
 
 // Dialogs
 DlgBtnOK			: "Đồng ý",
@@ -141,31 +155,31 @@
 DlgBtnClose			: "Đóng",
 DlgBtnBrowseServer	: "Duyệt trên máy chủ",
 DlgAdvancedTag		: "Mở rộng",
-DlgOpOther			: "&lt;Khác&gt;",
+DlgOpOther			: "<Khác>",
 DlgInfoTab			: "Thông tin",
-DlgAlertUrl			: "Hãy đưa vào một URL",
+DlgAlertUrl			: "Hãy nhập vào một URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;không thiết lập&gt;",
+DlgGenNotSet		: "<không thiết lập>",
 DlgGenId			: "Định danh",
 DlgGenLangDir		: "Đường dẫn Ngôn ngữ",
 DlgGenLangDirLtr	: "Trái sang Phải (LTR)",
 DlgGenLangDirRtl	: "Phải sang Trái (RTL)",
 DlgGenLangCode		: "Mã Ngôn ngữ",
-DlgGenAccessKey		: "Phím Truy cập",
+DlgGenAccessKey		: "Phím Hỗ trợ truy cập",
 DlgGenName			: "Tên",
-DlgGenTabIndex		: "Tab Index",
+DlgGenTabIndex		: "Chỉ số của Tab",
 DlgGenLongDescr		: "Mô tả URL",
-DlgGenClass			: "Stylesheet Classes",
+DlgGenClass			: "Lá»›p Stylesheet",
 DlgGenTitle			: "Advisory Title",
 DlgGenContType		: "Advisory Content Type",
-DlgGenLinkCharset	: "Linked Resource Charset",
+DlgGenLinkCharset	: "Bảng mã của tài nguyên được liên kết đến",
 DlgGenStyle			: "Mẫu",
 
 // Image Dialog
 DlgImgTitle			: "Thuộc tính Hình ảnh",
 DlgImgInfoTab		: "Thông tin Hình ảnh",
-DlgImgBtnUpload		: "Gửi lên Máy chủ",
+DlgImgBtnUpload		: "Tải lên Máy chủ",
 DlgImgURL			: "URL",
 DlgImgUpload		: "Tải lên",
 DlgImgAlt			: "Chú thích Hình ảnh",
@@ -178,13 +192,13 @@
 DlgImgVSpace		: "VSpace",
 DlgImgAlign			: "Vị trí",
 DlgImgAlignLeft		: "Trái",
-DlgImgAlignAbsBottom: "Abs Bottom",
-DlgImgAlignAbsMiddle: "Abs Middle",
+DlgImgAlignAbsBottom: "Dưới tuyệt đối",
+DlgImgAlignAbsMiddle: "Giữa tuyệt đối",
 DlgImgAlignBaseline	: "Baseline",
 DlgImgAlignBottom	: "DÆ°á»›i",
 DlgImgAlignMiddle	: "Giữa",
 DlgImgAlignRight	: "Phải",
-DlgImgAlignTextTop	: "Text Top",
+DlgImgAlignTextTop	: "Phía trên chữ",
 DlgImgAlignTop		: "Trên",
 DlgImgPreview		: "Xem trÆ°á»›c",
 DlgImgAlertUrl		: "Hãy đưa vào URL của hình ảnh",
@@ -192,189 +206,193 @@
 
 // Flash Dialog
 DlgFlashTitle		: "Thuộc tính Flash",
-DlgFlashChkPlay		: "Tự động Chạy",
+DlgFlashChkPlay		: "Tự động chạy",
 DlgFlashChkLoop		: "Lặp",
-DlgFlashChkMenu		: "Kích hoạt Menu Flash ",
-DlgFlashScale		: "Scale",
+DlgFlashChkMenu		: "Cho phép bật Menu của Flash",
+DlgFlashScale		: "Tỷ lệ",
 DlgFlashScaleAll	: "Hiển thị tất cả",
 DlgFlashScaleNoBorder	: "Không đường viền",
-DlgFlashScaleFit	: "Exact Fit",
+DlgFlashScaleFit	: "Vừa vặn",
 
 // Link Dialog
 DlgLnkWindowTitle	: "Liên kết",
 DlgLnkInfoTab		: "Thông tin Liên kết",
-DlgLnkTargetTab		: "HÆ°á»›ng tá»›i",
+DlgLnkTargetTab		: "Đích",
 
 DlgLnkType			: "Kiểu Liên kết",
 DlgLnkTypeURL		: "URL",
 DlgLnkTypeAnchor	: "Neo trong trang này",
-DlgLnkTypeEMail		: "E-Mail",
+DlgLnkTypeEMail		: "Thư điện tử",
 DlgLnkProto			: "Giao thức",
-DlgLnkProtoOther	: "&lt;khác&gt;",
+DlgLnkProtoOther	: "<khác>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "Chọn một Neo",
 DlgLnkAnchorByName	: "Theo Tên Neo",
 DlgLnkAnchorById	: "Theo Định danh Element",
-DlgLnkNoAnchors		: "&lt;Không có Neo nào trong tài liệu&gt;",
-DlgLnkEMail			: "E-Mail",
-DlgLnkEMailSubject	: "Tựa đề Thông điệp",
+DlgLnkNoAnchors		: "<Không có Neo nào trong tài liệu>",		//REVIEW : Change < and > with ( and )
+DlgLnkEMail			: "Thư điện tử",
+DlgLnkEMailSubject	: "Tiêu đề Thông điệp",
 DlgLnkEMailBody		: "Nội dung Thông điệp",
 DlgLnkUpload		: "Tải lên",
-DlgLnkBtnUpload		: "Gửi lên Máy chủ",
+DlgLnkBtnUpload		: "Tải lên Máy chủ",
 
-DlgLnkTarget		: "HÆ°á»›ng tá»›i",
-DlgLnkTargetFrame	: "&lt;frame&gt;",
-DlgLnkTargetPopup	: "&lt;cửa sổ popup&gt;",
+DlgLnkTarget		: "Đích",
+DlgLnkTargetFrame	: "<khung>",
+DlgLnkTargetPopup	: "<cửa sổ popup>",
 DlgLnkTargetBlank	: "Cửa sổ mới (_blank)",
 DlgLnkTargetParent	: "Cửa sổ cha (_parent)",
 DlgLnkTargetSelf	: "Cùng cửa sổ (_self)",
 DlgLnkTargetTop		: "Cửa sổ trên cùng(_top)",
-DlgLnkTargetFrameName	: "Tên Frame hướng tới",
+DlgLnkTargetFrameName	: "Tên Khung đích",
 DlgLnkPopWinName	: "Tên Cửa sổ Popup",
-DlgLnkPopWinFeat	: "Cửa sổ Popup Đặc trưng",
+DlgLnkPopWinFeat	: "Đặc điểm của Cửa sổ Popup",
 DlgLnkPopResize		: "Kích thước thay đổi",
-DlgLnkPopLocation	: "Location Bar",	//MISSING
+DlgLnkPopLocation	: "Thanh vị trí",
 DlgLnkPopMenu		: "Thanh Menu",
 DlgLnkPopScroll		: "Thanh cuá»™n",
 DlgLnkPopStatus		: "Thanh trạng thái",
 DlgLnkPopToolbar	: "Thanh công cụ",
 DlgLnkPopFullScrn	: "Toàn màn hình (IE)",
-DlgLnkPopDependent	: "Dependent (Netscape)",
+DlgLnkPopDependent	: "Phụ thuộc (Netscape)",
 DlgLnkPopWidth		: "Rá»™ng",
 DlgLnkPopHeight		: "Cao",
 DlgLnkPopLeft		: "Vị trí Trái",
 DlgLnkPopTop		: "Vị trí Trên",
 
 DlnLnkMsgNoUrl		: "Hãy đưa vào Liên kết URL",
-DlnLnkMsgNoEMail	: "Hãy đưa vào địa chỉ e-mail",
+DlnLnkMsgNoEMail	: "Hãy đưa vào địa chỉ thư điện tử",
 DlnLnkMsgNoAnchor	: "Hãy chọn một Neo",
+DlnLnkMsgInvPopName	: "Tên của cửa sổ Popup phải bắt đầu bằng một ký tự và không được chứa khoảng trắng",
 
 // Color Dialog
 DlgColorTitle		: "Chọn màu",
 DlgColorBtnClear	: "Xoá",
-DlgColorHighlight	: "Điểm sáng",
+DlgColorHighlight	: "Tô sáng",
 DlgColorSelected	: "Đã chọn",
 
 // Smiley Dialog
-DlgSmileyTitle		: "Chèn một hình cảm xúc",
+DlgSmileyTitle		: "Chèn Hình biểu lộ cảm xúc (mặt cười)",
 
 // Special Character Dialog
-DlgSpecialCharTitle	: "Chọn ký tự đặc biệt",
+DlgSpecialCharTitle	: "Hãy chọn Ký tự đặc biệt",
 
 // Table Dialog
 DlgTableTitle		: "Thuộc tính bảng",
-DlgTableRows		: "Dòng",
+DlgTableRows		: "Hàng",
 DlgTableColumns		: "Cá»™t",
 DlgTableBorder		: "Cỡ Đường viền",
-DlgTableAlign		: "Alignment",
-DlgTableAlignNotSet	: "<Không thiết lập>",
+DlgTableAlign		: "Canh lề",
+DlgTableAlignNotSet	: "<Chưa thiết lập>",
 DlgTableAlignLeft	: "Trái",
 DlgTableAlignCenter	: "Giữa",
 DlgTableAlignRight	: "Phải",
 DlgTableWidth		: "Rá»™ng",
-DlgTableWidthPx		: "điểm",
+DlgTableWidthPx		: "điểm (px)",
 DlgTableWidthPc		: "%",
 DlgTableHeight		: "Cao",
 DlgTableCellSpace	: "Khoảng cách Ô",
 DlgTableCellPad		: "Đệm Ô",
 DlgTableCaption		: "Đầu đề",
+DlgTableSummary		: "Tóm lược",
 
 // Table Cell Dialog
 DlgCellTitle		: "Thuộc tính Ô",
 DlgCellWidth		: "Rá»™ng",
-DlgCellWidthPx		: "điểm",
+DlgCellWidthPx		: "điểm (px)",
 DlgCellWidthPc		: "%",
 DlgCellHeight		: "Cao",
-DlgCellWordWrap		: "Dàn từ",
-DlgCellWordWrapNotSet	: "&lt;Không thiết lập&gt;",
+DlgCellWordWrap		: "Bọc từ",
+DlgCellWordWrapNotSet	: "<Chưa thiết lập>",
 DlgCellWordWrapYes	: "Đồng ý",
 DlgCellWordWrapNo	: "Không",
-DlgCellHorAlign		: "Sắp xếp Ngang",
-DlgCellHorAlignNotSet	: "&lt;Không thiết lập&gt;",
+DlgCellHorAlign		: "Canh theo Chiều ngang",
+DlgCellHorAlignNotSet	: "<Chưa thiết lập>",
 DlgCellHorAlignLeft	: "Trái",
 DlgCellHorAlignCenter	: "Giữa",
 DlgCellHorAlignRight: "Phải",
-DlgCellVerAlign		: "Sắp xếp Dọc",
-DlgCellVerAlignNotSet	: "&lt;Không thiết lập&gt;",
+DlgCellVerAlign		: "Canh theo Chiều dọc",
+DlgCellVerAlignNotSet	: "<Chưa thiết lập>",
 DlgCellVerAlignTop	: "Trên",
 DlgCellVerAlignMiddle	: "Giữa",
 DlgCellVerAlignBottom	: "DÆ°á»›i",
 DlgCellVerAlignBaseline	: "Baseline",
-DlgCellRowSpan		: "Rows Span",
-DlgCellCollSpan		: "Columns Span",
+DlgCellRowSpan		: "Nối Hàng",
+DlgCellCollSpan		: "Nối Cột",
 DlgCellBackColor	: "Màu nền",
 DlgCellBorderColor	: "Màu viền",
 DlgCellBtnSelect	: "Chọn...",
 
 // Find Dialog
-DlgFindTitle		: "Tìm",
-DlgFindFindBtn		: "Tìm",
-DlgFindNotFoundMsg	: "Chuỗi cần tìm không thấy.",
+DlgFindTitle		: "Tìm kiếm",
+DlgFindFindBtn		: "Tìm kiếm",
+DlgFindNotFoundMsg	: "Không tìm thấy chuỗi cần tìm.",
 
 // Replace Dialog
 DlgReplaceTitle			: "Thay thế",
-DlgReplaceFindLbl		: "Tìm gì:",
+DlgReplaceFindLbl		: "Tìm chuỗi:",
 DlgReplaceReplaceLbl	: "Thay bằng:",
-DlgReplaceCaseChk		: "Đúng chứ HOA/thường",
+DlgReplaceCaseChk		: "Phân biệt chữ hoa/thường",
 DlgReplaceReplaceBtn	: "Thay thế",
 DlgReplaceReplAllBtn	: "Thay thế Tất cả",
-DlgReplaceWordChk		: "Đúng từ",
+DlgReplaceWordChk		: "Đúng toàn bộ từ",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "An ninh trình duyệt của bạn được thiết lập không cho phép trình soạn thảo tự động thực thi lệnh dán. Hãy sử dụng bàn phím cho lệnh này (Ctrl+V).",
-PasteErrorCut	: "An ninh trình duyệt của bạn được thiết lập không cho phép trình soạn thảo tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl+X).",
-PasteErrorCopy	: "An ninh trình duyệt của bạn được thiết lập không cho phép trình soạn thảo tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl+C).",
+PasteErrorCut	: "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl+X).",
+PasteErrorCopy	: "Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl+C).",
 
-PasteAsText		: "Dán ký tự đơn thuần",
+PasteAsText		: "Dán theo định dạng văn bản thuần",
 PasteFromWord	: "Dán với định dạng Word",
 
-DlgPasteMsg2	: "Hãy dán vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nốt <STRONG>Đồng ý</STRONG>.",
-DlgPasteIgnoreFont		: "Chấp nhận các định dạng Font",
-DlgPasteRemoveStyles	: "Xoá tất cả các định dạng Styles",
-DlgPasteCleanBox		: "Xoá sạch",
+DlgPasteMsg2	: "Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
+DlgPasteIgnoreFont		: "Chấp nhận các định dạng phông",
+DlgPasteRemoveStyles	: "Gỡ bỏ các định dạng Styles",
+DlgPasteCleanBox		: "Xóa nội dung",
 
-
 // Color Picker
 ColorAutomatic	: "Tá»± Ä‘á»™ng",
 ColorMoreColors	: "Màu khác...",
 
 // Document Properties
-DocProps		: "Thuộc tính tài liệu",
+DocProps		: "Thuộc tính Tài liệu",
 
 // Anchor Dialog
 DlgAnchorTitle		: "Thuộc tính Neo",
-DlgAnchorName		: "Tên Neo",
-DlgAnchorErrorName	: "Hãy đưa vào tên Neo",
+DlgAnchorName		: "Tên của Neo",
+DlgAnchorErrorName	: "Hãy đưa vào tên của Neo",
 
 // Speller Pages Dialog
-DlgSpellNotInDic		: "Không trong từ điển",
-DlgSpellChangeTo		: "Change to",
+DlgSpellNotInDic		: "Không có trong từ điển",
+DlgSpellChangeTo		: "Chuyển thành",
 DlgSpellBtnIgnore		: "Bỏ qua",
 DlgSpellBtnIgnoreAll	: "Bỏ qua Tất cả",
 DlgSpellBtnReplace		: "Thay thế",
 DlgSpellBtnReplaceAll	: "Thay thế Tất cả",
 DlgSpellBtnUndo			: "Phục hồi lại",
-DlgSpellNoSuggestions	: "- Không đề xuất -",
+DlgSpellNoSuggestions	: "- Không đưa ra gợi ý về từ -",
 DlgSpellProgress		: "Đang tiến hành kiểm tra chính tả...",
 DlgSpellNoMispell		: "Hoàn tất kiểm tra chính tả: Không có lỗi chính tả",
-DlgSpellNoChanges		: "Hoàn tất kiểm tra chính tả: Không từ nào được thay đổi",
+DlgSpellNoChanges		: "Hoàn tất kiểm tra chính tả: Không có từ nào được thay đổi",
 DlgSpellOneChange		: "Hoàn tất kiểm tra chính tả: Một từ đã được thay đổi",
 DlgSpellManyChanges		: "Hoàn tất kiểm tra chính tả: %1 từ đã được thay đổi",
 
-IeSpellDownload			: "Chức năng kiểm tra chính tả chưa được cài đặt. Bạn có tải về ngay bây giờ?",
+IeSpellDownload			: "Chức năng kiểm tra chính tả chưa được cài đặt. Bạn có muốn tải về ngay bây giờ?",
 
 // Button Dialog
-DlgButtonText	: "Text (Value)",
-DlgButtonType	: "Kiểu",
+DlgButtonText		: "Chuỗi hiển thị (Giá trị)",
+DlgButtonType		: "Kiểu",
+DlgButtonTypeBtn	: "Nút Bấm",
+DlgButtonTypeSbm	: "Nút Gửi",
+DlgButtonTypeRst	: "Nút Nhập lại",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "Tên",
 DlgCheckboxValue	: "Giá trị",
-DlgCheckboxSelected	: "Đã chọn",
+DlgCheckboxSelected	: "Được chọn",
 
 // Form Dialog
 DlgFormName		: "Tên",
-DlgFormAction	: "Action",
+DlgFormAction	: "Hành động",
 DlgFormMethod	: "Phương thức",
 
 // Select Field Dialog
@@ -382,9 +400,9 @@
 DlgSelectValue		: "Giá trị",
 DlgSelectSize		: "Kích cỡ",
 DlgSelectLines		: "dòng",
-DlgSelectChkMulti	: "Chấp nhận chọn nhiều",
-DlgSelectOpAvail	: "Available Options",
-DlgSelectOpText		: "Text",
+DlgSelectChkMulti	: "Cho phép chọn nhiều",
+DlgSelectOpAvail	: "Các tùy chọn có thể sử dụng",
+DlgSelectOpText		: "Văn bản",
 DlgSelectOpValue	: "Giá trị",
 DlgSelectBtnAdd		: "Thêm",
 DlgSelectBtnModify	: "Thay đổi",
@@ -396,7 +414,7 @@
 // Textarea Dialog
 DlgTextareaName	: "Tên",
 DlgTextareaCols	: "Cá»™t",
-DlgTextareaRows	: "Dòng",
+DlgTextareaRows	: "Hàng",
 
 // Text Field Dialog
 DlgTextName			: "Tên",
@@ -412,48 +430,58 @@
 DlgHiddenValue	: "Giá trị",
 
 // Bulleted List Dialog
-BulletedListProp	: "Thuộc tính Danh sách Bulleted",
-NumberedListProp	: "Thuộc tính Danh sách Số",
+BulletedListProp	: "Thuộc tính Danh sách không thứ tự",
+NumberedListProp	: "Thuộc tính Danh sách có thứ tự",
+DlgLstStart			: "Bắt đầu",
 DlgLstType			: "Kiểu",
-DlgLstTypeCircle	: "Tròn",
-DlgLstTypeDisc		: "Disc",	//MISSING
-DlgLstTypeSquare	: "Vuông",
-DlgLstTypeNumbers	: "Số (1, 2, 3)",
+DlgLstTypeCircle	: "Hình tròn",
+DlgLstTypeDisc		: "Hình đĩa",
+DlgLstTypeSquare	: "Hình vuông",
+DlgLstTypeNumbers	: "Số thứ tự (1, 2, 3)",
 DlgLstTypeLCase		: "Chữ cái thường (a, b, c)",
 DlgLstTypeUCase		: "Chữ cái hoa (A, B, C)",
-DlgLstTypeSRoman	: "Số LaMa thường (i, ii, iii)",
-DlgLstTypeLRoman	: "Số LaMa hoa (I, II, III)",
+DlgLstTypeSRoman	: "Số La Mã thường (i, ii, iii)",
+DlgLstTypeLRoman	: "Số La Mã hoa (I, II, III)",
 
 // Document Properties Dialog
 DlgDocGeneralTab	: "Toàn thể",
 DlgDocBackTab		: "Nền",
-DlgDocColorsTab		: "Màu sắc và Biên",
-DlgDocMetaTab		: "Meta Data",
+DlgDocColorsTab		: "Màu sắc và Đường biên",
+DlgDocMetaTab		: "Siêu dữ liệu",
 
 DlgDocPageTitle		: "Tiêu đề Trang",
-DlgDocLangDir		: "Đường dẫn Ngôn Ngữ",
+DlgDocLangDir		: "Đường dẫn Ngôn ngữ",
 DlgDocLangDirLTR	: "Trái sang Phải (LTR)",
 DlgDocLangDirRTL	: "Phải sang Trái (RTL)",
 DlgDocLangCode		: "Mã Ngôn ngữ",
-DlgDocCharSet		: "Character Set Encoding",
-DlgDocCharSetOther	: "Other Character Set Encoding",
+DlgDocCharSet		: "Bảng mã ký tự",
+DlgDocCharSetCE		: "Trung Âu",
+DlgDocCharSetCT		: "Tiếng Trung Quốc (Big5)",
+DlgDocCharSetCR		: "Tiếng Kirin",
+DlgDocCharSetGR		: "Tiếng Hy Lạp",
+DlgDocCharSetJP		: "Tiếng Nhật",
+DlgDocCharSetKR		: "Tiếng Hàn",
+DlgDocCharSetTR		: "Tiếng Thổ Nhĩ Kỳ",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "Tây Âu",
+DlgDocCharSetOther	: "Bảng mã ký tự khác",
 
 DlgDocDocType		: "Kiểu Đề mục Tài liệu",
 DlgDocDocTypeOther	: "Kiểu Đề mục Tài liệu khác",
 DlgDocIncXHTML		: "Bao gồm cả định nghĩa XHTML",
 DlgDocBgColor		: "Màu nền",
-DlgDocBgImage		: "Background Image URL",
+DlgDocBgImage		: "URL của Hình ảnh nền",
 DlgDocBgNoScroll	: "Không cuộn nền",
-DlgDocCText			: "Text",
+DlgDocCText			: "Văn bản",
 DlgDocCLink			: "Liên kết",
-DlgDocCVisited		: "Liên kết Đã viếng thăm",
-DlgDocCActive		: "Liên kết Hoạt động",
-DlgDocMargins		: "Biên của Trang",
+DlgDocCVisited		: "Liên kết Đã ghé thăm",
+DlgDocCActive		: "Liên kết Hiện hành",
+DlgDocMargins		: "Đường biên của Trang",
 DlgDocMaTop			: "Trên",
 DlgDocMaLeft		: "Trái",
 DlgDocMaRight		: "Phải",
 DlgDocMaBottom		: "DÆ°á»›i",
-DlgDocMeIndex		: "Document Indexing Keywords (comma separated)",
+DlgDocMeIndex		: "Các từ khóa chỉ mục tài liệu (phân cách bởi dấu phẩy)",
 DlgDocMeDescr		: "Mô tả tài liệu",
 DlgDocMeAuthor		: "Tác giả",
 DlgDocMeCopy		: "Bản quyền",
@@ -462,14 +490,15 @@
 // Templates Dialog
 Templates			: "Mẫu dựng sẵn",
 DlgTemplatesTitle	: "Nội dung Mẫu dựng sẵn",
-DlgTemplatesSelMsg	: "Please select the template to open in the editor<br>(the actual contents will be lost):",
-DlgTemplatesLoading	: "Đang nạp Danh sách Mẫu dựng sẵn. Xin hãy chờ...",
+DlgTemplatesSelMsg	: "Hãy chọn Mẫu dựng sẵn để mở trong trình biên tập<br>(nội dung hiện tại sẽ bị mất):",
+DlgTemplatesLoading	: "Đang nạp Danh sách Mẫu dựng sẵn. Vui lòng đợi trong giây lát...",
 DlgTemplatesNoTpl	: "(Không có Mẫu dựng sẵn nào được định nghĩa)",
+DlgTemplatesReplace	: "Thay thế nội dung hiện tại",
 
 // About Dialog
 DlgAboutAboutTab	: "Giới thiệu",
 DlgAboutBrowserInfoTab	: "Thông tin trình duyệt",
+DlgAboutLicenseTab	: "Giấy phép",
 DlgAboutVersion		: "phiên bản",
-DlgAboutLicense		: "Licensed under the terms of the GNU Lesser General Public License",
-DlgAboutInfo		: "Thông tin thêm hãy đến"
-}
\ No newline at end of file
+DlgAboutInfo		: "Để biết thêm thông tin, hãy truy cập"
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh-cn.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh-cn.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh-cn.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: zh-cn.js
- * 	Chinese Simplified language file.
- * 
- * File Authors:
- * 		NetRube (NetRube at 126.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Chinese Simplified language file.
  */
 
 var FCKLang =
@@ -85,6 +89,8 @@
 Replace				: "替换",
 SpellCheck			: "拼写检查",
 UniversalKeyboard	: "软键盘",
+PageBreakLbl		: "分页符",
+PageBreak			: "插入分页符",
 
 Form			: "表单",
 Checkbox		: "复选框",
@@ -96,8 +102,13 @@
 SelectionField	: "列表/菜单",
 ImageButton		: "图像域",
 
+FitWindow		: "全屏编辑",
+
 // Context Menu
 EditLink			: "编辑超链接",
+CellCM				: "单元格",
+RowCM				: "行",
+ColumnCM			: "列",
 InsertRow			: "插入行",
 DeleteRows			: "删除行",
 InsertColumn		: "插入列",
@@ -106,6 +117,7 @@
 DeleteCells			: "删除单元格",
 MergeCells			: "合并单元格",
 SplitCell			: "拆分单元格",
+TableDelete			: "删除表格",
 CellProperties		: "单元格属性",
 TableProperties		: "表格属性",
 ImageProperties		: "图象属性",
@@ -122,7 +134,7 @@
 TextareaProp		: "多行文本属性",
 FormProp			: "表单属性",
 
-FontFormats			: "普通;带格式的;地址;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段落(DIV)",
+FontFormats			: "普通;已编排格式;地址;标题 1;标题 2;标题 3;标题 4;标题 5;标题 6;段落(DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "正在处理 XHTML,请稍等...",
@@ -133,7 +145,9 @@
 UnknownCommand		: "未知命令名称 \"%1\"",
 NotImplemented		: "命令无法执行",
 UnknownToolbarSet	: "工具栏设置 \"%1\" 不存在",
-NoActiveX			: "You 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
+NoActiveX			: "浏览器安全设置限制了本编辑器的某些功能。您必须启用安全设置中的“运行 ActiveX 控件和插件”,否则将出现某些错误并缺少功能。",
+BrowseServerBlocked : "无法打开资源浏览器,请确认是否启用了禁止弹出窗口。",
+DialogBlocked		: "无法打开对话框窗口,请确认是否启用了禁止弹出窗口或网页对话框(IE)。",
 
 // Dialogs
 DlgBtnOK			: "确定",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "关闭",
 DlgBtnBrowseServer	: "浏览服务器",
 DlgAdvancedTag		: "高级",
-DlgOpOther			: "&lt;其它&gt;",
+DlgOpOther			: "<其它>",
 DlgInfoTab			: "信息",
 DlgAlertUrl			: "请插入 URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;没有设置&gt;",
+DlgGenNotSet		: "<没有设置>",
 DlgGenId			: "ID",
 DlgGenLangDir		: "语言方向",
 DlgGenLangDirLtr	: "从左到右 (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "页内锚点链接",
 DlgLnkTypeEMail		: "电子邮件",
 DlgLnkProto			: "协议",
-DlgLnkProtoOther	: "&lt;其它&gt;",
+DlgLnkProtoOther	: "<其它>",
 DlgLnkURL			: "地址",
 DlgLnkAnchorSel		: "选择一个锚点",
 DlgLnkAnchorByName	: "按锚点名称",
 DlgLnkAnchorById	: "按锚点 ID",
-DlgLnkNoAnchors		: "&lt;此文档没有可用的锚点&gt;",
+DlgLnkNoAnchors		: "<此文档没有可用的锚点>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "地址",
 DlgLnkEMailSubject	: "主题",
 DlgLnkEMailBody		: "内容",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "发送到服务器上",
 
 DlgLnkTarget		: "目标",
-DlgLnkTargetFrame	: "&lt;框架&gt;",
-DlgLnkTargetPopup	: "&lt;弹出窗口&gt;",
+DlgLnkTargetFrame	: "<框架>",
+DlgLnkTargetPopup	: "<弹出窗口>",
 DlgLnkTargetBlank	: "新窗口 (_blank)",
 DlgLnkTargetParent	: "父窗口 (_parent)",
 DlgLnkTargetSelf	: "本窗口 (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "请输入超链接地址",
 DlnLnkMsgNoEMail	: "请输入电子邮件地址",
 DlnLnkMsgNoAnchor	: "请选择一个锚点",
+DlnLnkMsgInvPopName	: "弹出窗口名称必须以字母开头,并且不能含有空格。",
 
 // Color Dialog
 DlgColorTitle		: "选择颜色",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "列数",
 DlgTableBorder		: "边框",
 DlgTableAlign		: "对齐",
-DlgTableAlignNotSet	: "&lt;没有设置&gt;",
+DlgTableAlignNotSet	: "<没有设置>",
 DlgTableAlignLeft	: "左对齐",
 DlgTableAlignCenter	: "居中",
 DlgTableAlignRight	: "右对齐",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "间距",
 DlgTableCellPad		: "边距",
 DlgTableCaption		: "标题",
+DlgTableSummary		: "摘要",
 
 // Table Cell Dialog
 DlgCellTitle		: "单元格属性",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "百分比",
 DlgCellHeight		: "高度",
 DlgCellWordWrap		: "自动换行",
-DlgCellWordWrapNotSet	: "&lt;没有设置&gt;",
+DlgCellWordWrapNotSet	: "<没有设置>",
 DlgCellWordWrapYes	: "是",
 DlgCellWordWrapNo	: "否",
 DlgCellHorAlign		: "水平对齐",
-DlgCellHorAlignNotSet	: "&lt;没有设置&gt;",
+DlgCellHorAlignNotSet	: "<没有设置>",
 DlgCellHorAlignLeft	: "左对齐",
 DlgCellHorAlignCenter	: "居中",
 DlgCellHorAlignRight: "右对齐",
 DlgCellVerAlign		: "垂直对齐",
-DlgCellVerAlignNotSet	: "&lt;没有设置&gt;",
+DlgCellVerAlignNotSet	: "<没有设置>",
 DlgCellVerAlignTop	: "顶端",
 DlgCellVerAlignMiddle	: "居中",
 DlgCellVerAlignBottom	: "底部",
@@ -321,7 +337,6 @@
 DlgReplaceWordChk		: "全字匹配",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "您的浏览器安全设置不允许编辑器自动执行粘贴操作,请使用键盘快捷键(Ctrl+V)来完成。",
 PasteErrorCut	: "您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl+X)来完成。",
 PasteErrorCopy	: "您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl+C)来完成。",
 
@@ -329,11 +344,11 @@
 PasteFromWord	: "从 MS Word 粘贴",
 
 DlgPasteMsg2	: "请使用键盘快捷键(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下面的方框里,再按 <STRONG>确定</STRONG>。",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "忽略 Font 标签",
 DlgPasteRemoveStyles	: "清理 CSS 样式",
 DlgPasteCleanBox		: "清空上面内容",
 
-
 // Color Picker
 ColorAutomatic	: "自动",
 ColorMoreColors	: "其它颜色...",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "拼写检查插件还没安装,你是否想现在就下载?",
 
 // Button Dialog
-DlgButtonText	: "标签(值)",
-DlgButtonType	: "类型",
+DlgButtonText		: "标签(值)",
+DlgButtonType		: "类型",
+DlgButtonTypeBtn	: "按钮",
+DlgButtonTypeSbm	: "提交",
+DlgButtonTypeRst	: "重设",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "名称",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "项目列表属性",
 NumberedListProp	: "编号列表属性",
+DlgLstStart			: "开始序号",
 DlgLstType			: "列表类型",
 DlgLstTypeCircle	: "圆圈",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "圆点",
 DlgLstTypeSquare	: "方块",
 DlgLstTypeNumbers	: "æ•°å­— (1, 2, 3)",
 DlgLstTypeLCase		: "小写字母 (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "从右到左 (RTL)",
 DlgDocLangCode		: "语言代码",
 DlgDocCharSet		: "字符编码",
+DlgDocCharSetCE		: "中欧",
+DlgDocCharSetCT		: "繁体中文 (Big5)",
+DlgDocCharSetCR		: "西里尔文",
+DlgDocCharSetGR		: "希腊文",
+DlgDocCharSetJP		: "日文",
+DlgDocCharSetKR		: "韩文",
+DlgDocCharSetTR		: "土耳其文",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "西欧",
 DlgDocCharSetOther	: "其它字符编码",
 
 DlgDocDocType		: "文档类型",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "请选择编辑器内容模板<br>(当前内容将会被清除替换):",
 DlgTemplatesLoading	: "正在加载模板列表,请稍等...",
 DlgTemplatesNoTpl	: "(没有模板)",
+DlgTemplatesReplace	: "替换当前内容",
 
 // About Dialog
 DlgAboutAboutTab	: "关于",
 DlgAboutBrowserInfoTab	: "浏览器信息",
+DlgAboutLicenseTab	: "许可证",
 DlgAboutVersion		: "版本",
-DlgAboutLicense		: "基于 GNU 通用公共许可证授权发布 ",
 DlgAboutInfo		: "要获得更多信息请访问 "
-}
\ No newline at end of file
+};
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/lang/zh.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: zh.js
- * 	Chinese Traditional language file.
- * 
- * File Authors:
- * 		Zak Fong (zakfong at yahoo.com.tw)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Chinese Traditional language file.
  */
 
 var FCKLang =
@@ -84,7 +88,9 @@
 Find				: "尋找",
 Replace				: "取代",
 SpellCheck			: "拼字檢查",
-UniversalKeyboard	: "各國鍵盤",
+UniversalKeyboard	: "萬國鍵盤",
+PageBreakLbl		: "分頁符號",
+PageBreak			: "插入分頁符號",
 
 Form			: "表單",
 Checkbox		: "核取方塊",
@@ -96,8 +102,13 @@
 SelectionField	: "清單/選單",
 ImageButton		: "影像按鈕",
 
+FitWindow		: "編輯器最大化",
+
 // Context Menu
 EditLink			: "編輯超連結",
+CellCM				: "儲存格",
+RowCM				: "列",
+ColumnCM			: "欄",
 InsertRow			: "插入列",
 DeleteRows			: "刪除列",
 InsertColumn		: "插入欄",
@@ -106,6 +117,7 @@
 DeleteCells			: "刪除儲存格",
 MergeCells			: "合併儲存格",
 SplitCell			: "分割儲存格",
+TableDelete			: "刪除表格",
 CellProperties		: "儲存格屬性",
 TableProperties		: "表格屬性",
 ImageProperties		: "影像屬性",
@@ -122,18 +134,20 @@
 TextareaProp		: "文字區域屬性",
 FormProp			: "表單屬性",
 
-FontFormats			: "一般;格式化;地址;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;段落 (DIV)",
+FontFormats			: "本文;已格式化;位址;標題 1;標題 2;標題 3;標題 4;標題 5;標題 6;本文 (DIV)",		//REVIEW : Check _getfontformat.html
 
 // Alerts and Messages
 ProcessingXHTML		: "處理 XHTML 中,請稍候…",
 Done				: "完成",
-PasteWordConfirm	: "您想要貼上的文字似乎是自 Word 複製而來,請問您是否要先清除 Word 的格式後再行貼上?",
+PasteWordConfirm	: "您想貼上的文字似乎是自 Word 複製而來,請問您是否要先清除 Word 的格式後再行貼上?",
 NotCompatiblePaste	: "此指令僅在 Internet Explorer 5.5 或以上的版本有效。請問您是否同意不清除格式即貼上?",
 UnknownToolbarItem	: "未知工具列項目 \"%1\"",
 UnknownCommand		: "未知指令名稱 \"%1\"",
 NotImplemented		: "尚未安裝此指令",
 UnknownToolbarSet	: "工具列設定 \"%1\" 不存在",
-NoActiveX			: "You 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
+NoActiveX			: "瀏覽器的安全性設定限制了本編輯器的某些功能。您必須啟用安全性設定中的「執行ActiveX控制項與外掛程式」項目,否則本編輯器將會出現錯誤並缺少某些功能",
+BrowseServerBlocked : "無法開啟資源瀏覽器,請確定所有快顯視窗封鎖程式是否關閉",
+DialogBlocked		: "無法開啟對話視窗,請確定所有快顯視窗封鎖程式是否關閉",
 
 // Dialogs
 DlgBtnOK			: "確定",
@@ -141,12 +155,12 @@
 DlgBtnClose			: "關閉",
 DlgBtnBrowseServer	: "瀏覽伺服器端",
 DlgAdvancedTag		: "進階",
-DlgOpOther			: "&lt;其他&gt;",
+DlgOpOther			: "<其他>",
 DlgInfoTab			: "資訊",
 DlgAlertUrl			: "請插入 URL",
 
 // General Dialogs Labels
-DlgGenNotSet		: "&lt;尚未設定&gt;",
+DlgGenNotSet		: "<尚未設定>",
 DlgGenId			: "ID",
 DlgGenLangDir		: "語言方向",
 DlgGenLangDirLtr	: "由左而右 (LTR)",
@@ -210,12 +224,12 @@
 DlgLnkTypeAnchor	: "本頁錨點",
 DlgLnkTypeEMail		: "電子郵件",
 DlgLnkProto			: "通訊協定",
-DlgLnkProtoOther	: "&lt;其他&gt;",
+DlgLnkProtoOther	: "<其他>",
 DlgLnkURL			: "URL",
 DlgLnkAnchorSel		: "請選擇錨點",
 DlgLnkAnchorByName	: "依錨點名稱",
 DlgLnkAnchorById	: "依元件 ID",
-DlgLnkNoAnchors		: "&lt;本文件尚無可用之錨點&gt;",
+DlgLnkNoAnchors		: "<本文件尚無可用之錨點>",		//REVIEW : Change < and > with ( and )
 DlgLnkEMail			: "電子郵件",
 DlgLnkEMailSubject	: "郵件主旨",
 DlgLnkEMailBody		: "郵件內容",
@@ -223,8 +237,8 @@
 DlgLnkBtnUpload		: "傳送至伺服器",
 
 DlgLnkTarget		: "目標",
-DlgLnkTargetFrame	: "&lt;框架&gt;",
-DlgLnkTargetPopup	: "&lt;快顯視窗&gt;",
+DlgLnkTargetFrame	: "<框架>",
+DlgLnkTargetPopup	: "<快顯視窗>",
 DlgLnkTargetBlank	: "新視窗 (_blank)",
 DlgLnkTargetParent	: "父視窗 (_parent)",
 DlgLnkTargetSelf	: "本視窗 (_self)",
@@ -248,6 +262,7 @@
 DlnLnkMsgNoUrl		: "請輸入欲連結的 URL",
 DlnLnkMsgNoEMail	: "請輸入電子郵件位址",
 DlnLnkMsgNoAnchor	: "請選擇錨點",
+DlnLnkMsgInvPopName	: "快顯名稱必須以「英文字母」為開頭,且不得含有空白",
 
 // Color Dialog
 DlgColorTitle		: "請選擇顏色",
@@ -267,7 +282,7 @@
 DlgTableColumns		: "欄數",
 DlgTableBorder		: "邊框",
 DlgTableAlign		: "對齊",
-DlgTableAlignNotSet	: "&lt;未設定&gt;",
+DlgTableAlignNotSet	: "<未設定>",
 DlgTableAlignLeft	: "靠左對齊",
 DlgTableAlignCenter	: "置中",
 DlgTableAlignRight	: "靠右對齊",
@@ -278,6 +293,7 @@
 DlgTableCellSpace	: "間距",
 DlgTableCellPad		: "內距",
 DlgTableCaption		: "標題",
+DlgTableSummary		: "摘要",
 
 // Table Cell Dialog
 DlgCellTitle		: "儲存格屬性",
@@ -286,16 +302,16 @@
 DlgCellWidthPc		: "百分比",
 DlgCellHeight		: "高度",
 DlgCellWordWrap		: "自動換行",
-DlgCellWordWrapNotSet	: "&lt;尚未設定&gt;",
+DlgCellWordWrapNotSet	: "<尚未設定>",
 DlgCellWordWrapYes	: "是",
 DlgCellWordWrapNo	: "否",
 DlgCellHorAlign		: "水平對齊",
-DlgCellHorAlignNotSet	: "&lt;尚未設定&gt;",
+DlgCellHorAlignNotSet	: "<尚未設定>",
 DlgCellHorAlignLeft	: "靠左對齊",
 DlgCellHorAlignCenter	: "置中",
 DlgCellHorAlignRight: "靠右對齊",
 DlgCellVerAlign		: "垂直對齊",
-DlgCellVerAlignNotSet	: "&lt;尚未設定&gt;",
+DlgCellVerAlignNotSet	: "<尚未設定>",
 DlgCellVerAlignTop	: "靠上對齊",
 DlgCellVerAlignMiddle	: "置中",
 DlgCellVerAlignBottom	: "靠下對齊",
@@ -321,19 +337,18 @@
 DlgReplaceWordChk		: "全字相符",
 
 // Paste Operations / Dialog
-PasteErrorPaste	: "您的瀏覽器的安全性設定不允編輯器自動執行貼上動作。請使用快捷鍵 (Ctrl+V) 貼上。",
-PasteErrorCut	: "您的瀏覽器的安全性設定不允編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl+X) 剪下。",
-PasteErrorCopy	: "您的瀏覽器的安全性設定不允編輯器自動執行複製動作。請使用快捷鍵 (Ctrl+C) 複製。",
+PasteErrorCut	: "瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl+X) 剪下。",
+PasteErrorCopy	: "瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用快捷鍵 (Ctrl+C) 複製。",
 
 PasteAsText		: "貼為純文字格式",
 PasteFromWord	: "自 Word 貼上",
 
 DlgPasteMsg2	: "請使用快捷鍵 (<strong>Ctrl+V</strong>) 貼到下方區域中並按下 <strong>確定</strong>",
+DlgPasteSec		: "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.",	//MISSING
 DlgPasteIgnoreFont		: "移除字型設定",
 DlgPasteRemoveStyles	: "移除樣式設定",
 DlgPasteCleanBox		: "清除文字區域",
 
-
 // Color Picker
 ColorAutomatic	: "自動",
 ColorMoreColors	: "更多顏色…",
@@ -364,8 +379,11 @@
 IeSpellDownload			: "尚未安裝拼字檢查元件。您是否想要現在下載?",
 
 // Button Dialog
-DlgButtonText	: "顯示文字 (值)",
-DlgButtonType	: "é¡žåž‹",
+DlgButtonText		: "顯示文字 (值)",
+DlgButtonType		: "é¡žåž‹",
+DlgButtonTypeBtn	: "按鈕 (Button)",
+DlgButtonTypeSbm	: "送出 (Submit)",
+DlgButtonTypeRst	: "重設 (Reset)",
 
 // Checkbox and Radio Button Dialogs
 DlgCheckboxName		: "名稱",
@@ -414,9 +432,10 @@
 // Bulleted List Dialog
 BulletedListProp	: "項目清單屬性",
 NumberedListProp	: "編號清單屬性",
+DlgLstStart			: "起始編號",
 DlgLstType			: "清單類型",
 DlgLstTypeCircle	: "圓圈",
-DlgLstTypeDisc		: "Disc",	//MISSING
+DlgLstTypeDisc		: "圓點",
 DlgLstTypeSquare	: "方塊",
 DlgLstTypeNumbers	: "數字 (1, 2, 3)",
 DlgLstTypeLCase		: "小寫字母 (a, b, c)",
@@ -436,6 +455,15 @@
 DlgDocLangDirRTL	: "由右而左 (RTL)",
 DlgDocLangCode		: "語言代碼",
 DlgDocCharSet		: "字元編碼",
+DlgDocCharSetCE		: "中歐語系",
+DlgDocCharSetCT		: "正體中文 (Big5)",
+DlgDocCharSetCR		: "斯拉夫文",
+DlgDocCharSetGR		: "希臘文",
+DlgDocCharSetJP		: "日文",
+DlgDocCharSetKR		: "韓文",
+DlgDocCharSetTR		: "土耳其文",
+DlgDocCharSetUN		: "Unicode (UTF-8)",
+DlgDocCharSetWE		: "西歐語系",
 DlgDocCharSetOther	: "其他字元編碼",
 
 DlgDocDocType		: "文件類型",
@@ -465,11 +493,12 @@
 DlgTemplatesSelMsg	: "請選擇欲開啟的樣版<br> (原有的內容將會被清除):",
 DlgTemplatesLoading	: "讀取樣版清單中,請稍候…",
 DlgTemplatesNoTpl	: "(無樣版)",
+DlgTemplatesReplace	: "取代原有內容",
 
 // About Dialog
 DlgAboutAboutTab	: "關於",
 DlgAboutBrowserInfoTab	: "瀏覽器資訊",
+DlgAboutLicenseTab	: "許可證",
 DlgAboutVersion		: "版本",
-DlgAboutLicense		: "依據 GNU 較寬鬆公共許可證(LGPL)發佈",
 DlgAboutInfo		: "想獲得更多資訊請至 "
-}
\ No newline at end of file
+};
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/autogrow/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/autogrow/fckplugin.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/autogrow/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,92 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin: automatically resizes the editor until a configurable maximun
+ * height (FCKConfig.AutoGrowMax), based on its contents.
+ */
+
+var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
+
+function FCKAutoGrow_Check()
+{
+	var oInnerDoc = FCK.EditorDocument ;
+
+	var iFrameHeight, iInnerHeight ;
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
+		iInnerHeight = oInnerDoc.body.scrollHeight ;
+	}
+	else
+	{
+		iFrameHeight = FCK.EditorWindow.innerHeight ;
+		iInnerHeight = oInnerDoc.body.offsetHeight ;
+	}
+
+	var iDiff = iInnerHeight - iFrameHeight ;
+
+	if ( iDiff != 0 )
+	{
+		var iMainFrameSize = window.frameElement.offsetHeight ;
+
+		if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize > FCKConfig.AutoGrowMax )
+				iMainFrameSize = FCKConfig.AutoGrowMax ;
+		}
+		else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
+		{
+			iMainFrameSize += iDiff ;
+			if ( iMainFrameSize < FCKAutoGrow_Min )
+				iMainFrameSize = FCKAutoGrow_Min ;
+		}
+		else
+			return ;
+
+		window.frameElement.height = iMainFrameSize ;
+	}
+}
+
+FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
+
+function FCKAutoGrow_SetListeners()
+{
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+		return ;
+
+	FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;
+	FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;
+}
+
+if ( FCKBrowserInfo.IsIE )
+{
+//	FCKAutoGrow_SetListeners() ;
+	FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;
+}
+
+function FCKAutoGrow_CheckEditorStatus( sender, status )
+{
+	if ( status == FCK_STATUS_COMPLETE )
+		FCKAutoGrow_Check() ;
+}
+
+FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fck_placeholder.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fck_placeholder.html	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fck_placeholder.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_placeholder.html
- * 	Placeholder Plugin.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placeholder Plugin.
 -->
 <html>
 	<head>
@@ -32,11 +36,11 @@
 {
 	// First of all, translate the dialog box texts
 	oEditor.FCKLanguageManager.TranslatePage( document ) ;
-	
+
 	LoadSelected() ;
-	
+
 	// Show the "Ok" button.
-	window.parent.SetOkButton( true ) ;	
+	window.parent.SetOkButton( true ) ;
 }
 
 var eSelected = oEditor.FCKSelection.GetSelectedElement() ;
@@ -55,7 +59,7 @@
 function Ok()
 {
 	var sValue = document.getElementById('txtName').value ;
-	
+
 	if ( eSelected && eSelected._fckplaceholder == sValue )
 		return true ;
 
@@ -64,7 +68,7 @@
 		alert( FCKLang.PlaceholderErrNoName ) ;
 		return false ;
 	}
-	
+
 	if ( FCKPlaceholders.Exist( sValue ) )
 	{
 		alert( FCKLang.PlaceholderErrNameInUse ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	Plugin to insert "Placeholders" in the editor.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Plugin to insert "Placeholders" in the editor.
  */
 
 // Register the related command.
@@ -23,6 +27,7 @@
 // Create the "Plaholder" toolbar button.
 var oPlaceholderItem = new FCKToolbarButton( 'Placeholder', FCKLang.PlaceholderBtn ) ;
 oPlaceholderItem.IconPath = FCKPlugins.Items['placeholder'].Path + 'placeholder.gif' ;
+
 FCKToolbarItems.RegisterItem( 'Placeholder', oPlaceholderItem ) ;
 
 
@@ -81,19 +86,24 @@
 // Check if a Placholder name is already in use.
 FCKPlaceholders.Exist = function( name )
 {
-	var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' )
+	var aSpans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;
 
 	for ( var i = 0 ; i < aSpans.length ; i++ )
 	{
 		if ( aSpans[i]._fckplaceholder == name )
 			return true ;
 	}
+
+	return false ;
 }
 
 if ( FCKBrowserInfo.IsIE )
 {
 	FCKPlaceholders.Redraw = function()
 	{
+		if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+			return ;
+
 		var aPlaholders = FCK.EditorDocument.body.innerText.match( /\[\[[^\[\]]+\]\]/g ) ;
 		if ( !aPlaholders )
 			return ;
@@ -114,11 +124,14 @@
 {
 	FCKPlaceholders.Redraw = function()
 	{
+		if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+			return ;
+
 		var oInteractor = FCK.EditorDocument.createTreeWalker( FCK.EditorDocument.body, NodeFilter.SHOW_TEXT, FCKPlaceholders._AcceptNode, true ) ;
 
 		var	aNodes = new Array() ;
 
-		while ( oNode = oInteractor.nextNode() )
+		while ( ( oNode = oInteractor.nextNode() ) )
 		{
 			aNodes[ aNodes.length ] = oNode ;
 		}
@@ -147,7 +160,7 @@
 
 			aNodes[n].parentNode.removeChild( aNodes[n] ) ;
 		}
-		
+
 		FCKPlaceholders._SetupClickListener() ;
 	}
 
@@ -162,9 +175,6 @@
 
 FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKPlaceholders.Redraw ) ;
 
-// The "Redraw" method must be called on startup.
-FCKPlaceholders.Redraw() ;
-
 // We must process the SPAN tags to replace then with the real resulting value of the placeholder.
 FCKXHtml.TagProcessors['span'] = function( node, htmlNode )
 {

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/de.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/de.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/de.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: de.js
- * 	Placholder German language file.
- * 
- * File Authors:
- * 		José Fontanil
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder German language file.
  */
 FCKLang.PlaceholderBtn			= 'Einfügen/editieren Platzhalter' ;
 FCKLang.PlaceholderDlgTitle		= 'Platzhalter Eigenschaften' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/en.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/en.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/en.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: en.js
- * 	Placholder English language file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder English language file.
  */
 FCKLang.PlaceholderBtn			= 'Insert/Edit Placeholder' ;
 FCKLang.PlaceholderDlgTitle		= 'Placeholder Properties' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/fr.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/fr.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/fr.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fr.js
- * 	Placholder Italian language file.
- * 
- * File Authors:
- * 		Hubert Garrido (liane at users.sourceforge.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Italian language file.
  */
 FCKLang.PlaceholderBtn			= 'Insérer/Modifier Substitut' ;
 FCKLang.PlaceholderDlgTitle		= 'Propriétés de Substitut' ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/it.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/it.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/it.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: it.js
- * 	Placholder Italian language file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Italian language file.
  */
 FCKLang.PlaceholderBtn			= 'Aggiungi/Modifica Placeholder' ;
 FCKLang.PlaceholderDlgTitle		= 'Proprietà del Placeholder' ;

Added: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/pl.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/pl.js	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/lang/pl.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,27 @@
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Placholder Polish language file.
+ */
+FCKLang.PlaceholderBtn			= 'Wstaw/Edytuj nagłówek' ;
+FCKLang.PlaceholderDlgTitle		= 'Właśności nagłówka' ;
+FCKLang.PlaceholderDlgName		= 'Nazwa nagłówka' ;
+FCKLang.PlaceholderErrNoName	= 'Proszę wprowadzić nazwę nagłówka' ;
+FCKLang.PlaceholderErrNameInUse	= 'Podana nazwa jest już w użyciu' ;
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/placeholder/placeholder.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/simplecommands/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/simplecommands/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/simplecommands/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,28 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	This plugin register Toolbar items for the combos modifying the style to 
- * 	not show the box.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register Toolbar items for the combos modifying the style to
+ * not show the box.
  */
 
-FCKToolbarItems.RegisterItem( 'SourceSimple'	, new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true ) ) ;
+FCKToolbarItems.RegisterItem( 'SourceSimple'	, new FCKToolbarButton( 'Source', FCKLang.Source, null, FCK_TOOLBARITEM_ONLYICON, true, true, 1 ) ) ;
 FCKToolbarItems.RegisterItem( 'StyleSimple'		, new FCKToolbarStyleCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
 FCKToolbarItems.RegisterItem( 'FontNameSimple'	, new FCKToolbarFontsCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;
 FCKToolbarItems.RegisterItem( 'FontSizeSimple'	, new FCKToolbarFontSizeCombo( null, FCK_TOOLBARITEM_ONLYTEXT ) ) ;

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/plugins/tablecommands/fckplugin.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/plugins/tablecommands/fckplugin.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/plugins/tablecommands/fckplugin.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,28 +1,32 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckplugin.js
- * 	This plugin register the required Toolbar items to be able to insert the
- * 	toolbar commands in the toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This plugin register the required Toolbar items to be able to insert the
+ * toolbar commands in the toolbar.
  */
 
-FCKToolbarItems.RegisterItem( 'TableInsertRow'		, new FCKToolbarButton( 'TableInsertRow'	, FCKLang.InsertRow ) ) ;
-FCKToolbarItems.RegisterItem( 'TableDeleteRows'		, new FCKToolbarButton( 'TableDeleteRows'	, FCKLang.DeleteRows ) ) ;
-FCKToolbarItems.RegisterItem( 'TableInsertColumn'	, new FCKToolbarButton( 'TableInsertColumn'	, FCKLang.InsertColumn ) ) ;
-FCKToolbarItems.RegisterItem( 'TableDeleteColumns'	, new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns ) ) ;
-FCKToolbarItems.RegisterItem( 'TableInsertCell'		, new FCKToolbarButton( 'TableInsertCell'	, FCKLang.InsertCell ) ) ;
-FCKToolbarItems.RegisterItem( 'TableDeleteCells'	, new FCKToolbarButton( 'TableDeleteCells'	, FCKLang.DeleteCells ) ) ;
-FCKToolbarItems.RegisterItem( 'TableMergeCells'		, new FCKToolbarButton( 'TableMergeCells'	, FCKLang.MergeCells ) ) ;
-FCKToolbarItems.RegisterItem( 'TableSplitCell'		, new FCKToolbarButton( 'TableSplitCell'	, FCKLang.SplitCell ) ) ;
\ No newline at end of file
+FCKToolbarItems.RegisterItem( 'TableInsertRow'		, new FCKToolbarButton( 'TableInsertRow'	, FCKLang.InsertRow, null, null, null, null, 62 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteRows'		, new FCKToolbarButton( 'TableDeleteRows'	, FCKLang.DeleteRows, null, null, null, null, 63 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertColumn'	, new FCKToolbarButton( 'TableInsertColumn'	, FCKLang.InsertColumn, null, null, null, null, 64 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteColumns'	, new FCKToolbarButton( 'TableDeleteColumns', FCKLang.DeleteColumns, null, null, null, null, 65 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableInsertCell'		, new FCKToolbarButton( 'TableInsertCell'	, FCKLang.InsertCell, null, null, null, null, 58 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableDeleteCells'	, new FCKToolbarButton( 'TableDeleteCells'	, FCKLang.DeleteCells, null, null, null, null, 59 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableMergeCells'		, new FCKToolbarButton( 'TableMergeCells'	, FCKLang.MergeCells, null, null, null, null, 60 ) ) ;
+FCKToolbarItems.RegisterItem( 'TableSplitCell'		, new FCKToolbarButton( 'TableSplitCell'	, FCKLang.SplitCell, null, null, null, null, 61 ) ) ;
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/editor/skins/_fckviewstrips.html
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/_fckviewstrips.html	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/_fckviewstrips.html	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Useful page that enumerates all icons in the skins strips.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>FCKeditor - View Icons Strips</title>
+	<style type="text/css">
+		.TB_Button_Image
+		{
+			overflow: hidden;
+			width: 16px;
+			height: 16px;
+			margin: 3px;
+			background-repeat: no-repeat;
+		}
+
+		.TB_Button_Image img
+		{
+			position: relative;
+		}
+	</style>
+	<script type="text/javascript">
+
+window.onload = function()
+{
+	var eImg1 = document.createElement( 'img' ) ;
+	eImg1.onload = Img_OnLoad ;
+	eImg1.src = 'default/fck_strip.gif' ;
+
+	var eImg2 = document.createElement( 'img' ) ;
+	eImg2.onload = Img_OnLoad ;
+	eImg2.src = 'office2003/fck_strip.gif' ;
+
+	var eImg3 = document.createElement( 'img' ) ;
+	eImg3.onload = Img_OnLoad ;
+	eImg3.src = 'silver/fck_strip.gif' ;
+}
+
+var iTotalStrips = 3 ;
+var iMaxHeight = 0 ;
+
+function Img_OnLoad()
+{
+	if ( iMaxHeight < this.height )
+		iMaxHeight = this.height ;
+
+	iTotalStrips-- ;
+
+	if ( iTotalStrips == 0 )
+		LoadIcons( iMaxHeight / 16 ) ;
+}
+
+function LoadIcons( total )
+{
+	var xIconsTable = document.getElementById( 'xIconsTable' ) ;
+
+	for ( var i = 0 ; i < total ; i++ )
+	{
+		var eRow = xIconsTable.insertRow(-1) ;
+
+		var eCell = eRow.insertCell(-1) ;
+		eCell.innerHTML = i + 1 ;
+
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="default/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;
+
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="office2003/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;
+
+		eCell = eRow.insertCell(-1) ;
+		eCell.align = 'center' ;
+		eCell.style.border = '#dcdcdc 1px solid' ;
+		eCell.innerHTML = '<div class="TB_Button_Image"><img src="silver/fck_strip.gif" style="top:-' + ( i * 16 ) + 'px;"><\/div>' ;
+	}
+}
+
+	</script>
+</head>
+<body>
+	<table id="xIconsTable">
+		<tr>
+			<td rowspan="2">
+				Index</td>
+			<td align="center" colspan="3">
+				Skins</td>
+		</tr>
+		<tr>
+			<td width="80" align="center">
+				default</td>
+			<td width="80" align="center">
+				office2003</td>
+			<td width="80" align="center">
+				silver</td>
+		</tr>
+	</table>
+</body>
+</html>

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_contextmenu.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_contextmenu.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_contextmenu.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,245 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_contextmenu.css
- * 	Styles used by the context menu and panels.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-.CM_ContextMenu, .CM_ContextMenu *
-{
-	font-size: 11px;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.CM_ContextMenu
-{
-	border: 1px solid #8f8f73;
-	padding: 2px;
-	background-color: #ffffff;
-}
-
-.CM_Option, .CM_Over, .CM_Disabled
-{
-	padding: 0px 3px;
-	height: 18px;
-	cursor: default;
-}
-
-.CM_Option, .CM_Over
-{
-	cursor: hand;
-}
-
-.CM_Option .CM_Icon, .CM_Disabled .CM_Icon, .CM_Separator .CM_Icon
-{
-	background-color: #e3e3c7;
-}
-
-.CM_Option .CM_Icon IMG
-{
-	filter: alpha(opacity=70);
-	-moz-opacity:0.70;
-}
-
-.CM_Disabled 
-{
-	background-color: #ffffff;
-}
-
-.CM_Disabled .CM_Icon IMG, .CM_Disabled .CM_Label
-{
-	filter: gray() alpha(opacity=30);
-	-moz-opacity:0.30;
-}
-
-.CM_Option .CM_Label, .CM_Over .CM_Label
-{
-	padding: 1px 10px 1px 3px;
-}
-
-.CM_Over
-{
-	color: #fff;
-	background-color: #8f8f73;
-}
-
-.CM_Over .CM_Icon
-{
-	background-color: #737357;
-}
-
-.CM_Separator TD
-{
-	height: 3px;
-}
-
-.CM_Separator .CM_Label DIV
-{
-	border-top: #b9b99d 1px solid;
-	margin-left: 2px;
-	margin-right: 3px;
-}
-
-/*
-	### Panel Styles
-*/
-
-.FCK_Panel
-{
-	border: #8f8f73 1px solid;
-	padding: 2px;
-	background-color: #ffffff;
-}
-
-.FCK_Panel, .FCK_Panel TD
-{
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-	font-size: 11px;
-}
-
-/*
-	### Color Selector Panel
-*/
-
-.ColorBoxBorder
-{
-	border: #808080 1px solid;
-	position: static;
-}
-
-.ColorBox
-{
-	font-size: 1px;
-	width: 10px;
-	position: static;
-	height: 10px;
-}
-
-.ColorDeselected, .ColorSelected
-{
-	cursor: default;
-}
-
-.ColorDeselected
-{
-	border: #ffffff 1px solid;
-	padding: 2px;
-	float: left;
-}
-
-.ColorSelected
-{
-	border: #330066 1px solid;
-	padding: 2px;
-	float: left;
-	background-color: #c4cdd6;
-}
-
-/*
-	### Special Combos
-*/
-
-.SC_Panel
-{
-	overflow-y: auto;
-	white-space: nowrap;
-	cursor: default;
-}
-
-.SC_Item, .SC_ItemSelected
-{
-	margin-top: 2px;
-	margin-bottom: 2px;
-	background-position: left center;
-	padding-left: 11px;
-	padding-right: 3px;
-	padding-top: 2px;
-	padding-bottom: 2px;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	width: 100%;
-	background-repeat: no-repeat;
-	border: #dddddd 1px solid;
-}
-
-.SC_Item *, .SC_ItemSelected *
-{
-	margin-top: 0px;
-	margin-bottom: 0px;
-}
-
-.SC_ItemSelected
-{
-	border: #9a9afb 1px solid;
-	background-image: url(images/toolbar.arrowright.gif);
-}
-
-.SC_ItemOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_Field
-{
-	border: #b7b7a6 1px solid;
-	cursor: default;
-}
-
-.SC_FieldCaption
-{
-	overflow: visible;
-	padding-right: 5px;
-	padding-left: 5px;
-	filter: alpha(opacity=70);
-	-moz-opacity:0.75;
-	height: 23px;
-	background-color: #efefde;
-}
-
-.SC_FieldLabel
-{
-	white-space: nowrap;
-	padding: 2px;
-	width: 100%;
-	cursor: default;
-	background-color: #ffffff;
-	text-overflow: ellipsis;
-	overflow: hidden;
-}
-
-.SC_FieldButton
-{
-	background-position: center center;
-	background-image: url(images/toolbar.buttonarrow.gif);
-	border-left: #b7b7a6 1px solid;
-	width: 14px;
-	background-repeat: no-repeat;
-}
-
-.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
-{
-	filter: gray() alpha(opacity=30);
-	-moz-opacity:0.30;
-}
-
-.SC_FieldOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_FieldOver .SC_FieldButton
-{
-	border-left: #316ac5 1px solid;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_dialog.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_dialog.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_dialog.css
- * 	Styles used by the dialog boxes.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
  */
 
 body
@@ -58,14 +62,16 @@
 
 .Button
 {
-	border-right: #737357 1px solid;
-	border-top: #737357 1px solid;
-	border-left: #737357 1px solid;
+	border: #737357 1px solid;
 	color: #3b3b1f;
-	border-bottom: #737357 1px solid;
 	background-color: #c7c78f;
 }
 
+#btnOk
+{
+	width: 100px;
+}
+
 .DarkBackground
 {
 	background-color: #d7d79f;
@@ -124,8 +130,8 @@
 
 .PopupSelectionBox
 {
-	border: #ff9933 1px solid;
-	background-color: #fffacd;
+	border: #ff9933 1px solid !important;
+	background-color: #fffacd !important;
 	cursor: pointer;
 	cursor: hand;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_editor.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_editor.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_editor.css
- * 	Styles used by the editor IFRAME and Toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
  */
 
 /*
@@ -23,128 +27,438 @@
 
 body
 {
-	padding: 1px 1px 1px 1px;
-	margin: 0px 0px 0px 0px;
+    padding: 1px 1px 1px 1px;
+    margin: 0px 0px 0px 0px;
 }
 
-#eWysiwygCell, .Source
+#xEditingArea
 {
-	border: #696969 1px solid;
+    border: #696969 1px solid;
 }
 
-#eSourceField
+.SourceField
 {
-	border: none;
-	padding: 5px;
-	font-family: Monospace;
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
 }
 
 /*
-	### Toolbar Styles
+	Toolbar
 */
 
 .TB_ToolbarSet, .TB_Expand, .TB_Collapse
 {
-	background-color: #efefde;
+    cursor: default;
+    background-color: #efefde;
 }
 
-.TB_End
+.TB_ToolbarSet
 {
-	display: none;
+    border-top: #efefde 1px outset;
+    border-bottom: #efefde 1px outset;
 }
 
-.TB_ExpandImg
+.TB_ToolbarSet TD
 {
-	background-image: url(images/toolbar.expand.gif);
-	background-repeat: no-repeat;
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
 }
 
-.TB_CollapseImg
+.TB_Toolbar
 {
-	background-image: url(images/toolbar.collapse.gif);
-	background-repeat: no-repeat;
+	height: 24px;
+    display: inline-table;	/* inline = Opera jumping buttons bug */
 }
 
-.TB_ToolbarSet
+.TB_Separator
 {
-	border-top: #efefde 1px outset;
-	border-bottom: #efefde 1px outset;
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #999966;
 }
 
-.TB_SideBorder
+.TB_Start
 {
-	background-color: #696969;
+    background-image: url(images/toolbar.start.gif);
+    margin: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 16px;
 }
 
-.TB_ToolbarSet, .TB_ToolbarSet *
+.TB_End
 {
-	font-size: 11px;
-	cursor: default;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    display: none;
 }
 
+.TB_ExpandImg
+{
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
+.TB_SideBorder
+{
+    background-color: #696969;
+}
+
 .TB_Expand, .TB_Collapse
 {
-	padding: 2px 2px 2px 2px;
-	border: #efefde 1px outset;
+    padding: 2px 2px 2px 2px;
+    border: #efefde 1px outset;
 }
 
 .TB_Collapse
 {
-	border: #efefde 1px outset;
-	width: 5px;
+    width: 5px;
 }
 
-.TB_Button_On, .TB_Button_Off, .TB_Button_Disabled, .TB_Combo_Off, .TB_Combo_Disabled
+.TB_Break
 {
-	border: #efefde 1px solid;
-	height: 21px;
+    height: 24px; /* IE needs the height to be set, otherwise no break */
 }
 
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    border: #efefde 1px solid; /* This is the default border */
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
 .TB_Button_On
 {
-	border-color: #316ac5;
-	background-color: #c1d2ee;
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
 }
 
-.TB_Button_Off, .TB_Combo_Off
+.TB_Button_On_Over, .TB_Button_Off_Over
 {
-	filter: alpha(opacity=70);
-	-moz-opacity: 0.70;
-	background-color: #efefde;
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
 }
 
-.TB_Button_Disabled, .TB_Combo_Disabled
+.TB_Button_Off
 {
-	filter: gray() alpha(opacity=30);
-	-moz-opacity: 0.30;
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
 }
 
-.TB_Button_On_Over, .TB_Button_Off_Over
+.TB_Button_Disabled
 {
-	background-color: #dff1ff;
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
 }
 
-.TB_Icon DIV
+.TB_Button_Padding
 {
-	width: 21px;
-	height: 21px;
-	background-position: 50% 50%;
-	background-repeat: no-repeat;
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
 }
 
+.TB_Button_Image
+{
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #efefde;  /* Needed because of a bug on Clear Type */
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
 .TB_Text
 {
-	height: 21px;
-	padding-right: 5px;
+	height: 22px;
 }
 
-.TB_ButtonArrow
+.TB_Button_Off .TB_Text
 {
-	padding-right: 3px;
+   	background-color: #efefde ;  /* Needed because of a bug on ClearType */
 }
 
-.TB_Break
+.TB_Button_On_Over .TB_Text
 {
-	height: 23px;
-}
\ No newline at end of file
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #ffffff;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #e3e3c7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8f8f73;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #737357;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #efefde;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_strip.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/fck_strip.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/images/toolbar.start.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/about.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/anchor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bgcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bold.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/bulletedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/button.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/checkbox.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/copy.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/cut.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/docprops.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/find.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/flash.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/form.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/hiddenfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/image.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/imagebutton.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/indent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/inserthorizontalrule.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/insertorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/insertunorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/italic.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifycenter.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyfull.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyleft.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/justifyright.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/link.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/newpage.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/numberedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/outdent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pagebreak.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/paste.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pastetext.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/pasteword.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/preview.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/print.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/radio.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/redo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/removeformat.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/replace.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/save.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/select.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/selectall.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/showdetails.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/showtableborders.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/smiley.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/source.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/specialchar.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/spellcheck.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/strikethrough.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/subscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/superscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/table.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablecell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeletecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeletecolumns.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tabledeleterows.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertcolumn.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tableinsertrow.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablemergecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/tablesplitcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/templates.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textarea.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/textfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/underline.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/undo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/universalkey.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/unlink.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/default/toolbar/unorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_contextmenu.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_contextmenu.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_contextmenu.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,250 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_contextmenu.css
- * 	Styles used by the context menu.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-.CM_ContextMenu, .CM_ContextMenu *
-{
-	font-size: 11px;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.CM_ContextMenu
-{
-	border: 1px solid #8f8f73;
-	padding: 2px;
-	background-color: #f7f8fd;
-}
-
-.CM_Option, .CM_Over, .CM_Disabled
-{
-	padding: 0px 3px;
-	height: 18px;
-	cursor: default;
-}
-
-.CM_Option, .CM_Over
-{
-	cursor: hand;
-}
-
-.CM_Option .CM_Icon, .CM_Disabled .CM_Icon, .CM_Separator .CM_Icon
-{
-	background-color: #d6dff7;
-}
-
-.CM_Option .CM_Icon IMG
-{
-	filter: alpha(opacity=70);
-	-moz-opacity: 0.70;
-}
-
-.CM_Disabled 
-{
-	background-color: #ffffff;
-}
-
-.CM_Disabled .CM_Icon IMG, .CM_Disabled .CM_Label
-{
-	filter: gray() alpha(opacity=30);
-	-moz-opacity: 0.30;
-}
-
-.CM_Option .CM_Label, .CM_Over .CM_Label
-{
-	padding: 1px 10px 1px 3px;
-}
-
-.CM_Over
-{
-	color: #ffffff;
-	background-color: #7096FA;
-}
-
-.CM_Over .CM_Icon
-{
-	background-color: #466ca6;
-}
-
-.CM_Separator TD
-{
-	height: 3px;
-}
-
-.CM_Separator .CM_Label DIV
-{
-	border-top: #b9b99d 1px solid;
-	margin-left: 2px;
-	margin-right: 3px;
-}
-
-/*
-	### Panel Styles
-*/
-
-.FCK_Panel
-{
-	border: #8f8f73 1px solid;
-	padding: 2px;
-	background-color: #f7f8fd;
-}
-
-.FCK_Panel, .FCK_Panel TD
-{
-	font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
-	font-size: 11px;
-}
-
-/*
-	### Color Selector Panel
-*/
-
-.ColorBoxBorder
-{
-	border: #808080 1px solid;
-	position: static;
-}
-
-.ColorBox
-{
-	font-size: 1px;
-	width: 10px;
-	position: static;
-	height: 10px;
-}
-
-.ColorDeselected, .ColorSelected
-{
-	cursor: default;
-}
-
-.ColorDeselected
-{
-	border: #ffffff 1px solid;
-	padding: 2px;
-	float: left;
-}
-
-.ColorSelected *
-{
-	color: #ffffff;
-}
-
-.ColorSelected 
-{
-	border: #7096FA 1px solid;
-	padding: 2px;
-	float: left;
-	background-color: #7096FA;
-}
-
-/*
-	### Special Combos
-*/
-
-.SC_Panel
-{
-	overflow-y: auto;
-	white-space: nowrap;
-	cursor: default;
-}
-
-.SC_Item, .SC_ItemSelected
-{
-	margin-top: 2px;
-	margin-bottom: 2px;
-	background-position: left center;
-	padding-left: 11px;
-	padding-right: 3px;
-	padding-top: 2px;
-	padding-bottom: 2px;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	width: 100%;
-	background-repeat: no-repeat;
-	border: #dddddd 1px solid;
-}
-
-.SC_Item *, .SC_ItemSelected *
-{
-	margin-top: 0px;
-	margin-bottom: 0px;
-}
-
-.SC_ItemSelected
-{
-	border: #9a9afb 1px solid;
-	background-image: url(images/toolbar.arrowright.gif);
-}
-
-.SC_ItemOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_Field
-{
-	border: #b7b7a6 1px solid;
-	cursor: default;
-}
-
-.SC_FieldCaption
-{
-	overflow: visible;
-	padding-right: 5px;
-	padding-left: 5px;
-	filter: alpha(opacity=70); 
-	-moz-opacity:0.75;
-	height: 23px;
-	background-color: #f7f8fd;
-}
-
-.SC_FieldLabel
-{
-	white-space: nowrap;
-	padding: 2px;
-	width: 100%;
-	cursor: default;
-	background-color: #ffffff;
-	text-overflow: ellipsis;
-	overflow: hidden;
-}
-
-.SC_FieldButton
-{
-	background-position: center center;
-	background-image: url(images/toolbar.buttonarrow.gif);
-	border-left: #b7b7a6 1px solid;
-	width: 14px;
-	background-repeat: no-repeat;
-}
-
-.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
-{
-	filter: gray() alpha(opacity=30); 
-	-moz-opacity:0.30;
-}
-
-.SC_FieldOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_FieldOver .SC_FieldButton
-{
-	border-left: #316ac5 1px solid;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_dialog.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_dialog.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_dialog.css
- * 	Styles used by the dialog boxes.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
  */
 
 body
@@ -64,6 +68,11 @@
 	background-color: #7096d3;
 }
 
+#btnOk
+{
+	width: 100px;
+}
+
 .DarkBackground
 {
 	background-color: #d7d79f;
@@ -122,8 +131,8 @@
 
 .PopupSelectionBox
 {
-	border: #1e90ff 1px solid;
-	background-color: #add8e6;
+	border: #1e90ff 1px solid !important;
+	background-color: #add8e6 !important;
 	cursor: pointer;
 	cursor: hand;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_editor.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_editor.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_editor.css
- * 	Styles used by the editor IFRAME and Toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		Aziz Oraij (aziz at oraij.com)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
  */
 
 /*
@@ -24,120 +27,450 @@
 
 body
 {
-	padding: 1px 1px 1px 1px;
-	margin: 0px 0px 0px 0px;
+    padding: 1px 1px 1px 1px;
+    margin: 0px 0px 0px 0px;
 }
 
-#eWysiwygCell, .Source
+#xEditingArea
 {
-	border: #696969 1px solid;
+    border: #696969 1px solid;
 }
 
-#eSourceField
+.SourceField
 {
-	border: none;
-	padding: 5px;
-	font-family: Monospace;
+    padding: 5px;
+    margin: 0px;
+    font-family: Monospace;
 }
 
 /*
-	### Toolbar Styles
+	Toolbar
 */
 
 .TB_ToolbarSet, .TB_Expand, .TB_Collapse
 {
-	background-color: #f7f8fd;
+    cursor: default;
+    background-color: #f7f8fd;
 }
 
+.TB_ToolbarSet
+{
+    border-top: #f7f8fd 1px outset;
+    border-bottom: #f7f8fd 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
 .TB_Toolbar
 {
-	background-color: #d6dff7;
+   	background-color: #d6dff7;
 	background-image: url(images/toolbar.bg.gif);
 	background-repeat: repeat-x;
+    display: inline-table;
 }
 
-.TB_ExpandImg
+.TB_Separator
 {
-	background-image: url(images/toolbar.expand.gif);
-	background-repeat: no-repeat;
+    width: 1px;
+    height: 16px;
+    margin: 2px;
+    background-color: #B2CBFF;
 }
 
-.TB_CollapseImg
+.TB_Start
 {
-	background-image: url(images/toolbar.collapse.gif);
-	background-repeat: no-repeat;
+    background-image: url(images/toolbar.start.gif);
+    background-repeat: no-repeat;
+    background-position: center center;
+    margin: 0px;
+    width: 7px;
+    height: 24px;
 }
 
-.TB_ToolbarSet
+.TB_End
 {
-	border-top: #efefde 1px outset;
-	border-bottom: #efefde 1px outset;
+    background-image: url(images/toolbar.end.gif);
+    background-repeat: no-repeat;
+    background-position: center left;
+    height: 24px;
+    width: 4px;
 }
 
-.TB_ToolbarSet, .TB_ToolbarSet *
+.TB_ExpandImg
 {
-	font-size: 11px;
-	cursor: default;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    background-image: url(images/toolbar.expand.gif);
+    background-repeat: no-repeat;
 }
 
+.TB_CollapseImg
+{
+    background-image: url(images/toolbar.collapse.gif);
+    background-repeat: no-repeat;
+}
+
 .TB_SideBorder
 {
-	background-color: #696969;
+    background-color: #696969;
 }
 
 .TB_Expand, .TB_Collapse
 {
-	padding: 2px 2px 2px 2px;
-	border: #efefde 1px outset;
+    padding: 2px 2px 2px 2px;
+    border: #f7f8fd 1px outset;
 }
 
 .TB_Collapse
 {
-	border: #efefde 1px outset;
-	width: 5px;
+    width: 5px;
 }
 
-.TB_Button_On, .TB_Button_Off, .TB_Button_Disabled, .TB_Combo_Off, .TB_Combo_Disabled
+.TB_Break
 {
-	border: #efefde 1px solid;
-	height: 21px;
+    height: 24px; /* IE needs the height to be set, otherwise no break */
 }
 
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
+{
+    margin: 1px;
+    height: 22px; /* The height is necessary, otherwise IE will not apply the alpha */
+}
+
 .TB_Button_On
 {
-	border-color: #316ac5;
-	background-color: #c1d2ee;
+    margin: 0px;
+    border: #316ac5 1px solid;
+    background-color: #c1d2ee;
 }
 
-.TB_Button_Off, .TB_Combo_Off
+.TB_Button_On_Over, .TB_Button_Off_Over
 {
-	filter: alpha(opacity=70);
-	-moz-opacity: 0.70;
-	background-color: #f7f8fd;
+    margin: 0px ;
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
 }
 
-.TB_Button_Disabled, .TB_Combo_Disabled
+.TB_Button_Off
 {
-	filter: gray() alpha(opacity=30);
-	-moz-opacity: 0.30;
+    filter: alpha(opacity=70); /* IE */
+    opacity: 0.70; /* Safari, Opera and Mozilla */
 }
 
-.TB_Icon DIV
+.TB_Button_Disabled
 {
-	width: 21px;
-	height: 21px;
-	background-position: 50% 50%;
-	background-repeat: no-repeat;
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
 }
 
-.TB_Text
+.TB_Button_Padding
 {
-	height: 21px;
-	padding-right: 5px;
+    visibility: hidden;
+    width: 3px;
+    height: 22px;
 }
 
-.TB_Break
+.TB_Button_Image
 {
-	height: 23px;
-}
\ No newline at end of file
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    background-repeat: no-repeat;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_Button_Off .TB_Button_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #f7f8fd;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+.TB_Button_Off .TB_Text
+{
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+}
+
+.TB_Button_On_Over .TB_Text
+{
+   	background-color: #dff1ff ;  /* Needed because of a bug on ClearType */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f8fd;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #d6dff7;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #7096FA;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #466ca6;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #f7f8fd;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #f7f8fd;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #f7f8fd;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top: 2px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+   	background-color: #d6dff7;  /* Needed because of a bug on ClearType */
+	background-image: url(images/toolbar.bg.gif);
+	background-repeat: repeat-x;
+/*    background-color:  inherit;     Maybe this is needed wait to check */
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #330066 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c4cdd6;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_strip.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/fck_strip.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/images/toolbar.end.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/images/toolbar.start.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/about.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/anchor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bgcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bold.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/bulletedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/button.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/checkbox.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/copy.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/cut.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/docprops.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/find.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/flash.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/fontstyleadv.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/form.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/hidden.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/hiddenfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/image.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/imagebutton.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/indent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/input.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/inserthorizontalrule.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/insertorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/insertunorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/italic.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifycenter.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyfull.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyleft.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/justifyright.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/link.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/mail.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/new.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/newpage.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/numberedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/open.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/outdent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pagebreak.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/paste.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pastetext.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/pasteword.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/preview.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/print.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/radio.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/redo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/removeformat.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/replace.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/save.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/select.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/selectall.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/showdetails.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/showtableborders.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/smiley.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/source.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/specialchar.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/spellcheck.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/strikethrough.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/subscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/superscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/table.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablecell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeletecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeletecolumns.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tabledeleterows.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertcolumn.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tableinsertrow.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablemergecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/tablesplitcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/templates.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textarea.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/textfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/underline.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/undo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/universalkey.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/unlink.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/office2003/toolbar/unorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_contextmenu.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_contextmenu.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_contextmenu.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,247 +0,0 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_contextmenu.css
- * 	Styles used by the context menu.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- */
-
-.CM_ContextMenu, .CM_ContextMenu *
-{
-	font-size: 11px;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.CM_ContextMenu
-{
-	border: 1px solid #8f8f73;
-	padding: 2px;
-	background-color: #f7f7f7;
-}
-
-.CM_Option, .CM_Over, .CM_Disabled
-{
-	padding: 0px 3px;
-	height: 18px;
-	cursor: default;
-}
-
-.CM_Option, .CM_Over
-{
-	cursor: hand;
-}
-
-.CM_Option .CM_Icon, .CM_Disabled .CM_Icon, .CM_Separator .CM_Icon
-{
-	background-color: #dedede;
-}
-
-.CM_Option .CM_Icon IMG
-{
-	filter: alpha(opacity=70);
-	-moz-opacity: 0.70;
-}
-
-.CM_Disabled 
-{
-	background-color: #ffffff;
-}
-
-.CM_Disabled .CM_Icon IMG, .CM_Disabled .CM_Label
-{
-	filter: gray() alpha(opacity=30);
-	-moz-opacity: 0.30;
-}
-
-.CM_Option .CM_Label, .CM_Over .CM_Label
-{
-	padding: 1px 10px 1px 3px;
-}
-
-.CM_Over
-{
-	color: #ffffff;
-	background-color: #8a857d;
-}
-
-.CM_Over .CM_Icon
-{
-	background-color: #6c6761;
-}
-
-.CM_Separator TD
-{
-	height: 3px;
-}
-
-.CM_Separator .CM_Label DIV
-{
-	border-top: #b9b99d 1px solid;
-	margin-left: 2px;
-	margin-right: 3px;
-}
-
-/*
-	### Panel Styles
-*/
-
-.FCK_Panel
-{
-	border: #8f8f73 1px solid;
-	padding: 2px;
-	background-color: #ffffff;
-}
-
-.FCK_Panel, .FCK_Panel TD
-{
-	font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
-	font-size: 11px;
-}
-
-/*
-	### Color Selector Panel
-*/
-
-.ColorBoxBorder
-{
-	border: #808080 1px solid;
-	position: static;
-}
-
-.ColorBox
-{
-	font-size: 1px;
-	width: 10px;
-	position: static;
-	height: 10px;
-}
-
-.ColorDeselected, .ColorSelected
-{
-	cursor: default;
-}
-
-.ColorDeselected
-{
-	border: #ffffff 1px solid;
-	padding: 2px;
-	float: left;
-}
-
-.ColorSelected
-{
-	border: #316ac5 1px solid;
-	padding: 2px;
-	float: left;
-	background-color: #c1d2ee;
-}
-
-/*
-	### Special Combos
-*/
-
-.SC_Panel
-{
-	overflow-y: auto;
-	white-space: nowrap;
-	cursor: default;
-}
-
-.SC_Item, .SC_ItemSelected
-{
-	margin-top: 2px;
-	margin-bottom: 2px;
-	background-position: left center;
-	padding-left: 11px;
-	padding-right: 3px;
-	padding-top: 2px;
-	padding-bottom: 2px;
-	text-overflow: ellipsis;
-	overflow: hidden;
-	width: 100%;
-	background-repeat: no-repeat;
-	border: #dddddd 1px solid;
-}
-
-.SC_Item *, .SC_ItemSelected *
-{
-	margin-top: 0px;
-	margin-bottom: 0px;
-}
-
-.SC_ItemSelected
-{
-	border: #9a9afb 1px solid;
-	background-image: url(images/toolbar.arrowright.gif);
-}
-
-.SC_ItemOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_Field
-{
-	border: #b7b7a6 1px solid;
-	cursor: default;
-	margin-top: 4px ;
-}
-
-.SC_FieldCaption
-{
-	padding-top: 4px ;
-	overflow: visible;
-	padding-right: 5px;
-	padding-left: 5px;
-	filter: alpha(opacity=70);
-	-moz-opacity:0.75;
-	height: 23px;
-	background-color: #f7f7f7;
-}
-
-.SC_FieldLabel
-{
-	white-space: nowrap;
-	padding: 2px;
-	width: 100%;
-	cursor: default;
-	background-color: #ffffff;
-	text-overflow: ellipsis;
-	overflow: hidden;
-}
-
-.SC_FieldButton
-{
-	background-position: center center;
-	background-image: url(images/toolbar.buttonarrow.gif);
-	border-left: #b7b7a6 1px solid;
-	width: 14px;
-	background-repeat: no-repeat;
-}
-
-.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
-{
-	filter: gray() alpha(opacity=30);
-	-moz-opacity:0.30;
-}
-
-.SC_FieldOver
-{
-	border: #316ac5 1px solid;
-}
-
-.SC_FieldOver .SC_FieldButton
-{
-	border-left: #316ac5 1px solid;
-}
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_dialog.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_dialog.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_dialog.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_dialog.css
- * 	Styles used by the dialog boxes.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the dialog boxes.
  */
 
 body
@@ -67,6 +71,11 @@
 	background-color: #cec6b5;
 }
 
+#btnOk
+{
+	width: 100px;
+}
+
 .DarkBackground
 {
 	background-color: #d7d79f;
@@ -125,8 +134,8 @@
 
 .PopupSelectionBox
 {
-	border: #a9a9a9 1px solid;
-	background-color: #dcdcdc;
+	border: #a9a9a9 1px solid !important;
+	background-color: #dcdcdc !important;
 	cursor: pointer;
 	cursor: hand;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_editor.css
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_editor.css	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_editor.css	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,24 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fck_editor.css
- * 	Styles used by the editor IFRAME and Toolbar.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
- * 		gazou[Fr]
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Styles used by the editor IFRAME and Toolbar.
  */
 
 /*
@@ -28,27 +31,65 @@
 	margin: 0px 0px 0px 0px;
 }
 
-#eWysiwygCell, .Source
+#xEditingArea
 {
 	border: #696969 1px solid;
 }
 
-#eSourceField
+.SourceField
 {
-	border: none;
 	padding: 5px;
+	margin: 0px;
 	font-family: Monospace;
 }
 
-/* 
-	### Toolbar Styles
+/*
+	Toolbar
 */
 
 .TB_ToolbarSet, .TB_Expand, .TB_Collapse
 {
+    cursor: default;
 	background-color: #f7f7f7;
 }
 
+.TB_ToolbarSet
+{
+	padding: 1px;
+	border-top: #efefde 1px outset;
+	border-bottom: #efefde 1px outset;
+}
+
+.TB_ToolbarSet TD
+{
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.TB_Toolbar
+{
+    display: inline-table;
+}
+
+.TB_Separator
+{
+    width: 1px;
+    height: 21px;
+    margin: 2px;
+    background-color: #C6C3BD;
+}
+
+.TB_Start
+{
+    background-image: url(images/toolbar.start.gif);
+    margin-left: 2px;
+    margin-right: 2px;
+    width: 3px;
+    background-repeat: no-repeat;
+    height: 27px;
+    background-position: center center;
+}
+
 .TB_End
 {
 	display: none;
@@ -66,20 +107,6 @@
 	background-repeat: no-repeat;
 }
 
-.TB_ToolbarSet
-{
-	padding: 1px;
-	border-top: #efefde 1px outset;
-	border-bottom: #efefde 1px outset;
-}
-
-.TB_ToolbarSet, .TB_ToolbarSet *
-{
-	font-size: 11px;
-	cursor: default;
-	font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
 .TB_SideBorder
 {
 	background-color: #696969;
@@ -97,21 +124,23 @@
 	width: 5px;
 }
 
-.TB_Button_On, .TB_Button_Off, .TB_Button_Disabled
+.TB_Break
 {
-	padding: 1px ;
-	margin: 1px ;
-	height: 21px;
+	height: 27px;
 }
 
-.TB_Combo_Off, .TB_Combo_Disabled
+/*
+	Toolbar Button
+*/
+
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
 {
 	padding: 1px ;
-	margin: 2px ;
+	margin:1px;
 	height: 21px;
 }
 
-.TB_Button_On, .TB_Button_Off, .TB_Button_Disabled
+.TB_Button_On, .TB_Button_Off, .TB_Button_On_Over, .TB_Button_Off_Over, .TB_Button_Disabled
 {
 	border: #cec6b5 1px solid;
 }
@@ -122,6 +151,12 @@
 	background-color: #c1d2ee;
 }
 
+.TB_Button_On_Over, .TB_Button_Off_Over
+{
+    border: #316ac5 1px solid;
+    background-color: #dff1ff;
+}
+
 .TB_Button_Off
 {
 	background: #efefef url(images/toolbar.buttonbg.gif) repeat-x;
@@ -129,31 +164,310 @@
 
 .TB_Button_Off, .TB_Combo_Off
 {
-	filter: alpha(opacity=70);
-	-moz-opacity: 0.70;
+	opacity: 0.70; /* Safari, Opera and Mozilla */
+	filter: alpha(opacity=70); /* IE */
+	/* -moz-opacity: 0.70; Mozilla (Old) */
 }
 
-.TB_Button_Disabled, .TB_Combo_Disabled
+.TB_Button_Disabled
 {
-	filter: gray() alpha(opacity=30);
-	-moz-opacity: 0.30;
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */
 }
 
-.TB_Icon DIV
+.TB_Button_Padding
 {
-	width: 21px;
-	height: 21px;
-	background-position: 50% 50%;
-	background-repeat: no-repeat;
+    visibility: hidden;
+    width: 3px;
+    height: 21px;
 }
 
-.TB_Text
+.TB_Button_Image
 {
-	height: 21px;
-	padding-right: 5px;
+    overflow: hidden;
+    width: 16px;
+    height: 16px;
+    margin: 3px;
+    margin-top: 4px;
+    margin-bottom: 2px;
+    background-repeat: no-repeat;
 }
 
-.TB_Break
+/* For composed button ( icon + text, icon + arrow ), we must compensate the table */
+.TB_Button_On TABLE .TB_Button_Image,
+.TB_Button_Off TABLE .TB_Button_Image,
+.TB_Button_On_Over TABLE .TB_Button_Image,
+.TB_Button_Off_Over TABLE .TB_Button_Image,
+.TB_Button_Disabled TABLE .TB_Button_Image
 {
-	height: 23px;
-}
\ No newline at end of file
+    margin-top: 3px;
+}
+
+.TB_Button_Image img
+{
+    position: relative;
+}
+
+.TB_ConnectionLine
+{
+    background-color: #ffffff;
+    height: 1px;
+    margin-left: 1px;   /* ltr */
+    margin-right: 1px;  /* rtl */
+}
+
+/*
+	Menu
+*/
+
+.MN_Menu
+{
+    border: 1px solid #8f8f73;
+    padding: 2px;
+    background-color: #f7f7f7;
+    cursor: default;
+}
+
+.MN_Menu, .MN_Menu .MN_Label
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.MN_Item_Padding
+{
+    visibility: hidden;
+    width: 3px;
+    height: 20px;
+}
+
+.MN_Icon
+{
+    background-color: #dedede;
+    text-align: center;
+    height: 20px;
+}
+
+.MN_Label
+{
+    padding-left: 3px;
+    padding-right: 3px;
+}
+
+.MN_Separator
+{
+    height: 3px;
+}
+
+.MN_Separator_Line
+{
+    border-top: #b9b99d 1px solid;
+}
+
+.MN_Item .MN_Icon IMG
+{
+    filter: alpha(opacity=70);
+    opacity: 0.70;
+}
+
+.MN_Item_Over
+{
+    color: #ffffff;
+    background-color: #8a857d;
+}
+
+.MN_Item_Over .MN_Icon
+{
+    background-color: #6c6761;
+}
+
+.MN_Item_Disabled IMG
+{
+    filter: gray() alpha(opacity=30); /* IE */
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+}
+
+.MN_Item_Disabled .MN_Label
+{
+    color: #b7b7b7;
+}
+
+.MN_Arrow
+{
+    padding-right: 3px;
+    padding-left: 3px;
+}
+
+.MN_ConnectionLine
+{
+    background-color: #ffffff;
+}
+
+.Menu .TB_Button_On, .Menu .TB_Button_On_Over
+{
+    border: #8f8f73 1px solid;
+    background-color: #ffffff;
+}
+
+/*
+	### Panel Styles
+*/
+
+.FCK_Panel
+{
+    border: #8f8f73 1px solid;
+    padding: 2px;
+    background-color: #ffffff;
+}
+
+.FCK_Panel, .FCK_Panel TD
+{
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+    font-size: 11px;
+}
+
+/*
+	### Special Combos
+*/
+
+.SC_Panel
+{
+    overflow: auto;
+    white-space: nowrap;
+    cursor: default;
+    border: 1px solid #8f8f73;
+    padding-left: 2px;
+    padding-right: 2px;
+    background-color: #ffffff;
+}
+
+.SC_Panel, .SC_Panel TD
+{
+    font-size: 11px;
+    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+}
+
+.SC_Item, .SC_ItemSelected
+{
+    margin-top: 2px;
+    margin-bottom: 2px;
+    background-position: left center;
+    padding-left: 11px;
+    padding-right: 3px;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    background-repeat: no-repeat;
+    border: #dddddd 1px solid;
+}
+
+.SC_Item *, .SC_ItemSelected *
+{
+    margin-top: 0px;
+    margin-bottom: 0px;
+}
+
+.SC_ItemSelected
+{
+    border: #9a9afb 1px solid;
+    background-image: url(images/toolbar.arrowright.gif);
+}
+
+.SC_ItemOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_Field
+{
+    margin-top:1px ;
+    border: #b7b7a6 1px solid;
+    cursor: default;
+}
+
+.SC_FieldCaption
+{
+    padding-top: 1px ;
+    overflow: visible;
+    padding-right: 5px;
+    padding-left: 5px;
+    opacity: 0.75; /* Safari, Opera and Mozilla */
+    filter: alpha(opacity=70); /* IE */ /* -moz-opacity: 0.75; Mozilla (Old) */
+    height: 23px;
+    background-color: #f7f7f7;
+}
+
+.SC_FieldLabel
+{
+    white-space: nowrap;
+    padding: 2px;
+    width: 100%;
+    cursor: default;
+    background-color: #ffffff;
+    text-overflow: ellipsis;
+    overflow: hidden;
+}
+
+.SC_FieldButton
+{
+    background-position: center center;
+    background-image: url(images/toolbar.buttonarrow.gif);
+    border-left: #b7b7a6 1px solid;
+    width: 14px;
+    background-repeat: no-repeat;
+}
+
+.SC_FieldDisabled .SC_FieldButton, .SC_FieldDisabled .SC_FieldCaption
+{
+    opacity: 0.30; /* Safari, Opera and Mozilla */
+    filter: gray() alpha(opacity=30); /* IE */ /* -moz-opacity: 0.30; Mozilla (Old) */
+}
+
+.SC_FieldOver
+{
+    border: #316ac5 1px solid;
+}
+
+.SC_FieldOver .SC_FieldButton
+{
+    border-left: #316ac5 1px solid;
+}
+
+/*
+	### Color Selector Panel
+*/
+
+.ColorBoxBorder
+{
+    border: #808080 1px solid;
+    position: static;
+}
+
+.ColorBox
+{
+    font-size: 1px;
+    width: 10px;
+    position: static;
+    height: 10px;
+}
+
+.ColorDeselected, .ColorSelected
+{
+    cursor: default;
+}
+
+.ColorDeselected
+{
+    border: #ffffff 1px solid;
+    padding: 2px;
+    float: left;
+}
+
+.ColorSelected
+{
+    border: #316ac5 1px solid;
+    padding: 2px;
+    float: left;
+    background-color: #c1d2ee;
+}

Added: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_strip.gif
===================================================================
(Binary files differ)


Property changes on: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/fck_strip.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/images/toolbar.start.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/about.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/anchor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bgcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bold.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/bulletedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/button.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/checkbox.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/copy.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/cut.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/docprops.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/find.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/flash.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/form.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/hiddenfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/image.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/imagebutton.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/indent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/inserthorizontalrule.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/insertorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/insertunorderedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/italic.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifycenter.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyfull.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyleft.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/justifyright.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/link.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/newpage.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/numberedlist.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/outdent.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pagebreak.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/paste.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pastetext.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/pasteword.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/preview.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/print.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/radio.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/redo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/removeformat.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/replace.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/save.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/select.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/selectall.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/showdetails.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/showtableborders.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/smiley.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/source.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/specialchar.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/spellcheck.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/strikethrough.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/subscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/superscript.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/table.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablecell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeletecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeletecolumns.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tabledeleterows.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertcolumn.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tableinsertrow.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablemergecells.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/tablesplitcell.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/templates.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textarea.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textcolor.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/textfield.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/underline.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/undo.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/universalkey.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/unlink.gif
===================================================================
(Binary files differ)

Deleted: zope.html/trunk/src/zope/html/fckeditor/editor/skins/silver/toolbar/unorderedlist.gif
===================================================================
(Binary files differ)

Modified: zope.html/trunk/src/zope/html/fckeditor/fckconfig.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckconfig.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckconfig.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,57 +1,70 @@
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckconfig.js
- * 	Editor configuration settings.
- * 	See the documentation for more info.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * Editor configuration settings.
+ *
+ * Follow this link for more information:
+ * http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
  */
 
+// Disable the custom Enter Key Handler. This option will be removed in version 2.5.
+FCKConfig.DisableEnterKeyHandler = false ;
+
 FCKConfig.CustomConfigurationsPath = '' ;
 
 FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
+FCKConfig.ToolbarComboPreviewCSS = '' ;
 
-FCKConfig.DocType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' ;
+FCKConfig.DocType = '' ;
 
 FCKConfig.BaseHref = '' ;
 
 FCKConfig.FullPage = false ;
 
 FCKConfig.Debug = false ;
+FCKConfig.AllowQueryStringDebug = true ;
 
 FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
+FCKConfig.PreloadImages = [ FCKConfig.SkinPath + 'images/toolbar.start.gif', FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif' ] ;
 
 FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;
 
-// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ;
+// FCKConfig.Plugins.Add( 'autogrow' ) ;
+FCKConfig.AutoGrowMax = 400 ;
 
-FCKConfig.ProtectedSource.Add( /<script[\s\S]*?\/script>/gi ) ;	// <SCRIPT> tags.
 // FCKConfig.ProtectedSource.Add( /<%[\s\S]*?%>/g ) ;	// ASP style server side code <%...%>
-// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;	// PHP style server side code <?...?>
+// FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ;	// PHP style server side code
 // FCKConfig.ProtectedSource.Add( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ) ;	// ASP.Net style tags <asp:control>
 
 FCKConfig.AutoDetectLanguage	= true ;
 FCKConfig.DefaultLanguage		= 'en' ;
 FCKConfig.ContentLangDirection	= 'ltr' ;
 
-FCKConfig.EnableXHTML		= true ;	// Unsupported: Do not change.
-FCKConfig.EnableSourceXHTML	= true ;	// Unsupported: Do not change.
-
 FCKConfig.ProcessHTMLEntities	= true ;
 FCKConfig.IncludeLatinEntities	= true ;
 FCKConfig.IncludeGreekEntities	= true ;
 
+FCKConfig.ProcessNumericEntities = false ;
+
+FCKConfig.AdditionalNumericEntities = ''  ;		// Single Quote: "'"
+
 FCKConfig.FillEmptyBlocks	= true ;
 
 FCKConfig.FormatSource		= true ;
@@ -66,34 +79,64 @@
 FCKConfig.ForceSimpleAmpersand	= false ;
 FCKConfig.TabSpaces		= 0 ;
 FCKConfig.ShowBorders	= true ;
-FCKConfig.UseBROnCarriageReturn	= false ;
+FCKConfig.SourcePopup	= false ;
 FCKConfig.ToolbarStartExpanded	= true ;
 FCKConfig.ToolbarCanCollapse	= true ;
-FCKConfig.IEForceVScroll = false ;
 FCKConfig.IgnoreEmptyParagraphValue = true ;
+FCKConfig.PreserveSessionOnFileBrowser = false ;
+FCKConfig.FloatingPanelsZIndex = 10000 ;
 
+FCKConfig.TemplateReplaceAll = true ;
+FCKConfig.TemplateReplaceCheckbox = true ;
+
+FCKConfig.ToolbarLocation = 'In' ;
+
 FCKConfig.ToolbarSets["Default"] = [
 	['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
 	['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
 	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
+	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+	'/',
 	['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
 	['OrderedList','UnorderedList','-','Outdent','Indent'],
 	['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
 	['Link','Unlink','Anchor'],
-	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak','UniversalKey'],
-	['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
+	['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
 	'/',
 	['Style','FontFormat','FontName','FontSize'],
 	['TextColor','BGColor'],
-	['About']
+	['FitWindow','-','About']
 ] ;
 
 FCKConfig.ToolbarSets["Basic"] = [
 	['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
 ] ;
 
-FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
+FCKConfig.EnterMode = 'p' ;			// p | div | br
+FCKConfig.ShiftEnterMode = 'br' ;	// p | div | br
 
+FCKConfig.Keystrokes = [
+	[ CTRL + 65 /*A*/, true ],
+	[ CTRL + 67 /*C*/, true ],
+	[ CTRL + 70 /*F*/, true ],
+	[ CTRL + 83 /*S*/, true ],
+	[ CTRL + 88 /*X*/, true ],
+	[ CTRL + 86 /*V*/, 'Paste' ],
+	[ SHIFT + 45 /*INS*/, 'Paste' ],
+	[ CTRL + 90 /*Z*/, 'Undo' ],
+	[ CTRL + 89 /*Y*/, 'Redo' ],
+	[ CTRL + SHIFT + 90 /*Z*/, 'Redo' ],
+	[ CTRL + 76 /*L*/, 'Link' ],
+	[ CTRL + 66 /*B*/, 'Bold' ],
+	[ CTRL + 73 /*I*/, 'Italic' ],
+	[ CTRL + 85 /*U*/, 'Underline' ],
+	[ CTRL + SHIFT + 83 /*S*/, 'Save' ],
+	[ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ],
+	[ CTRL + 9 /*TAB*/, 'Source' ]
+] ;
+
+FCKConfig.ContextMenu = ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form'] ;
+
 FCKConfig.FontColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF' ;
 
 FCKConfig.FontNames		= 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
@@ -104,12 +147,13 @@
 FCKConfig.TemplatesXmlPath	= FCKConfig.EditorPath + 'fcktemplates.xml' ;
 
 FCKConfig.SpellChecker			= 'ieSpell' ;	// 'ieSpell' | 'SpellerPages'
-FCKConfig.IeSpellDownloadUrl	= 'http://www.iespell.com/rel/ieSpellSetup211325.exe' ;
+FCKConfig.IeSpellDownloadUrl	= 'http://www.iespell.com/download.php' ;
+FCKConfig.SpellerPagesServerScript = 'server-scripts/spellchecker.php' ;	// Available extension: .php .cfm .pl
 
 FCKConfig.MaxUndoLevels = 15 ;
 
-FCKConfig.DisableImageHandles = false ;
-FCKConfig.DisableTableHandles = false ;
+FCKConfig.DisableObjectResizing = false ;
+FCKConfig.DisableFFTableHandles = true ;
 
 FCKConfig.LinkDlgHideTarget		= false ;
 FCKConfig.LinkDlgHideAdvanced	= false ;
@@ -119,52 +163,57 @@
 
 FCKConfig.FlashDlgHideAdvanced	= false ;
 
+FCKConfig.ProtectedTags = '' ;
+
+// This will be applied to the body element of the editor
+FCKConfig.BodyId = '' ;
+FCKConfig.BodyClass = '' ;
+
+// The option switches between trying to keep the html structure or do the changes so the content looks like it was in Word
+FCKConfig.CleanWordKeepsStructure = false ;
+
+// The following value defines which File Browser connector and Quick Upload
+// "uploader" to use. It is valid for the default implementaion and it is here
+// just to make this configuration file cleaner.
+// It is not possible to change this value using an external file or even
+// inline when creating the editor instance. In that cases you must set the
+// values of LinkBrowserURL, ImageBrowserURL and so on.
+// Custom implementations should just ignore it.
+var _FileBrowserLanguage	= 'asp' ;	// asp | aspx | cfm | lasso | perl | php | py
+var _QuickUploadLanguage	= 'asp' ;	// asp | aspx | cfm | lasso | php
+
+
+// Don't care about the following line. It just calculates the correct connector
+// extension to use for the default File Browser (Perl uses "cgi").
+var _FileBrowserExtension = _FileBrowserLanguage == 'perl' ? 'cgi' : _FileBrowserLanguage ;
+
 FCKConfig.LinkBrowser = true ;
-FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/asp/connector.asp' ;
-//FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/asp/connector.asp&ServerPath=/CustomFiles/' ;
-// ASP.Net		// FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/aspx/connector.aspx' ;
-// ColdFusion	// FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/cfm/connector.cfm' ;
-// Perl			// FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/perl/connector.cgi' ;
-// PHP			// FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/php/connector.php' ;
-// PHP - mcpuk	// FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Connector=connectors/php/connector.php' ;
-FCKConfig.LinkBrowserWindowWidth	= FCKConfig.ScreenWidth * 0.7 ;	// 70%
-FCKConfig.LinkBrowserWindowHeight	= FCKConfig.ScreenHeight * 0.7 ;// 70%
+FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
+FCKConfig.LinkBrowserWindowWidth	= FCKConfig.ScreenWidth * 0.7 ;		// 70%
+FCKConfig.LinkBrowserWindowHeight	= FCKConfig.ScreenHeight * 0.7 ;	// 70%
 
 FCKConfig.ImageBrowser = true ;
-FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.asp' ;
-// ASP.Net		// FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.aspx' ;
-// ColdFusion	// FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/cfm/connector.cfm' ;
-// Perl			// FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/perl/connector.cgi' ;
-// PHP			// FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/php/connector.php' ;
-// PHP - mcpuk	// FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Type=Image&Connector=connectors/php/connector.php' ;
+FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
 FCKConfig.ImageBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	// 70% ;
 FCKConfig.ImageBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	// 70% ;
 
 FCKConfig.FlashBrowser = true ;
-FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/asp/connector.asp' ;
-// ASP.Net		// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/aspx/connector.aspx' ;
-// ColdFusion	// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/cfm/connector.cfm' ;
-// Perl			// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/perl/connector.cgi' ;
-// PHP			// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/php/connector.php' ;
-// PHP - mcpuk	// FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/mcpuk/browser.html?Type=Flash&Connector=connectors/php/connector.php' ;
+FCKConfig.FlashBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
 FCKConfig.FlashBrowserWindowWidth  = FCKConfig.ScreenWidth * 0.7 ;	//70% ;
 FCKConfig.FlashBrowserWindowHeight = FCKConfig.ScreenHeight * 0.7 ;	//70% ;
 
 FCKConfig.LinkUpload = true ;
-FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp' ;
-// PHP // FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php' ;
+FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage ;
 FCKConfig.LinkUploadAllowedExtensions	= "" ;			// empty for all
-FCKConfig.LinkUploadDeniedExtensions	= ".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$" ;	// empty for no one
+FCKConfig.LinkUploadDeniedExtensions	= ".(html|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi|htaccess|asis)$" ;	// empty for no one
 
 FCKConfig.ImageUpload = true ;
-FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp?Type=Image' ;
-// PHP // FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php?Type=Image' ;
-FCKConfig.ImageUploadAllowedExtensions	= ".(jpg|gif|jpeg|png)$" ;		// empty for all
+FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Image' ;
+FCKConfig.ImageUploadAllowedExtensions	= ".(jpg|gif|jpeg|png|bmp)$" ;		// empty for all
 FCKConfig.ImageUploadDeniedExtensions	= "" ;							// empty for no one
 
 FCKConfig.FlashUpload = true ;
-FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/asp/upload.asp?Type=Flash' ;
-// PHP // FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/php/upload.php?Type=Flash' ;
+FCKConfig.FlashUploadURL = FCKConfig.BasePath + 'filemanager/upload/' + _QuickUploadLanguage + '/upload.' + _QuickUploadLanguage + '?Type=Flash' ;
 FCKConfig.FlashUploadAllowedExtensions	= ".(swf|fla)$" ;		// empty for all
 FCKConfig.FlashUploadDeniedExtensions	= "" ;					// empty for no one
 
@@ -173,5 +222,3 @@
 FCKConfig.SmileyColumns = 8 ;
 FCKConfig.SmileyWindowWidth		= 320 ;
 FCKConfig.SmileyWindowHeight	= 240 ;
-
-if( window.console ) window.console.log( 'Config is loaded!' ) ;	// @Packager.Compactor.RemoveLine
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.afp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.afp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.afp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,21 +1,25 @@
-<% 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2004 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * File Name: sampleposteddata.afp
- * 	This page lists the data posted by a form.
- * 
- * Version:  1.0 
- * Modified: 2005-07-01
- * 
- * File Authors: Soenke Freitag (www.afp-hosting.de)
- * 		
+<%
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Active FoxPro Pages.
+ *
 
 DEFINE CLASS goFckeditor AS CONTAINER OLEPUBLIC
 
@@ -31,7 +35,7 @@
 	FUNCTION fckeditor( tcInstanceName )
 		LOCAL lnLoop,lnLoop2
 		THIS.cInstanceName	= tcInstanceName
-		THIS.BasePath	= '/FCKeditor/'
+		THIS.BasePath	= '/fckeditor/'
 		THIS.cWIDTH		= '100%'
 		THIS.cHEIGHT	= '200'
 		THIS.ToolbarSet	= 'Default'
@@ -62,18 +66,18 @@
 		IF THIS.IsCompatible()
 			lcLink = THIS.BasePath+[editor/fckeditor.html?InstanceName=]+THIS.cInstanceName
 
-			IF ( THIS.ToolbarSet # '' )
-				lcLink = lcLink + [Toolbar=]+THIS.ToolbarSet
+			IF ( !THIS.ToolbarSet == '' )
+				lcLink = lcLink + [&Toolbar=]+THIS.ToolbarSet
 			ENDIF
 
 			&& Render the LINKED HIDDEN FIELD.
-			html = html + [<input type="hidden" id="]+THIS.cInstanceName +[" name="]+THIS.cInstanceName +[" value="]+HtmlValue+[">]
+			html = html + [<input type="hidden" id="]+THIS.cInstanceName +[" name="]+THIS.cInstanceName +[" value="]+HtmlValue+[" style="display:none" />]
 
 			&& Render the configurations HIDDEN FIELD.
-			html = html + [<input type="hidden" id="]+THIS.cInstanceName +[___Config" value="]+THIS.GetConfigFieldString() + [">] +CHR(13)+CHR(10)
+			html = html + [<input type="hidden" id="]+THIS.cInstanceName +[___Config" value="]+THIS.GetConfigFieldString() + [" style="display:none" />] +CHR(13)+CHR(10)
 
 			&& Render the EDITOR IFRAME.
-			html = html + [<iframe id="]+THIS.cInstanceName +[___Frame" src="Link" width="]+THIS.cWIDTH+[" height="]+THIS.cHEIGHT+[" frameborder="no" scrolling="no"></iframe>]
+			html = html + [<iframe id="]+THIS.cInstanceName +[___Frame" src="Link" width="]+THIS.cWIDTH+[" height="]+THIS.cHEIGHT+[" frameborder="0" scrolling="no"></iframe>]
 		ELSE
 			IF ( AT("%", THIS.cWIDTH)=0 )
 				WidthCSS = THIS.cWIDTH + 'px'
@@ -87,7 +91,7 @@
 				HeightCSS = THIS.cHEIGHT
 			ENDIF
 
-			html = html + [<textarea name="]+THIS.cInstanceName +[" rows="4" cols="40" style="width: ]+WidthCSS+[ height: ]+HeightCSS+[" wrap="virtual">]+HtmlValue+[</textarea>]
+			html = html + [<textarea name="]+THIS.cInstanceName +[" rows="4" cols="40" style="width: ]+WidthCSS+[ height: ]+HeightCSS+[">]+HtmlValue+[</textarea>]
 		ENDIF
 
 		html = html + [</div>]

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.asp
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.asp	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.asp	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,27 @@
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditor.asp
- * 	This is the integration file for ASP.
- * 
- * 	It defines the FCKeditor class that can be used to create editor
- * 	instances in ASP pages on server side.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 ASP.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in ASP pages on server side.
 -->
 <%
 Class FCKeditor
@@ -32,7 +36,7 @@
 	private oConfig
 
 	Private Sub Class_Initialize()
-		sBasePath		= "/FCKeditor/"
+		sBasePath		= "/fckeditor/"
 		sWidth			= "100%"
 		sHeight			= "200"
 		sToolbarSet		= "Default"
@@ -94,13 +98,13 @@
 			End If
 
 			' Render the linked hidden field.
-			Response.Write "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ />"
+			Response.Write "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ style=""display:none"" />"
 
 			' Render the configurations hidden field.
-			Response.Write "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ />"
+			Response.Write "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ style=""display:none"" />"
 
 			' Render the editor IFRAME.
-			Response.Write "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""no"" scrolling=""no""></iframe>"
+			Response.Write "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""0"" scrolling=""no""></iframe>"
 
 		Else
 
@@ -118,7 +122,7 @@
 				sHeightCSS = sHeight & "px"
 			End If
 
-			Response.Write "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """ wrap=""virtual"">" & Server.HTMLEncode( sValue ) & "</textarea>"
+			Response.Write "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """>" & Server.HTMLEncode( sValue ) & "</textarea>"
 
 		End If
 
@@ -181,7 +185,7 @@
 		GetConfigFieldString = sParams
 
 	End Function
-	
+
 	Private Function EncodeConfig( valueToEncode )
 		EncodeConfig = Replace( valueToEncode, "&", "%26" )
 		EncodeConfig = Replace( EncodeConfig , "=", "%3D" )

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfc
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfc	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfc	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,36 +1,52 @@
 <cfcomponent output="false" displayname="FCKeditor" hint="Create an instance of the FCKeditor.">
-<!--- @Packager.Header
-<FileDescription>
-	ColdFusion MX integration. 
-	Note this CFC is created for use only with Coldfusion MX and above.
-	For older version, check the fckeditor.cfm.
-
-	Syntax: 
-
-	&lt;cfscript&gt;
-			fckEditor = createObject("component", "fckEditorV2/fckeditor");
-			fckEditor.instanceName="myEditor";
-			fckEditor.basePath="/fckEditorV2/";
-			fckEditor.value="This is my &lt;strong&gt;initial&lt;/strong&gt; html text.";
-			fckEditor.width="100%";
-			fckEditor.height="200";
-		 	// ... additional parameters ...
-			fckEditor.create(); // create instance now.
-	&lt;/cfscript&gt;
-
-	See your macromedia coldfusion mx documentation for more info.
-
-	*** Note: 
-	Do not use path names with a "." (dot) in the name. This is a coldfusion 
-	limitation with the cfc invocation.
-</FileDescription>
-<Author name="Hendrik Kramer" email="hk at lwd.de" />
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * ColdFusion MX integration.
+ * Note this CFC is created for use only with Coldfusion MX and above.
+ * For older version, check the fckeditor.cfm.
+ *
+ * Syntax:
+ *
+ * <cfscript>
+ * 		fckEditor = createObject("component", "fckEditorV2/fckeditor");
+ * 		fckEditor.instanceName="myEditor";
+ * 		fckEditor.basePath="/fckEditorV2/";
+ * 		fckEditor.value="This is my <strong>initial</strong> html text.";
+ * 		fckEditor.width="100%";
+ * 		fckEditor.height="200";
+ * 	 	// ... additional parameters ...
+ * 		fckEditor.create(); // create instance now.
+ * </cfscript>
+ *
+ * See your macromedia coldfusion mx documentation for more info.
+ *
+ * *** Note:
+ * Do not use path names with a "." (dot) in the name. This is a coldfusion
+ * limitation with the cfc invocation.
 --->
-<cffunction 
-	name="create" 
-	access="public" 
-	output="true" 
-	returntype="void" 
+<cffunction
+	name="create"
+	access="public"
+	output="true"
+	returntype="void"
 	hint="Initialize the FCKeditor instance."
 >
 
@@ -117,7 +133,7 @@
 
 	<cfoutput>
 	<div>
-	<textarea name="#this.instanceName#" rows="4" cols="40" style="WIDTH: #width#; HEIGHT: #height#" wrap="virtual">#HTMLEditFormat(this.value)#</textarea>
+	<textarea name="#this.instanceName#" rows="4" cols="40" style="WIDTH: #this.width#; HEIGHT: #this.height#">#HTMLEditFormat(this.value)#</textarea>
 	</div>
 	</cfoutput>
 
@@ -130,10 +146,10 @@
 	returnType="void"
 	hint="Create the html editor instance for compatible browsers."
 >
-	
+
 	<cfscript>
 	var sURL = "";
-	
+
 	// try to fix the basePath, if ending slash is missing
 	if( len( this.basePath) and right( this.basePath, 1 ) is not "/" )
 		this.basePath = this.basePath & "/";
@@ -148,9 +164,9 @@
 
 	<cfoutput>
 	<div>
-	<input type="hidden" id="#this.instanceName#" name="#this.instanceName#" value="#HTMLEditFormat(this.value)#" />
-	<input type="hidden" id="#this.instanceName#___Config" value="#GetConfigFieldString()#" />
-	<iframe id="#this.instanceName#___Frame" src="#sURL#" width="#this.width#" height="#this.height#" frameborder="no" scrolling="no"></iframe>
+	<input type="hidden" id="#this.instanceName#" name="#this.instanceName#" value="#HTMLEditFormat(this.value)#" style="display:none" />
+	<input type="hidden" id="#this.instanceName#___Config" value="#GetConfigFieldString()#" style="display:none" />
+	<iframe id="#this.instanceName#___Frame" src="#sURL#" width="#this.width#" height="#this.height#" frameborder="0" scrolling="no"></iframe>
 	</div>
 	</cfoutput>
 
@@ -171,7 +187,7 @@
 	var fieldLabel = "";
 	var lConfigKeys = "";
 	var iPos = "";
-	
+
 	/**
 	 * CFML doesn't store casesensitive names for structure keys, but the configuration names must be casesensitive for js.
 	 * So we need to find out the correct case for the configuration keys.
@@ -184,7 +200,7 @@
 	lConfigKeys = lConfigKeys & ",LinkBrowser,LinkBrowserURL,LinkBrowserWindowWidth,LinkBrowserWindowHeight";
 	lConfigKeys = lConfigKeys & ",LinkUpload,LinkUploadURL,LinkUploadWindowWidth,LinkUploadWindowHeight,LinkUploadAllowedExtensions,LinkUploadDeniedExtensions";
 	lConfigKeys = lConfigKeys & ",ImageBrowser,ImageBrowserURL,ImageBrowserWindowWidth,ImageBrowserWindowHeight,SmileyPath,SmileyImages,SmileyColumns,SmileyWindowWidth,SmileyWindowHeight";
-	
+
 	for( key in this.config )
 	{
 		iPos = listFindNoCase( lConfigKeys, key );
@@ -195,13 +211,13 @@
 
 			fieldValue = this.config[key];
 			fieldName = listGetAt( lConfigKeys, iPos );
-			
+
 			// set all boolean possibilities in CFML to true/false values
 			if( isBoolean( fieldValue) and fieldValue )
 				fieldValue = "true";
 			else if( isBoolean( fieldValue) )
 				fieldValue = "false";
-		
+
 			sParams = sParams & HTMLEditFormat( fieldName ) & '=' & HTMLEditFormat( fieldValue );
 		}
 	}

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfm
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfm	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.cfm	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,38 @@
 <cfsetting enablecfoutputonly="Yes">
-<!--- @Packager.Header
-<FileDescription>
-	ColdFusion integration. 
-	Note this module is created for use with Coldfusion 4.52 and above.
-	For a cfc version for coldfusion mx check the fckeditor.cfc.
-
-	Syntax: 
-
-	&lt;cfmodule name="path/to/cfc/fckeditor" 
-		instanceName="myEditor"
-		toolbarSet="..."
-		width="..."
-		height="..:"
-		value="..."
-		config="..." 
-	&gt;
-</FileDescription>
-<Author name="Hendrik Kramer" email="hk at lwd.de" />
-<Author name="Mark Woods" email="mark at thickpaddy.com" />
+<!---
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * ColdFusion integration.
+ * Note this module is created for use with Coldfusion 4.52 and above.
+ * For a cfc version for coldfusion mx check the fckeditor.cfc.
+ *
+ * Syntax:
+ *
+ * <cfmodule name="path/to/cfc/fckeditor"
+ * 	instanceName="myEditor"
+ * 	toolbarSet="..."
+ * 	width="..."
+ * 	height="..:"
+ * 	value="..."
+ * 	config="..."
+ * >
 --->
 <!--- ::
 	 * 	Attribute validation
@@ -34,7 +49,7 @@
 <!--- ::
 	 * check browser compatibility via HTTP_USER_AGENT, if checkBrowser is true
 	:: --->
-	
+
 <cfscript>
 if( attributes.checkBrowser )
 {
@@ -96,7 +111,7 @@
 		// create configuration string: Key1=Value1&Key2=Value2&... (Key/Value:HTML encoded)
 
 		/**
-		 * CFML doesn't store casesensitive names for structure keys, but the configuration names must be casesensitive for js. 
+		 * CFML doesn't store casesensitive names for structure keys, but the configuration names must be casesensitive for js.
 		 * So we need to find out the correct case for the configuration keys.
 		 * We "fix" this by comparing the caseless configuration keys to a list of all available configuration options in the correct case.
 		 * changed 20041206 hk at lwd.de (improvements are welcome!)
@@ -108,9 +123,9 @@
 		lConfigKeys = lConfigKeys & ",LinkBrowser,LinkBrowserURL,LinkBrowserWindowWidth,LinkBrowserWindowHeight";
 		lConfigKeys = lConfigKeys & ",LinkUpload,LinkUploadURL,LinkUploadWindowWidth,LinkUploadWindowHeight,LinkUploadAllowedExtensions,LinkUploadDeniedExtensions";
 		lConfigKeys = lConfigKeys & ",ImageBrowser,ImageBrowserURL,ImageBrowserWindowWidth,ImageBrowserWindowHeight,SmileyPath,SmileyImages,SmileyColumns,SmileyWindowWidth,SmileyWindowHeight";
-		
+
 		sConfig = "";
-		
+
 		for( key in attributes.config )
 		{
 			iPos = listFindNoCase( lConfigKeys, key );
@@ -118,10 +133,10 @@
 			{
 				if( len( sConfig ) )
 					sConfig = sConfig & "&amp;";
-	
+
 				fieldValue = attributes.config[key];
 				fieldName = listGetAt( lConfigKeys, iPos );
-				
+
 				sConfig = sConfig & urlEncodedFormat( fieldName ) & '=' & urlEncodedFormat( fieldValue );
 			}
 		}
@@ -129,9 +144,9 @@
 
 	<cfoutput>
 	<div>
-	<input type="hidden" id="#attributes.instanceName#" name="#attributes.instanceName#" value="#HTMLEditFormat(attributes.value)#" />
-	<input type="hidden" id="#attributes.instanceName#___Config" value="#sConfig#" />
-	<iframe id="#attributes.instanceName#___Frame" src="#sURL#" width="#attributes.width#" height="#attributes.height#" frameborder="no" scrolling="no"></iframe>
+	<input type="hidden" id="#attributes.instanceName#" name="#attributes.instanceName#" value="#HTMLEditFormat(attributes.value)#" style="display:none" />
+	<input type="hidden" id="#attributes.instanceName#___Config" value="#sConfig#" style="display:none" />
+	<iframe id="#attributes.instanceName#___Frame" src="#sURL#" width="#attributes.width#" height="#attributes.height#" frameborder="0" scrolling="no"></iframe>
 	</div>
 	</cfoutput>
 
@@ -152,9 +167,9 @@
 	<!--- Fixed Bug ##1075166. hk at lwd.de 20041206 --->
 	<cfoutput>
 	<div>
-	<textarea name="#attributes.instanceName#" rows="4" cols="40" style="WIDTH: #attributes.width#; HEIGHT: #attributes.height#" wrap="virtual">#HTMLEditFormat(attributes.value)#</textarea>
+	<textarea name="#attributes.instanceName#" rows="4" cols="40" style="WIDTH: #attributes.width#; HEIGHT: #attributes.height#">#HTMLEditFormat(attributes.value)#</textarea>
 	</div>
-	</cfoutput>	
+	</cfoutput>
 
 </cfif>
 

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.js
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.js	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.js	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,24 +1,28 @@
-/*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditor.js
- * 	This is the integration file for JavaScript.
- * 
- * 	It defines the FCKeditor class that can be used to create editor
- * 	instances in a HTML page in the client side. For server side
- * 	operations, use the specific integration system.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for JavaScript.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in a HTML page in the client side. For server side
+ * operations, use the specific integration system.
  */
 
 // FCKeditor Class
@@ -34,6 +38,7 @@
 	this.CheckBrowser	= true ;
 	this.DisplayErrors	= true ;
 	this.EnableSafari	= false ;		// This is a temporary property, while Safari support is under development.
+	this.EnableOpera	= false ;		// This is a temporary property, while Opera support is under development.
 
 	this.Config			= new Object() ;
 
@@ -41,45 +46,61 @@
 	this.OnError		= null ;	// function( source, errorNumber, errorDescription )
 }
 
+FCKeditor.prototype.Version			= '2.4.2' ;
+FCKeditor.prototype.VersionBuild	= '14978' ;
+
 FCKeditor.prototype.Create = function()
 {
+	document.write( this.CreateHtml() ) ;
+}
+
+FCKeditor.prototype.CreateHtml = function()
+{
 	// Check for errors
 	if ( !this.InstanceName || this.InstanceName.length == 0 )
 	{
-		this._ThrowError( 701, 'You must specify a instance name.' ) ;
-		return ;
+		this._ThrowError( 701, 'You must specify an instance name.' ) ;
+		return '' ;
 	}
 
-	document.write( '<div>' ) ;
+	var sHtml = '<div>' ;
 
 	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
 	{
-		document.write( '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" />' ) ;
-		document.write( this._GetConfigHtml() ) ;
-		document.write( this._GetIFrameHtml() ) ;
+		sHtml += '<input type="hidden" id="' + this.InstanceName + '" name="' + this.InstanceName + '" value="' + this._HTMLEncode( this.Value ) + '" style="display:none" />' ;
+		sHtml += this._GetConfigHtml() ;
+		sHtml += this._GetIFrameHtml() ;
 	}
 	else
 	{
 		var sWidth  = this.Width.toString().indexOf('%')  > 0 ? this.Width  : this.Width  + 'px' ;
 		var sHeight = this.Height.toString().indexOf('%') > 0 ? this.Height : this.Height + 'px' ;
-		document.write('<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="WIDTH: ' + sWidth + '; HEIGHT: ' + sHeight + '" wrap="virtual">' + this._HTMLEncode( this.Value ) + '<\/textarea>') ;
+		sHtml += '<textarea name="' + this.InstanceName + '" rows="4" cols="40" style="width:' + sWidth + ';height:' + sHeight + '">' + this._HTMLEncode( this.Value ) + '<\/textarea>' ;
 	}
 
-	document.write( '</div>' ) ;
+	sHtml += '</div>' ;
+
+	return sHtml ;
 }
 
 FCKeditor.prototype.ReplaceTextarea = function()
 {
 	if ( !this.CheckBrowser || this._IsCompatibleBrowser() )
 	{
+		// We must check the elements firstly using the Id and then the name.
 		var oTextarea = document.getElementById( this.InstanceName ) ;
-		
+		var colElementsByName = document.getElementsByName( this.InstanceName ) ;
+		var i = 0;
+		while ( oTextarea || i == 0 )
+		{
+			if ( oTextarea && oTextarea.tagName.toLowerCase() == 'textarea' )
+				break ;
+			oTextarea = colElementsByName[i++] ;
+		}
+
 		if ( !oTextarea )
-			oTextarea = document.getElementsByName( this.InstanceName )[0] ;
-		
-		if ( !oTextarea || oTextarea.tagName != 'TEXTAREA' )
 		{
-			alert( 'Error: The TEXTAREA id "' + this.InstanceName + '" was not found' ) ;
+			alert( 'Error: The TEXTAREA with id or name set to "' + this.InstanceName + '" was not found' ) ;
 			return ;
 		}
 
@@ -108,40 +129,32 @@
 	for ( var o in this.Config )
 	{
 		if ( sConfig.length > 0 ) sConfig += '&amp;' ;
-		sConfig += escape(o) + '=' + escape( this.Config[o] ) ;
+		sConfig += encodeURIComponent( o ) + '=' + encodeURIComponent( this.Config[o] ) ;
 	}
 
-	return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" />' ;
+	return '<input type="hidden" id="' + this.InstanceName + '___Config" value="' + sConfig + '" style="display:none" />' ;
 }
 
 FCKeditor.prototype._GetIFrameHtml = function()
 {
-	var sFile = (/fcksource=true/i).test( window.top.location.search ) ? 'fckeditor.original.html' : 'fckeditor.html' ;
+	var sFile = 'fckeditor.html' ;
 
-	var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + this.InstanceName ;
-	if (this.ToolbarSet) sLink += '&Toolbar=' + this.ToolbarSet ;
+	try
+	{
+		if ( (/fcksource=true/i).test( window.top.location.search ) )
+			sFile = 'fckeditor.original.html' ;
+	}
+	catch (e) { /* Ignore it. Much probably we are inside a FRAME where the "top" is in another domain (security error). */ }
 
-	return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="no" scrolling="no"></iframe>' ;
+	var sLink = this.BasePath + 'editor/' + sFile + '?InstanceName=' + encodeURIComponent( this.InstanceName ) ;
+	if (this.ToolbarSet) sLink += '&amp;Toolbar=' + this.ToolbarSet ;
+
+	return '<iframe id="' + this.InstanceName + '___Frame" src="' + sLink + '" width="' + this.Width + '" height="' + this.Height + '" frameborder="0" scrolling="no"></iframe>' ;
 }
 
 FCKeditor.prototype._IsCompatibleBrowser = function()
 {
-	var sAgent = navigator.userAgent.toLowerCase() ;
-
-	// Internet Explorer
-	if ( sAgent.indexOf("msie") != -1 && sAgent.indexOf("mac") == -1 && sAgent.indexOf("opera") == -1 )
-	{
-		var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
-		return ( sBrowserVersion >= 5.5 ) ;
-	}
-	// Gecko
-	else if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 )
-		return true ;
-	// Safari
-	else if ( this.EnableSafari && sAgent.indexOf( 'safari' ) != -1 )
-		return ( sAgent.match( /safari\/(\d+)/ )[1] >= 312 ) ;	// Build must be at least 312 (1.3)
-	else
-		return false ;
+	return FCKeditor_IsCompatibleBrowser( this.EnableSafari, this.EnableOpera ) ;
 }
 
 FCKeditor.prototype._ThrowError = function( errorNumber, errorDescription )
@@ -165,11 +178,37 @@
 	if ( typeof( text ) != "string" )
 		text = text.toString() ;
 
-	text = text.replace(/&/g, "&amp;") ;
-	text = text.replace(/"/g, "&quot;") ;
-	text = text.replace(/</g, "&lt;") ;
-	text = text.replace(/>/g, "&gt;") ;
-	text = text.replace(/'/g, "&#39;") ;
+	text = text.replace(
+		/&/g, "&amp;").replace(
+		/"/g, "&quot;").replace(
+		/</g, "&lt;").replace(
+		/>/g, "&gt;") ;
 
 	return text ;
+}
+
+function FCKeditor_IsCompatibleBrowser( enableSafari, enableOpera )
+{
+	var sAgent = navigator.userAgent.toLowerCase() ;
+
+	// Internet Explorer
+	if ( sAgent.indexOf("msie") != -1 && sAgent.indexOf("mac") == -1 && sAgent.indexOf("opera") == -1 )
+	{
+		var sBrowserVersion = navigator.appVersion.match(/MSIE (.\..)/)[1] ;
+		return ( sBrowserVersion >= 5.5 ) ;
+	}
+
+	// Gecko (Opera 9 tries to behave like Gecko at this point).
+	if ( navigator.product == "Gecko" && navigator.productSub >= 20030210 && !( typeof(opera) == 'object' && opera.postError ) )
+		return true ;
+
+	// Opera
+	if ( enableOpera && navigator.appName == 'Opera' && parseInt( navigator.appVersion, 10 ) >= 9 )
+			return true ;
+
+	// Safari
+	if ( enableSafari && sAgent.indexOf( 'safari' ) != -1 )
+		return ( sAgent.match( /safari\/(\d+)/ )[1] >= 312 ) ;	// Build must be at least 312 (1.3)
+
+	return false ;
 }
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.lasso
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.lasso	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.lasso	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,32 +1,33 @@
 [//lasso
 /*
- 
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- 
- * 		http://www.fckeditor.net/
- * 
- * File Name: fckeditor.lasso
- * 	This is the integration file for Lasso.
- * 	
- * 	It defines the FCKeditor class ("custom type" in Lasso terms) 
- *		that can be used to create editor instances in Lasso pages on server side.
- * 
- * File Authors:
- * 		Jason Huck (jason.huck at corefive.com)
- 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 Lasso.
+ *
+ * It defines the FCKeditor class ("custom type" in Lasso terms) that can
+ * be used to create editor instances in Lasso pages on server side.
  */
 
-
-
 	define_type(
-		'editor', 
-		-namespace='fck_', 
+		'editor',
+		-namespace='fck_',
 		-description='Creates an instance of FCKEditor.'
 	);
 		local(
@@ -40,7 +41,7 @@
 			'checkbrowser'	=	true,
 			'displayerrors'	=	false
 		);
-	
+
 		define_tag(
 			'onCreate',
 			-required='instancename', -type='string',
@@ -50,7 +51,7 @@
 			-optional='initialvalue', -type='string',
 			-optional='basepath', -type='string',
 			-optional='config', -type='array'
-		);			
+		);
 			self->instancename = #instancename;
 			local_defined('width') ? self->width = #width;
 			local_defined('height') ? self->height = #height;
@@ -59,42 +60,42 @@
 			local_defined('basepath') ? self->basepath = #basepath;
 			local_defined('config') ? self->config = #config;
 		/define_tag;
-		
+
 		define_tag('create');
 			if(self->isCompatibleBrowser);
 				local('out' = '
 					<div>
-						<input type="hidden" id="' + self->instancename + '" name="' + self->instancename + '" value="' + encode_html(self->initialvalue) + '">
+						<input type="hidden" id="' + self->instancename + '" name="' + self->instancename + '" value="' + encode_html(self->initialvalue) + '" style="display:none" />
 						' + self->parseConfig + '
-						<iframe id="' + self->instancename + '___Frame" src="' + self->basepath + 'editor/fckeditor.html?InstanceName=' + self->instancename + '&Toolbar=' + self->toolbarset + '" width="' + self->width + '" height="' + self->height + '" frameborder="no" scrolling="no"></iframe>
+						<iframe id="' + self->instancename + '___Frame" src="' + self->basepath + 'editor/fckeditor.html?InstanceName=' + self->instancename + '&Toolbar=' + self->toolbarset + '" width="' + self->width + '" height="' + self->height + '" frameborder="0" scrolling="no"></iframe>
 					</div>
 				');
 			else;
 				local('out' = '
 					<div>
-						<textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '" wrap="virtual">' + encode_html(self->initialvalue) + '</textarea>
-					</div>	
+						<textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '">' + encode_html(self->initialvalue) + '</textarea>
+					</div>
 				');
-			/if;		
+			/if;
 			return(@#out);
 		/define_tag;
-		
+
 		define_tag('isCompatibleBrowser');
-			local('result' = true);		
-			(client_browser >> 'Apple' || client_browser >> 'Opera' || client_browser >> 'KHTML') ? #result = false;		
+			local('result' = true);
+			(client_browser >> 'Apple' || client_browser >> 'Opera' || client_browser >> 'KHTML') ? #result = false;
 			return(#result);
 		/define_tag;
-		
+
 		define_tag('parseConfig');
 			if(self->config->size);
-				local('out' = '<input type="hidden" id="' + self->instancename + '___Config" value="');			
+				local('out' = '<input type="hidden" id="' + self->instancename + '___Config" value="');
 				iterate(self->config, local('this'));
-					loop_count > 1 ? #out += '&amp;';			
+					loop_count > 1 ? #out += '&amp;';
 					#out += encode_html(#this->first) + '=' + encode_html(#this->second);
-				/iterate;			
-				#out += '">\n';			
+				/iterate;
+				#out += '" style="display:none" />\n';
 				return(@#out);
 			/if;
 		/define_tag;
-	/define_type;	
+	/define_type;
 ]

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.php	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,162 +1,33 @@
-<?php 
+<?php
 /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckeditor.php
- * 	This is the integration file for PHP.
- * 	
- * 	It defines the FCKeditor class that can be used to create editor
- * 	instances in PHP pages on server side.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 PHP (All versions).
+ *
+ * It loads the correct integration file based on the PHP version (avoinding
+ * strict error messages with PHP 5).
  */
 
-class FCKeditor
-{
-	var $InstanceName ;
-	var $BasePath ;
-	var $Width ;
-	var $Height ;
-	var $ToolbarSet ;
-	var $Value ;
-	var $Config ;
+if ( version_compare( phpversion(), '5', '<' ) )
+	include_once( 'fckeditor_php4.php' ) ;
+else
+	include_once( 'fckeditor_php5.php' ) ;
 
-	// PHP 5 Constructor (by Marcus Bointon <coolbru at users.sourceforge.net>)
-	function __construct( $instanceName )
- 	{
-		$this->InstanceName	= $instanceName ;
-		$this->BasePath		= '/FCKeditor/' ;
-		$this->Width		= '100%' ;
-		$this->Height		= '200' ;
-		$this->ToolbarSet	= 'Default' ;
-		$this->Value		= '' ;
-
-		$this->Config		= array() ;
-	}
-	
-	// PHP 4 Contructor
-	function FCKeditor( $instanceName )
-	{
-		$this->__construct( $instanceName ) ;
-	}
-
-	function Create()
-	{
-		echo $this->CreateHtml() ;
-	}
-	
-	function CreateHtml()
-	{
-		$HtmlValue = htmlspecialchars( $this->Value ) ;
-
-		$Html = '<div>' ;
-		
-		if ( $this->IsCompatible() )
-		{
-			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
-				$File = 'fckeditor.original.html' ;
-			else
-				$File = 'fckeditor.html' ;
-
-			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
-			
-			if ( $this->ToolbarSet != '' )
-				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
-
-			// Render the linked hidden field.
-			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" />" ;
-
-			// Render the configurations hidden field.
-			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" />" ;
-
-			// Render the editor IFRAME.
-			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"no\" scrolling=\"no\"></iframe>" ;
-		}
-		else
-		{
-			if ( strpos( $this->Width, '%' ) === false )
-				$WidthCSS = $this->Width . 'px' ;
-			else
-				$WidthCSS = $this->Width ;
-
-			if ( strpos( $this->Height, '%' ) === false )
-				$HeightCSS = $this->Height . 'px' ;
-			else
-				$HeightCSS = $this->Height ;
-
-			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\" wrap=\"virtual\">{$HtmlValue}</textarea>" ;
-		}
-
-		$Html .= '</div>' ;
-		
-		return $Html ;
-	}
-
-	function IsCompatible()
-	{
-		global $HTTP_USER_AGENT ;
-
-		if ( isset( $HTTP_USER_AGENT ) )
-			$sAgent = $HTTP_USER_AGENT ;
-		else
-			$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
-
-		if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
-		{
-			$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
-			return ($iVersion >= 5.5) ;
-		}
-		else if ( strpos($sAgent, 'Gecko/') !== false )
-		{
-			$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
-			return ($iVersion >= 20030210) ;
-		}
-		else
-			return false ;
-	}
-
-	function GetConfigFieldString()
-	{
-		$sParams = '' ;
-		$bFirst = true ;
-
-		foreach ( $this->Config as $sKey => $sValue )
-		{
-			if ( $bFirst == false )
-				$sParams .= '&amp;' ;
-			else
-				$bFirst = false ;
-			
-			if ( $sValue === true )
-				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
-			else if ( $sValue === false )
-				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
-			else
-				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
-		}
-		
-		return $sParams ;
-	}
-
-	function EncodeConfig( $valueToEncode )
-	{
-		$chars = array( 
-			'&' => '%26', 
-			'=' => '%3D', 
-			'"' => '%22' ) ;
-
-		return strtr( $valueToEncode,  $chars ) ;
-	}
-}
-
 ?>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/fckeditor.pl
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.pl	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.pl	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,20 +1,24 @@
 #####
-#  FCKeditor - The text editor for internet
-#  Copyright (C) 2003-2005 Frederico Caldeira Knabben
-#  
-#  Licensed under the terms of the GNU Lesser General Public License:
-#  		http://www.opensource.org/licenses/lgpl-license.php
-#  
-#  For further information visit:
-#  		http://www.fckeditor.net/
-#  
-#  "Support Open Source software. What about a donation today?"
-#  
-#  File Name: fckeditor.pl
-#  	This is the integration file for Perl.
-#  
-#  File Authors:
-#  		Takashi Yamaguchi (jack at omakase.net)
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+#  == BEGIN LICENSE ==
+#
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/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;
@@ -30,7 +34,7 @@
 
 	local($instanceName) = @_;
 	$InstanceName	= $instanceName;
-	$BasePath		= '/FCKeditor/';
+	$BasePath		= '/fckeditor/';
 	$Width			= '100%';
 	$Height			= '200';
 	$ToolbarSet		= 'Default';
@@ -66,16 +70,16 @@
 			$Link .= "&amp;Toolbar=$ToolbarSet";
 		}
 		#// Render the linked hidden field.
-		$Html .= "<input type=\"hidden\" id=\"$InstanceName\" name=\"$InstanceName\" value=\"$HtmlValue\" />" ;
+		$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\" />" ;
+		$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=\"no\" scrolling=\"no\"></iframe>";
+		$Html .= "<iframe id=\"$wk\" src=\"$Link\" width=\"$Width\" height=\"$Height\" frameborder=\"0\" scrolling=\"no\"></iframe>";
 	} else {
 		if($Width =~ /\%/g){
 			$WidthCSS = $Width;
@@ -87,7 +91,7 @@
 		} else {
 			$HeightCSS = $Height . 'px';
 		}
-		$Html .= "<textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\" wrap=\"virtual\">$HtmlValue</textarea>";
+		$Html .= "<textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\">$HtmlValue</textarea>";
 	}
 	$Html .= '</div>';
 	return($Html);

Added: zope.html/trunk/src/zope/html/fckeditor/fckeditor.py
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor.py	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor.py	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,149 @@
+"""
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2007 Frederico Caldeira Knabben
+
+== BEGIN LICENSE ==
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/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 Python.
+"""
+
+import cgi
+import os
+import string
+
+def escape(text, replace=string.replace):
+    """Converts the special characters '<', '>', and '&'.
+
+    RFC 1866 specifies that these characters be represented
+    in HTML as &lt; &gt; and &amp; respectively. In Python
+    1.5 we use the new string.replace() function for speed.
+    """
+    text = replace(text, '&', '&amp;') # must be done 1st
+    text = replace(text, '<', '&lt;')
+    text = replace(text, '>', '&gt;')
+    text = replace(text, '"', '&quot;')
+    text = replace(text, "'", '&#39;')
+    return text
+
+# The FCKeditor class
+class FCKeditor(object):
+	def __init__(self, instanceName):
+		self.InstanceName = instanceName
+		self.BasePath = '/fckeditor/'
+		self.Width = '100%'
+		self.Height = '200'
+		self.ToolbarSet = 'Default'
+		self.Value = '';
+
+		self.Config = {}
+
+	def Create(self):
+		return self.CreateHtml()
+
+	def CreateHtml(self):
+		HtmlValue = escape(self.Value)
+		Html = "<div>"
+
+		if (self.IsCompatible()):
+			File = "fckeditor.html"
+			Link = "%seditor/%s?InstanceName=%s" % (
+					self.BasePath,
+					File,
+					self.InstanceName
+					)
+			if (self.ToolbarSet is not None):
+				Link += "&amp;ToolBar=%s" % self.ToolbarSet
+
+			# Render the linked hidden field
+			Html += "<input type=\"hidden\" id=\"%s\" name=\"%s\" value=\"%s\" style=\"display:none\" />" % (
+					self.InstanceName,
+					self.InstanceName,
+					HtmlValue
+					)
+
+			# Render the configurations hidden field
+			Html += "<input type=\"hidden\" id=\"%s___Config\" value=\"%s\" style=\"display:none\" />" % (
+					self.InstanceName,
+					self.GetConfigFieldString()
+					)
+
+			# Render the editor iframe
+			Html += "<iframe id=\"%s\__Frame\" src=\"%s\" width=\"%s\" height=\"%s\" frameborder=\"0\" scrolling=\"no\"></iframe>" % (
+					self.InstanceName,
+					Link,
+					self.Width,
+					self.Height
+					)
+		else:
+			if (self.Width.find("%%") < 0):
+				WidthCSS = "%spx" % self.Width
+			else:
+				WidthCSS = self.Width
+			if (self.Height.find("%%") < 0):
+				HeightCSS = "%spx" % self.Height
+			else:
+				HeightCSS = self.Height
+
+			Html += "<textarea name=\"%s\" rows=\"4\" cols=\"40\" style=\"width: %s; height: %s;\" wrap=\"virtual\">%s</textarea>" % (
+					self.InstanceName,
+					WidthCSS,
+					HeightCSS,
+					HtmlValue
+					)
+		Html += "</div>"
+		return Html
+
+	def IsCompatible(self):
+		if (os.environ.has_key("HTTP_USER_AGENT")):
+			sAgent = os.environ.get("HTTP_USER_AGENT", "")
+		else:
+			sAgent = ""
+		if (sAgent.find("MSIE") >= 0) and (sAgent.find("mac") < 0) and (sAgent.find("Opera") < 0):
+			i = sAgent.find("MSIE")
+			iVersion = float(sAgent[i+5:i+5+3])
+			if (iVersion >= 5.5):
+				return True
+			return False
+		elif (sAgent.find("Gecko/") >= 0):
+			i = sAgent.find("Gecko/")
+			iVersion = int(sAgent[i+6:i+6+8])
+			if (iVersion >= 20030210):
+				return True
+			return False
+		else:
+			return False
+
+	def GetConfigFieldString(self):
+		sParams = ""
+		bFirst = True
+		for sKey in self.Config.keys():
+			sValue = self.Config[sKey]
+			if (not bFirst):
+				sParams += "&amp;"
+			else:
+				bFirst = False
+			if (sValue):
+				k = escape(sKey)
+				v = escape(sValue)
+				if (sValue == "true"):
+					sParams += "%s=true" % k
+				elif (sValue == "false"):
+					sParams += "%s=false" % k
+				else:
+					sParams += "%s=%s" % (k, v)
+		return sParams
+


Property changes on: zope.html/trunk/src/zope/html/fckeditor/fckeditor.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: zope.html/trunk/src/zope/html/fckeditor/fckeditor_php4.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor_php4.php	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor_php4.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,160 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for PHP 4.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
+ */
+
+class FCKeditor
+{
+	var $InstanceName ;
+	var $BasePath ;
+	var $Width ;
+	var $Height ;
+	var $ToolbarSet ;
+	var $Value ;
+	var $Config ;
+
+	// PHP 4 Contructor
+	function FCKeditor( $instanceName )
+	{
+		$this->InstanceName	= $instanceName ;
+		$this->BasePath		= '/fckeditor/' ;
+		$this->Width		= '100%' ;
+		$this->Height		= '200' ;
+		$this->ToolbarSet	= 'Default' ;
+		$this->Value		= '' ;
+
+		$this->Config		= array() ;
+	}
+
+	function Create()
+	{
+		echo $this->CreateHtml() ;
+	}
+
+	function CreateHtml()
+	{
+		$HtmlValue = htmlspecialchars( $this->Value ) ;
+
+		$Html = '<div>' ;
+
+		if ( $this->IsCompatible() )
+		{
+			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
+				$File = 'fckeditor.original.html' ;
+			else
+				$File = 'fckeditor.html' ;
+
+			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
+
+			if ( $this->ToolbarSet != '' )
+				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
+
+			// Render the linked hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
+
+			// Render the configurations hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
+
+			// Render the editor IFRAME.
+			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
+		}
+		else
+		{
+			if ( strpos( $this->Width, '%' ) === false )
+				$WidthCSS = $this->Width . 'px' ;
+			else
+				$WidthCSS = $this->Width ;
+
+			if ( strpos( $this->Height, '%' ) === false )
+				$HeightCSS = $this->Height . 'px' ;
+			else
+				$HeightCSS = $this->Height ;
+
+			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
+		}
+
+		$Html .= '</div>' ;
+
+		return $Html ;
+	}
+
+	function IsCompatible()
+	{
+		global $HTTP_USER_AGENT ;
+
+		if ( isset( $HTTP_USER_AGENT ) )
+			$sAgent = $HTTP_USER_AGENT ;
+		else
+			$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+
+		if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
+		{
+			$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
+			return ($iVersion >= 5.5) ;
+		}
+		else if ( strpos($sAgent, 'Gecko/') !== false )
+		{
+			$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
+			return ($iVersion >= 20030210) ;
+		}
+		else
+			return false ;
+	}
+
+	function GetConfigFieldString()
+	{
+		$sParams = '' ;
+		$bFirst = true ;
+
+		foreach ( $this->Config as $sKey => $sValue )
+		{
+			if ( $bFirst == false )
+				$sParams .= '&amp;' ;
+			else
+				$bFirst = false ;
+
+			if ( $sValue === true )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
+			else if ( $sValue === false )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
+			else
+				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
+		}
+
+		return $sParams ;
+	}
+
+	function EncodeConfig( $valueToEncode )
+	{
+		$chars = array(
+			'&' => '%26',
+			'=' => '%3D',
+			'"' => '%22' ) ;
+
+		return strtr( $valueToEncode,  $chars ) ;
+	}
+}
+
+?>
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/fckeditor_php5.php
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckeditor_php5.php	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/fckeditor_php5.php	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,160 @@
+<?php
+/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the integration file for PHP 5.
+ *
+ * It defines the FCKeditor class that can be used to create editor
+ * instances in PHP pages on server side.
+ */
+
+class FCKeditor
+{
+	var $InstanceName ;
+	var $BasePath ;
+	var $Width ;
+	var $Height ;
+	var $ToolbarSet ;
+	var $Value ;
+	var $Config ;
+
+	// PHP 5 Constructor (by Marcus Bointon <coolbru at users.sourceforge.net>)
+	function __construct( $instanceName )
+ 	{
+		$this->InstanceName	= $instanceName ;
+		$this->BasePath		= '/fckeditor/' ;
+		$this->Width		= '100%' ;
+		$this->Height		= '200' ;
+		$this->ToolbarSet	= 'Default' ;
+		$this->Value		= '' ;
+
+		$this->Config		= array() ;
+	}
+
+	function Create()
+	{
+		echo $this->CreateHtml() ;
+	}
+
+	function CreateHtml()
+	{
+		$HtmlValue = htmlspecialchars( $this->Value ) ;
+
+		$Html = '<div>' ;
+
+		if ( $this->IsCompatible() )
+		{
+			if ( isset( $_GET['fcksource'] ) && $_GET['fcksource'] == "true" )
+				$File = 'fckeditor.original.html' ;
+			else
+				$File = 'fckeditor.html' ;
+
+			$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}" ;
+
+			if ( $this->ToolbarSet != '' )
+				$Link .= "&amp;Toolbar={$this->ToolbarSet}" ;
+
+			// Render the linked hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />" ;
+
+			// Render the configurations hidden field.
+			$Html .= "<input type=\"hidden\" id=\"{$this->InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />" ;
+
+			// Render the editor IFRAME.
+			$Html .= "<iframe id=\"{$this->InstanceName}___Frame\" src=\"{$Link}\" width=\"{$this->Width}\" height=\"{$this->Height}\" frameborder=\"0\" scrolling=\"no\"></iframe>" ;
+		}
+		else
+		{
+			if ( strpos( $this->Width, '%' ) === false )
+				$WidthCSS = $this->Width . 'px' ;
+			else
+				$WidthCSS = $this->Width ;
+
+			if ( strpos( $this->Height, '%' ) === false )
+				$HeightCSS = $this->Height . 'px' ;
+			else
+				$HeightCSS = $this->Height ;
+
+			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\">{$HtmlValue}</textarea>" ;
+		}
+
+		$Html .= '</div>' ;
+
+		return $Html ;
+	}
+
+	function IsCompatible()
+	{
+		global $HTTP_USER_AGENT ;
+
+		if ( isset( $HTTP_USER_AGENT ) )
+			$sAgent = $HTTP_USER_AGENT ;
+		else
+			$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
+
+		if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
+		{
+			$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
+			return ($iVersion >= 5.5) ;
+		}
+		else if ( strpos($sAgent, 'Gecko/') !== false )
+		{
+			$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
+			return ($iVersion >= 20030210) ;
+		}
+		else
+			return false ;
+	}
+
+	function GetConfigFieldString()
+	{
+		$sParams = '' ;
+		$bFirst = true ;
+
+		foreach ( $this->Config as $sKey => $sValue )
+		{
+			if ( $bFirst == false )
+				$sParams .= '&amp;' ;
+			else
+				$bFirst = false ;
+
+			if ( $sValue === true )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=true' ;
+			else if ( $sValue === false )
+				$sParams .= $this->EncodeConfig( $sKey ) . '=false' ;
+			else
+				$sParams .= $this->EncodeConfig( $sKey ) . '=' . $this->EncodeConfig( $sValue ) ;
+		}
+
+		return $sParams ;
+	}
+
+	function EncodeConfig( $valueToEncode )
+	{
+		$chars = array(
+			'&' => '%26',
+			'=' => '%3D',
+			'"' => '%22' ) ;
+
+		return strtr( $valueToEncode,  $chars ) ;
+	}
+}
+
+?>
\ No newline at end of file

Added: zope.html/trunk/src/zope/html/fckeditor/fckpackager.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckpackager.xml	                        (rev 0)
+++ zope.html/trunk/src/zope/html/fckeditor/fckpackager.xml	2007-06-01 20:54:16 UTC (rev 76138)
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the configuration file to be used with FCKpackager to generate the
+ * compressed code files in the "js" folder.
+ *
+ * Please check http://www.fckeditor.net for more info.
+-->
+<Package>
+	<Header><![CDATA[/*
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ * 
+ * == BEGIN LICENSE ==
+ * 
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ * 
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ * 
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 file has been compressed for better performance. The original source
+ * can be found at "editor/_source".
+ */
+]]></Header>
+	<Constants removeDeclaration="false">
+		<Constant name="FCK_STATUS_NOTLOADED" value="0" />
+		<Constant name="FCK_STATUS_ACTIVE" value="1" />
+		<Constant name="FCK_STATUS_COMPLETE" value="2" />
+		<Constant name="FCK_TRISTATE_OFF" value="0" />
+		<Constant name="FCK_TRISTATE_ON" value="1" />
+		<Constant name="FCK_TRISTATE_DISABLED" value="-1" />
+		<Constant name="FCK_UNKNOWN" value="-9" />
+		<Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" />
+		<Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" />
+		<Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" />
+		<Constant name="FCK_EDITMODE_WYSIWYG" value="0" />
+		<Constant name="FCK_EDITMODE_SOURCE" value="1" />
+	</Constants>
+	<PackageFile path="editor/js/fckeditorcode_ie.js">
+		<File path="editor/_source/fckconstants.js" />
+		<File path="editor/_source/fckjscoreextensions.js" />
+		<File path="editor/_source/classes/fckiecleanup.js" />
+		<File path="editor/_source/internals/fckbrowserinfo.js" />
+		<File path="editor/_source/internals/fckurlparams.js" />
+		<File path="editor/_source/classes/fckevents.js" />
+		<File path="editor/_source/internals/fck.js" />
+		<File path="editor/_source/internals/fck_ie.js" />
+		<File path="editor/_source/internals/fckconfig.js" />
+		<File path="editor/_source/internals/fckdebug.js" />
+		<File path="editor/_source/internals/fckdomtools.js" />
+		<File path="editor/_source/internals/fcktools.js" />
+		<File path="editor/_source/internals/fcktools_ie.js" />
+		<File path="editor/_source/fckeditorapi.js" />
+		<File path="editor/_source/classes/fckimagepreloader.js" />
+
+		<File path="editor/_source/internals/fckregexlib.js" />
+		<File path="editor/_source/internals/fcklistslib.js" />
+		<File path="editor/_source/internals/fcklanguagemanager.js" />
+		<File path="editor/_source/internals/fckxhtmlentities.js" />
+		<File path="editor/_source/internals/fckxhtml.js" />
+		<File path="editor/_source/internals/fckxhtml_ie.js" />
+		<File path="editor/_source/internals/fckcodeformatter.js" />
+		<File path="editor/_source/internals/fckundo_ie.js" />
+		<File path="editor/_source/classes/fckeditingarea.js" />
+		<File path="editor/_source/classes/fckkeystrokehandler.js" />
+
+		<File path="editor/_source/internals/fcklisthandler.js" />
+		<File path="editor/_source/classes/fckelementpath.js" />
+		<File path="editor/_source/classes/fckdomrange.js" />
+		<File path="editor/_source/classes/fckdomrange_ie.js" />
+		<File path="editor/_source/classes/fckdocumentfragment_ie.js" />
+		<File path="editor/_source/classes/fckw3crange.js" />
+		<File path="editor/_source/classes/fckenterkey.js" />
+
+		<File path="editor/_source/internals/fckdocumentprocessor.js" />
+		<File path="editor/_source/internals/fckselection.js" />
+		<File path="editor/_source/internals/fckselection_ie.js" />
+
+		<File path="editor/_source/internals/fcktablehandler.js" />
+		<File path="editor/_source/internals/fcktablehandler_ie.js" />
+		<File path="editor/_source/classes/fckxml_ie.js" />
+		<File path="editor/_source/classes/fckstyledef.js" />
+		<File path="editor/_source/classes/fckstyledef_ie.js" />
+		<File path="editor/_source/classes/fckstylesloader.js" />
+
+		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
+		<File path="editor/_source/commandclasses/fck_othercommands.js" />
+		<File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" />
+		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
+		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
+		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
+		<File path="editor/_source/commandclasses/fcktablecommand.js" />
+		<File path="editor/_source/commandclasses/fckstylecommand.js" />
+		<File path="editor/_source/commandclasses/fckfitwindow.js" />
+		<File path="editor/_source/internals/fckcommands.js" />
+
+		<File path="editor/_source/classes/fckpanel.js" />
+		<File path="editor/_source/classes/fckicon.js" />
+		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
+		<File path="editor/_source/classes/fcktoolbarbutton.js" />
+		<File path="editor/_source/classes/fckspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
+		<File path="editor/_source/internals/fcktoolbaritems.js" />
+		<File path="editor/_source/classes/fcktoolbar.js" />
+		<File path="editor/_source/classes/fcktoolbarbreak_ie.js" />
+		<File path="editor/_source/internals/fcktoolbarset.js" />
+		<File path="editor/_source/internals/fckdialog.js" />
+		<File path="editor/_source/internals/fckdialog_ie.js" />
+
+		<File path="editor/_source/classes/fckmenuitem.js" />
+		<File path="editor/_source/classes/fckmenublock.js" />
+		<File path="editor/_source/classes/fckmenublockpanel.js" />
+		<File path="editor/_source/classes/fckcontextmenu.js" />
+		<File path="editor/_source/internals/fck_contextmenu.js" />
+
+		<File path="editor/_source/classes/fckplugin.js" />
+		<File path="editor/_source/internals/fckplugins.js" />
+	</PackageFile>
+
+	<PackageFile path="editor/js/fckeditorcode_gecko.js">
+		<File path="editor/_source/fckconstants.js" />
+		<File path="editor/_source/fckjscoreextensions.js" />
+		<File path="editor/_source/internals/fckbrowserinfo.js" />
+		<File path="editor/_source/internals/fckurlparams.js" />
+		<File path="editor/_source/classes/fckevents.js" />
+		<File path="editor/_source/internals/fck.js" />
+		<File path="editor/_source/internals/fck_gecko.js" />
+		<File path="editor/_source/internals/fckconfig.js" />
+		<File path="editor/_source/internals/fckdebug.js" />
+		<File path="editor/_source/internals/fckdomtools.js" />
+		<File path="editor/_source/internals/fcktools.js" />
+		<File path="editor/_source/internals/fcktools_gecko.js" />
+		<File path="editor/_source/fckeditorapi.js" />
+		<File path="editor/_source/classes/fckimagepreloader.js" />
+
+		<File path="editor/_source/internals/fckregexlib.js" />
+		<File path="editor/_source/internals/fcklistslib.js" />
+		<File path="editor/_source/internals/fcklanguagemanager.js" />
+		<File path="editor/_source/internals/fckxhtmlentities.js" />
+		<File path="editor/_source/internals/fckxhtml.js" />
+		<File path="editor/_source/internals/fckxhtml_gecko.js" />
+		<File path="editor/_source/internals/fckcodeformatter.js" />
+		<File path="editor/_source/internals/fckundo_gecko.js" />
+		<File path="editor/_source/classes/fckeditingarea.js" />
+		<File path="editor/_source/classes/fckkeystrokehandler.js" />
+
+		<File path="editor/_source/internals/fcklisthandler.js" />
+		<File path="editor/_source/classes/fckelementpath.js" />
+		<File path="editor/_source/classes/fckdomrange.js" />
+		<File path="editor/_source/classes/fckdomrange_gecko.js" />
+		<File path="editor/_source/classes/fckdocumentfragment_gecko.js" />
+		<File path="editor/_source/classes/fckw3crange.js" />
+		<File path="editor/_source/classes/fckenterkey.js" />
+
+		<File path="editor/_source/internals/fckdocumentprocessor.js" />
+		<File path="editor/_source/internals/fckselection.js" />
+		<File path="editor/_source/internals/fckselection_gecko.js" />
+
+		<File path="editor/_source/internals/fcktablehandler.js" />
+		<File path="editor/_source/internals/fcktablehandler_gecko.js" />
+		<File path="editor/_source/classes/fckxml_gecko.js" />
+		<File path="editor/_source/classes/fckstyledef.js" />
+		<File path="editor/_source/classes/fckstyledef_gecko.js" />
+		<File path="editor/_source/classes/fckstylesloader.js" />
+
+		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
+		<File path="editor/_source/commandclasses/fck_othercommands.js" />
+		<File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" />
+		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
+		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
+		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
+		<File path="editor/_source/commandclasses/fcktablecommand.js" />
+		<File path="editor/_source/commandclasses/fckstylecommand.js" />
+		<File path="editor/_source/commandclasses/fckfitwindow.js" />
+		<File path="editor/_source/internals/fckcommands.js" />
+
+		<File path="editor/_source/classes/fckpanel.js" />
+		<File path="editor/_source/classes/fckicon.js" />
+		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
+		<File path="editor/_source/classes/fcktoolbarbutton.js" />
+		<File path="editor/_source/classes/fckspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
+		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
+		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
+		<File path="editor/_source/internals/fcktoolbaritems.js" />
+		<File path="editor/_source/classes/fcktoolbar.js" />
+		<File path="editor/_source/classes/fcktoolbarbreak_gecko.js" />
+		<File path="editor/_source/internals/fcktoolbarset.js" />
+		<File path="editor/_source/internals/fckdialog.js" />
+		<File path="editor/_source/internals/fckdialog_gecko.js" />
+
+		<File path="editor/_source/classes/fckmenuitem.js" />
+		<File path="editor/_source/classes/fckmenublock.js" />
+		<File path="editor/_source/classes/fckmenublockpanel.js" />
+		<File path="editor/_source/classes/fckcontextmenu.js" />
+		<File path="editor/_source/internals/fck_contextmenu.js" />
+
+		<File path="editor/_source/classes/fckplugin.js" />
+		<File path="editor/_source/internals/fckplugins.js" />
+	</PackageFile>
+
+</Package>
\ No newline at end of file

Modified: zope.html/trunk/src/zope/html/fckeditor/fckstyles.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fckstyles.xml	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fckstyles.xml	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,23 +1,28 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <!--
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- * 
- * Licensed under the terms of the GNU Lesser General Public License:
- * 		http://www.opensource.org/licenses/lgpl-license.php
- * 
- * For further information visit:
- * 		http://www.fckeditor.net/
- * 
- * "Support Open Source software. What about a donation today?"
- * 
- * File Name: fckstyles.xml
- * 	This is the sample style definitions file. It makes the styles combo
- * 	completely customizable.
- * 	See FCKConfig.StylesXmlPath in the configuration file.
- * 
- * File Authors:
- * 		Frederico Caldeira Knabben (fredck at fckeditor.net)
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/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 sample style definitions file. It makes the styles combo
+ * completely customizable.
+ *
+ * See FCKConfig.StylesXmlPath in the configuration file.
 -->
 <Styles>
 	<Style name="Image on Left" element="img">

Modified: zope.html/trunk/src/zope/html/fckeditor/fcktemplates.xml
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/fcktemplates.xml	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/fcktemplates.xml	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,4 +1,29 @@
 <?xml version="1.0" encoding="utf-8" ?>
+<!--
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben
+ *
+ * == BEGIN LICENSE ==
+ *
+ * Licensed under the terms of any of the following licenses at your
+ * choice:
+ *
+ *  - GNU General Public License Version 2 or later (the "GPL")
+ *    http://www.gnu.org/licenses/gpl.html
+ *
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ *    http://www.gnu.org/licenses/lgpl.html
+ *
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")
+ *    http://www.mozilla.org/MPL/MPL-1.1.html
+ *
+ * == END LICENSE ==
+ *
+ * This is the sample templates definitions file. It makes the "templates"
+ * command completely customizable.
+ *
+ * See FCKConfig.TemplatesXmlPath in the configuration file.
+-->
 <Templates imagesBasePath="fck_template/images/">
 	<Template title="Image and Title" image="template1.gif">
 		<Description>One main image with a title and text that surround the image.</Description>

Modified: zope.html/trunk/src/zope/html/fckeditor/htaccess.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/htaccess.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/htaccess.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,29 +1,44 @@
 #
-# FCKeditor - The text editor for internet
-# Copyright (C) 2003-2005 Frederico Caldeira Knabben
-# 
-# Licensed under the terms of the GNU Lesser General Public License:
-# 		http://www.opensource.org/licenses/lgpl-license.php
-# 
-# For further information visit:
-# 		http://www.fckeditor.net/
-# 
-# "Support Open Source software. What about a donation today?"
+#  FCKeditor - The text editor for Internet - http://www.fckeditor.net
+#  Copyright (C) 2003-2007 Frederico Caldeira Knabben
 #
-# ----------------------------------------------------------------------------- 
+#  == BEGIN LICENSE ==
 #
-# On some specific Linux installations you could face problems with Firefox. 
+#  Licensed under the terms of any of the following licenses at your
+#  choice:
+#
+#   - GNU General Public License Version 2 or later (the "GPL")
+#     http://www.gnu.org/licenses/gpl.html
+#
+#   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+#     http://www.gnu.org/licenses/lgpl.html
+#
+#   - Mozilla Public License Version 1.1 or later (the "MPL")
+#     http://www.mozilla.org/MPL/MPL-1.1.html
+#
+#  == END LICENSE ==
+#
+# -----------------------------------------------------------------------------
+#
+# On some specific Linux installations you could face problems with Firefox.
 # It could give you errors when loading the editor saying that some illegal
 # characters were found (three strange chars in the beginning of the file).
 # This could happen if you map the .js or .css files to PHP, for example.
 #
 # Those characters are the Byte Order Mask (BOM) of the Unicode encoded files.
-# All FCKeditor files are encoded with Unicode.
+# All FCKeditor files are Unicode encoded.
 #
-# Just rename this file to ".htaccess" and live it in the editor directory. 
-# There are no security issues on doing it. It just set the ".js" and ".css" 
-# files to their correct type.
+# Just rename this file to ".htaccess" and leave it in the editor directory.
+# There are no security issues on doing it. It just sets the ".js" and ".css"
+# files to their correct content types.
 #
 
 AddType application/x-javascript .js
-AddType text/css .css
\ No newline at end of file
+AddType text/css .css
+
+#
+# If PHP is mapped to handle XML files, you could have some issues. The
+# following will disable it.
+#
+
+AddType text/xml .xml

Modified: zope.html/trunk/src/zope/html/fckeditor/license.txt
===================================================================
--- zope.html/trunk/src/zope/html/fckeditor/license.txt	2007-06-01 20:49:14 UTC (rev 76137)
+++ zope.html/trunk/src/zope/html/fckeditor/license.txt	2007-06-01 20:54:16 UTC (rev 76138)
@@ -1,3 +1,317 @@
+FCKeditor - The text editor for Internet - http://www.fckeditor.net
+Copyright (C) 2003-2007 Frederico Caldeira Knabben
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+   http://www.gnu.org/licenses/gpl.html
+   (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/licenses/lgpl.html
+   (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+   http://www.mozilla.org/MPL/MPL-1.1.html
+   (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Appendix A: The GPL License
+===========================
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+Appendix B: The LGPL License
+============================
+
 		  GNU LESSER GENERAL PUBLIC LICENSE
 		       Version 2.1, February 1999
 
@@ -456,3 +770,478 @@
 DAMAGES.
 
 		     END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+===========================
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+



More information about the Checkins mailing list